01
Connect TikTok
- In the dashboard, open Accounts and pick TikTok.
- Sign in with TikTok and allow Reelspan to post.
- 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 -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=…"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());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) andtimezoneto post later, oradd_to_queue=trueto 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=trueand checkGET /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.