The YouTube scheduling API

Create a YouTube post with one HTTP call. It joins the same queue the dashboard uses, retries on failure, and reports back what actually went out.

Publish to YouTube

# POST a text-and-media post to your connected YouTube channel
curl -X POST https://api.postwharf.com/v1/posts \
  -H "Authorization: Bearer $POSTWHARF_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Shipping today.",
    "channels": ["ch_your_youtube_channel"],
    "media": ["med_optional"]
  }'

Schedule it instead

curl -X POST https://api.postwharf.com/v1/posts \
  -H "Authorization: Bearer $POSTWHARF_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Tuesday drop","channels":["ch_your_youtube_channel"],"publish_at":"2026-09-01T09:00:00Z"}'

Find your YouTube channel id

curl https://api.postwharf.com/v1/channels \
  -H "Authorization: Bearer $POSTWHARF_KEY"

Each connected account is a channel. The one you want has "platform": "youtube".

Check what happened

curl https://api.postwharf.com/v1/posts/post_xxx \
  -H "Authorization: Bearer $POSTWHARF_KEY"

The response carries one delivery per channel with its status, the live URL once published, and the error text if it failed. Deliveries are re-checked after publishing, so a YouTube post removed later stops reporting as live.

What YouTube accepts

5,000 characters, counting the description. One video per post. YouTube takes no still images as attachments.

Read from the table the API enforces, so a post over 5,000 is refused when you create it rather than truncated on the way to YouTube.

Worth knowing about YouTube

Daily quota applies; the queue paces around it rather than failing.

Every other network

Instagram · TikTok · X · LinkedIn · Facebook · Threads · Pinterest · Bluesky · Reddit · Telegram · Discord · Snapchat · WordPress