Clippie AI logo
Log in
Browse the docs

Developers / Docs / Posting

Post or schedule a video

Posts a finished Clippie video to a connected channel (YouTube today), now or at a scheduled time up to 180 days ahead. Clippie uploads it at that time, even with nothing open. Needs a paid Clippie plan and spends no credits. It goes out under the user's name, so confirm the channel, title, visibility and time with the user first, and never pick public for them. Get the channel id from list_social_channels; the video is a completed render job (jobId), a libraryId, or its videoUrl. Check the result later with get_post.

Paste it into any AI assistant. The shortcuts open with the prompt typed in; nothing is sent until you press enter.

At a glance

  • REST
    POST https://api.clippie.ai/v1/social/posts
  • MCP tool
    post_video
  • Scope
    publish
  • Cost
    Spends nothing. Needs the publish scope and a paid plan, and posts under the user's name: confirm the details with them first.
  • Limit bucket
    social_post (see Rate limits)

Parameters

  • channelId
    In:
    body
    Type:
    string
    Required:
    Yes
    Description:
    The channel id from list_social_channels. 1-64 chars.
  • jobId
    In:
    body
    Type:
    string
    Required:
    No
    Description:
    A completed render job (job_…), e.g. from render_video. Up to 80 chars.
  • libraryId
    In:
    body
    Type:
    string
    Required:
    No
    Description:
    A video in the user's library (job output.libraryId). Up to 64 chars.
  • videoUrl
    In:
    body
    Type:
    string (URL)
    Required:
    No
    Description:
    A Clippie video URL (job output.videoUrl). Up to 2000 chars.
  • title
    In:
    body
    Type:
    string
    Required:
    Yes
    Description:
    The YouTube title (up to 100 characters). 1-100 chars.
  • description
    In:
    body
    Type:
    string
    Required:
    No
    Description:
    The YouTube description: text, hashtags, links. Up to 5000 chars.
  • privacy
    In:
    body
    Type:
    string
    Required:
    Yes
    Description:
    Who can see it on YouTube. Ask the user; do not assume public. One of public, unlisted, private.
  • madeForKids
    In:
    body
    Type:
    boolean
    Required:
    No
    Description:
    YouTube "made for kids". Defaults to false.
  • tags
    In:
    body
    Type:
    array of string
    Required:
    No
    Description:
    YouTube tags. Up to 30 items.
  • scheduledFor
    In:
    body
    Type:
    string
    Required:
    No
    Description:
    When to post (ISO 8601 with a time zone, e.g. 2026-11-20T17:00:00-05:00). Leave out to post now.

Example

curl
curl https://api.clippie.ai/v1/social/posts \
  -H "Authorization: Bearer $CLIPPIE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channelId": "CHANNEL_ID",
    "title": "TITLE",
    "privacy": "public"
  }'

Response

200 with JSON. The full response schema is in the OpenAPI spec.

From an MCP client

Your AI calls post_video with the same fields as JSON arguments. See MCP server to connect one.

tools/call
{
  "name": "post_video",
  "arguments": {
    "channelId": "CHANNEL_ID",
    "title": "TITLE",
    "privacy": "public"
  }
}