ReelspanUpload guidesTikTok

Post to TikTok automatically

Connect TikTok once, then send videos and photos to it from code, a workflow or an AI agent. The same call can post to every other network at the same time.
Sign in with TikTok2,200 characters9:167 sections

01

Connect TikTok

  1. In the dashboard, open Accounts and pick TikTok.
  2. Sign in with TikTok and allow Reelspan to post.
  3. The account joins the profile you had open; every post to that profile can now include it.

Posting for clients? Send them a connect link so they connect their own TikTok account without a Reelspan login.

02

Get an API key

In the dashboard, open Developers → API keys and create one. Keep it in an environment variable such as REELSPAN_KEY; never in code you share.

03

Post with one request

Send the video as a file, or as a public URL like below. Add more platform[] fields to post the same thing everywhere at once.

curl
curl -X POST https://api.reelspan.com/v1/posts/video \
  -H "Authorization: Bearer $REELSPAN_KEY" \
  -F user=my-brand \
  -F "platform[]=tiktok" \
  -F "video=https://example.com/clip.mp4" \
  -F "title=Your caption" \
  -F "privacy_level=…"
JavaScript (Node 18+)
const form = new FormData();
form.append('user', 'my-brand');
form.append('platform[]', 'tiktok');
form.append('video', 'https://example.com/clip.mp4');
form.append('title', 'Your caption');

const res = await fetch('https://api.reelspan.com/v1/posts/video', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.REELSPAN_KEY}` },
  body: form,
});
console.log(await res.json());
Python
import os, requests

res = requests.post(
    "https://api.reelspan.com/v1/posts/video",
    headers={"Authorization": f"Bearer {os.environ['REELSPAN_KEY']}"},
    files=[
        ("user", (None, "my-brand")),
        ("platform[]", (None, "tiktok")),
        ("video", (None, "https://example.com/clip.mp4")),
        ("title", (None, "Your caption")),
    ],
)
print(res.json())

tiktok_title sets the text for TikTok only, when it should differ from the other networks’.

04

TikTok options

privacy_level
PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY.
disable_comment / disable_duet / disable_stitch
Turn interactions off or on for the post.
post_mode
MEDIA_UPLOAD sends it to the TikTok app as a draft instead of posting it.
cover_timestamp
The frame (in ms) used as the cover.
is_ai_generated
Label AI-made content, as TikTok asks.
  • Post straight to the profile, or send it to the TikTok app as a draft to add sounds there.
  • Choose privacy, comments, duet and stitch for each post, as TikTok asks.
  • Photo posts go out as a swipeable carousel.

Every field, with its limits: the docs.

05

Schedule it and check the result

  • Add scheduled_date (ISO 8601) and timezone to post later, or add_to_queue=true to take the next slot of your posting schedule.
  • The response has TikTok’s status and the post’s link. For big files send async_upload=true and check GET /v1/posts/status?request_id=…, or get a signed webhook when it’s live.
  • If TikTok refuses a post, the error says why in plain words, and you can retry just that network.

06

Without code

07

Ideas

  • Send drafts to TikTok so you can add trending sounds in the app.
  • Repost your YouTube Shorts and Reels to TikTok with one call.

More on TikTok: what you can post there. Other networks: all upload guides.

Questions?Talk to a person.Contact us