Skip to main content
POST
/
api
/
agent
/
shorts
/
publish
Publish short video to YouTube Shorts, Instagram Reels, and/or TikTok
curl --request POST \
  --url https://www.citedy.com/api/agent/shorts/publish \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "video_url": "<string>",
  "speech_text": "<string>",
  "targets": [
    {
      "platform": "youtube_shorts",
      "account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ],
  "privacy_status": "public",
  "tiktok_privacy_level": "PUBLIC_TO_EVERYONE"
}
'
{
  "results": [
    {
      "platform": "<string>",
      "ok": true,
      "post_id": "<string>",
      "error": {
        "code": "<string>",
        "message": "<string>"
      }
    }
  ],
  "metadata_provider": "<string>",
  "metadata_degraded": true,
  "timings": {
    "metadata_ms": 123,
    "total_ms": 123
  },
  "credits_charged": 123
}

Documentation Index

Fetch the complete documentation index at: https://www.citedy.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer citedy_agent_* key

Body

application/json
video_url
string<uri>
required

HTTPS URL of the video. Must be hosted on download.citedy.com (path must start with /agent/shorts/ or /agent/reels/) or Supabase storage. The R2 prefix restriction ensures Meta's facebookexternalhit crawler can fetch the video via our /media/shorts/... proxy on www.citedy.com — direct R2 URLs are blocked by the bucket's default Disallow: / robots.txt and cause Instagram Reel publish to fail.

speech_text
string
required

Spoken text from the video for metadata generation

Required string length: 5 - 2000
targets
object[]
required

Platforms to publish to (max 3). Duplicate platforms are rejected by runtime validation.

Required array length: 1 - 3 elements
privacy_status
enum<string>

Publish privacy. YouTube supports public/unlisted/private. TikTok should use tiktok_privacy_level selected from creator_info; legacy privacy_status=private maps to SELF_ONLY. Instagram Reels ignores this field.

Available options:
public,
unlisted,
private
tiktok_privacy_level
enum<string>

TikTok-only visibility level selected by the creator from the latest creator_info privacy_level_options.

Available options:
PUBLIC_TO_EVERYONE,
FOLLOWER_OF_CREATOR,
MUTUAL_FOLLOW_FRIENDS,
SELF_ONLY

Response

Publish completed (check per-platform results)

results
object[]
metadata_provider
string

LLM provider used for metadata generation

metadata_degraded
boolean

True if AI metadata generation failed and static fallback was used

timings
object
credits_charged
number