| platforms | string[] | Required. One or more of instagram, tiktok, youtube, threads, facebook, bluesky, x. |
| caption | string | Required unless mediaUrls or mediaId is supplied. Each platform's own limit applies: Instagram and TikTok video 2,200, TikTok photos 4,000, YouTube 5,000 bytes, Threads 500. No < or > on YouTube. Links in a caption are posted as you wrote them. sprkly does not check them. |
| title | string | Required for TikTok and YouTube publishing. Max 150 chars for TikTok. |
| scheduledTime | ISO datetime | Optional for /publish. Required future time for explicit scheduling. |
| profileIds | string[] | Recommended for production. Use GET /api/v1/connections to discover ids. Must be active, owned by the API-key user, within the API key account scope, and match requested platforms. |
| mediaUrls | string[] | Public URLs reachable by platform APIs. Use mediaId when you want sprkly to resolve/sign its own authenticated uploads. |
| mediaId | string | Use an existing active sprkly media asset. sprkly resolves it to a public serve URL. |
| platformMeta | object | Platform-specific settings. TikTok requires tiktok.privacyLevel and supports disableComment, disableDuet, disableStitch, commercialContentDisclosure, brandOrganicOptIn, brandContentOptIn, and videoCoverTimestampMs. |
| externalId | string | Your system’s ID for reconciliation. Some values are reserved for sprkly: ig, ig-container, tiktok-pending, threads, threads-container, yt, fb, bsky, x, linkedin, pinterest and telegram, on their own or followed by a colon (like x:123). These are refused with 400 invalid_external_id. |
| category | string | Optional label for reporting/grouping. |