ReelManager API
Version 1. Upload a video once, then schedule it to YouTube, Instagram and TikTok with one call.
Get a key
Sign in, open Settings → API keys and create a key. It looks like rm_… and is shown once. Keep it secret; anyone with it can post as you. Revoke it from the same page.
Base URL: https://reelmanager.live/api/v1
Authentication
curl https://reelmanager.live/api/v1/me \ -H "Authorization: Bearer rm_YOUR_KEY"
Limits and errors
- 120 requests per minute per key, and 30 post creations per minute.
- Videos: MP4, MOV, M4V or WebM, up to 1024 MB each, 5.0 GB of storage per account.
- Times are ISO 8601. Without an offset they use your account time zone (or the
timezonefield). - Errors return JSON, for example
{"error": {"code": "caption_too_long", "message": "…"}}, with HTTP 400, 401, 404, 409, 413, 429 or 502.
Accounts
GET /api/v1/accounts lists the platform accounts you connected in the app (connecting happens in the web app, with each platform's own login).
{"data": [{"id": 3, "platform": "youtube", "name": "My Channel", "connected_at": "2026-11-14T18:02:11Z"}]}
Upload a video
curl -X POST https://reelmanager.live/api/v1/media \ -H "Authorization: Bearer rm_YOUR_KEY" \ -F [email protected]
Returns 201 with the video's id, size and duration. Also: GET /media, GET /media/{id}, DELETE /media/{id} (not allowed while a scheduled post uses it).
Schedule a post
curl -X POST https://reelmanager.live/api/v1/posts \
-H "Authorization: Bearer rm_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"media_id": 12,
"accounts": [3, 4],
"caption": "Where to aim your return #tennis",
"title": "Where To Aim Your Return",
"scheduled_at": "2026-11-20T15:00:00-07:00",
"ai_generated": false,
"youtube": {"privacy": "public"}
}'
| Field | Meaning |
|---|---|
| media_id | Required. ID from the upload call. |
| accounts | Required. Account IDs from /accounts. One post can go to several platforms. |
| scheduled_at | ISO 8601 time, at least 30 seconds ahead. Or send "post_now": true. |
| caption | Max 5000 characters on YouTube, 2200 on Instagram and TikTok. |
| title | Required for YouTube (max 100 characters); defaults are not guessed. |
| ai_generated | Optional. Sets each platform's AI-content label where supported. |
| youtube.privacy | private (default), unlisted or public. |
| youtube.thumbnail | Optional custom thumbnail: a base64-encoded JPG or PNG, at most 2 MB. Needs a phone-verified YouTube channel. If YouTube refuses it, the video still publishes and the target carries a note. |
| tiktok.privacy | Required when a TikTok account is included. There is no default. Allowed values depend on the account: call GET /accounts/{id}/tiktok-options. Until TikTok approves ReelManager's audit, TikTok only accepts SELF_ONLY. |
| tiktok.allow_comment, allow_duet, allow_stitch | Optional booleans, all off by default. |
| tiktok.commercial, brand_organic, brand_content | Optional commercial-content disclosure. If commercial is true, set at least one of the other two. |
Returns 201 with the post and one target per account. Each target has a status: scheduled, publishing, published or failed (with error).
Read, cancel, retry
GET /api/v1/posts?status=scheduled&limit=25&offset=0: list your posts.GET /api/v1/posts/{id}: one post, with the public URL and latest view, like and comment counts for published targets (counts a platform doesn't provide are left out).DELETE /api/v1/posts/{id}: cancels targets that haven't published yet.POST /api/v1/posts/{id}/retry: retries failed targets.
Python example
import requests
H = {"Authorization": "Bearer rm_YOUR_KEY"}
B = "https://reelmanager.live/api/v1"
media = requests.post(B + "/media", headers=H, files={"file": open("reel.mp4", "rb")}).json()
post = requests.post(B + "/posts", headers=H, json={
"media_id": media["id"], "accounts": [3], "title": "My Short",
"caption": "hello #shorts", "post_now": True, "youtube": {"privacy": "public"}}).json()
print(post["status"], post["targets"])
Notes
- The API posts through the accounts you connected, under each platform's rules. Instagram and TikTok availability depends on those platforms approving ReelManager; the API reports the platform's error on the target if a post is refused.
- Not available yet: Instagram and TikTok cover images, webhooks, and connecting accounts through the API.
- Questions: [email protected]