POST, GET and DELETE /v1/videos/{id}/publish, and GET /v1/social-accounts.
A publish posts under the user’s own account, often publicly, so confirm the destination, text and privacy with the user before calling publish_to_social.
Before publishing:
- The account must already be connected in Tella, under Settings → Connections or Share → Publish. These tools can’t connect one; an unconnected destination returns a
forbiddenerror. - Publishing uploads an export with the
exportsettings you pass. Tella reuses a finished or running export with those settings, or starts one, so you don’t need to callexport_videofirst. The publication staysqueuedwhile the export renders. A plan that doesn’t include the export’s resolution or frame rate returns aforbiddenerror. - TikTok isn’t available: its consent form must be completed in the Tella app.
- A user can connect several accounts per platform, such as two YouTube channels. Call
list_social_accountsand pass the chosen one’sidasaccountId. Without it, the oldest connected account for the destination posts.
list_social_accountsif the user has several accounts for the destination- Confirm the destination, account, text and privacy with the user
publish_to_socialwith anyexportsettings (resolution,fps,subtitles,speed), once per account. Each call returns aqueuedpublicationlist_social_publicationsuntil each publication iscompleted(read itsurl) orfailed(read itserror)
scheduledAt to publish_to_social. The publication stays queued with that scheduledAt until its time, and cancel_scheduled_publication takes it back before then. Tella exports the video right away, so edits made after scheduling aren’t in the post.
publish_to_social
Start a publish to one destination and account. Returns immediately with aqueued publication. One publish per destination and account runs at a time; starting another to the same account while one is queued or running returns a conflict error. Publishes to different accounts run side by side. Publishing again after one completes creates a second post.
youtube, youtube_shorts, linkedin, x, instagram_post, instagram_reel, instagram_story, facebook_post, facebook_reel or facebook_story. The Instagram and Facebook destinations publish through one Facebook connection. See limitsVideo title on YouTube. On LinkedIn, X, Instagram and Facebook it is the post text when
description is empty. Must not be emptyYouTube description, or the post text on LinkedIn, X, Instagram and Facebook. Stories show no text
public, unlisted or private. Defaults to the most private option the destination offers:youtube,youtube_shorts:private(default),unlistedorpubliclinkedin:private(connections only, default) orpublicfacebook_post:private(only people who manage the Page, default),unlisted(anyone with the link) orpublic- every other destination:
publiconly
Settings of the export to upload, as
export_video takes them. A finished or running export with these settings is reused; otherwise one is started. Omit for the default export: 1080p, 30 fps, no burned-in subtitles, 1xYouTube only: upload the transcript as a caption track (default
true). Skipped when the export has burned-in subtitlesWhich connected account to post with, from
list_social_accounts. Defaults to the oldest connected account for the destination. An accountId that isn’t one of the user’s connected accounts for the destination returns a forbidden errorWhen to post, as an ISO 8601 time with a timezone, such as
2026-10-20T15:00:00Z, at most 30 days ahead. Omit to post as soon as the export is ready. A time in the past or more than 30 days ahead returns a bad_request errorinstagram_reel only: share it as a trial reel, shown to people who don’t follow the account first. manual keeps it a trial until you share it with followers in the Instagram app; performance lets Instagram share it with followers if it performs well. Omit for an ordinary reel. Passing it with any other destination returns a bad_request errorpublish_to_social doesn’t append chapters to a YouTube description; read them with get_chapters and include them in description if you want them.
cancel_scheduled_publication
Cancel a scheduled publish before it goes out. Only a publication that is stillqueued with a scheduledAt can be cancelled; once it starts going out, this returns a conflict error. Returns the publication with status cancelled.
list_social_accounts
The accounts the user has connected in Tella thatpublish_to_social can post with. Takes no parameters. Each account has:
The account’s name in Tella: the one the user gave it in Settings → Connections, else its name on the platform
list_social_publications
The latest publish of a video to each destination and account, including publishes made in the Tella app (TikTok among them). Poll this afterpublish_to_social.
Each publication has:
The connected account it was published with.
null for publishes made before Tella supported several accountsqueued, running, completed, failed or cancelled. A scheduled publish stays queued until its timeWhy a
failed publish failed and what to do next, as a sentence you can show to people. It never contains the destination’s raw responseDestination limits
Tella checks these before starting a publish and returns abad_request error naming the rule a video breaks. Lengths are of the export, so a 2x export is half as long.
File size is checked after the export, just before uploading, so an oversized export shows up as a
failed publication rather than an error on the call.