Send videos to OLO from your own tools.
For studios and agencies that edit in other software. The API puts the video into OLO; posting to TikTok is always approved by a person.
How it works
The video comes in, a person approves
- Create an API key in OLO under Settings → API key. You see it once; we keep only a hash.
- Upload the video in chunks from your tool, with the key in the
Authorizationheader. - Create the post with the caption and, optionally, a suggested account and time. It lands in “To review”.
- A person on your team opens it in OLO, chooses the TikTok settings and the time, and approves it.
- Read the status through the API: scheduled, posted, failed, with the TikTok link.
Why the API does not post directly
TikTok requires the person posting to see the account, choose who can view the video, the interactions and the commercial disclosure, and consent for every video. The OLO API respects that: it puts the video into OLO, but the decision stays with a person.
Endpoints
| Request | What it does |
|---|---|
POST /api/v1/videos | Starts an upload: {"name","size","mime"} → {"id","chunk_size"} |
PUT /api/v1/videos/{id}/chunk?offset=N | Sends a chunk (raw bytes). Responds with received. |
POST /api/v1/videos/{id}/complete | Finishes the upload; optional {"duration_ms"}. |
POST /api/v1/posts | Creates a post to review: {"video_id","caption","account_id?","scheduled_at?","mode?"} |
GET /api/v1/posts/{id} | The post status and the TikTok link. |
GET /api/v1/accounts | Connected TikTok accounts (id, name). |
GET /api/v1/me | The key’s account. |
Example
curl -X POST https://olo.ro/api/v1/posts \
-H "Authorization: Bearer olo_…" \
-H "Content-Type: application/json" \
-d '{"video_id":"…","caption":"Lunch menu #lunch","account_id":3}'
→ 201 {"id":42,"status":"needs_review","review_url":"https://olo.ro/app/new?post=42"}
Limit: 240 requests per minute per key. Videos up to 1 GB, 8 MB chunks. Statuses: needs_review, scheduled, publishing, processing, published, sent_to_inbox, failed, canceled.
Need help with the integration?
Write to contact@olo.ro.