Guides
Social publishing
Connect a character’s Instagram, TikTok, YouTube, Threads and X accounts once, then publish or schedule any generation to them.
How accounts work
Accounts belong to a character — the persona that publishes. One character can have one account per platform. Accounts connected in the Orior app are available to the API too, and vice versa.
1. Connect an account
The account owner must authorise on the platform’s own screen. Create a connect link, send them to it, and they come back to your redirect_url.
curl https://api.oriorai.com/v1/social/connect-links \
-H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{"character_id":"Qx8p2LmN4vRt","platform":"instagram","redirect_url":"https://example.com/settings/social"}'
# → {"url":"https://…","expires_at":…,"monthly_fee_credits":0}After authorising, the owner lands on your URL with query parameters:
| Parameter | Value |
|---|---|
status | connected or failed |
character_id, platform | What was connected |
error | On failure: NOT_CONNECTED (cancelled or rejected), INSUFFICIENT_CREDITS (fee could not be charged), … |
Links expire after 30 minutes. Confirm with GET /social/accounts?character_id=….
2. Publish
curl https://api.oriorai.com/v1/social/posts \
-H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{
"character_id": "Qx8p2LmN4vRt",
"platforms": ["instagram", "tiktok"],
"generation_ids": ["gen_7f3c…"],
"caption": "Morning ritual ☕️ #coffee",
"settings": { "instagram": { "content_type": "reel" }, "tiktok": { "ai_disclosure": true } }
}'The response lists results per platform with the live post URL. Posting takes a while (media is uploaded to every platform) — allow up to a few minutes per request.
Scheduling
Add scheduled_at (ISO 8601 with offset, at least 5 minutes ahead) to schedule instead of publishing now. Scheduled posts return status: "scheduled"; they are charged when scheduled, and the platform publishes them at the requested time.
Platform rules
| Platform | Images | Video | Caption | Options |
|---|---|---|---|---|
| 1–10 (carousel) | Reel, feed or story, up to 60 min | 2,200 | content_type, aspect_ratio, collaborators, user_tags, thumb_offset | |
| TikTok | 4–10 (photo post) | Up to 10 min | 2,200 | allow_comments, allow_duet, allow_stitch, ai_disclosure, auto_add_music |
| YouTube | 1–10 (community post) | Short, up to 60 s | 5,000 | content_type, title, visibility, made_for_kids |
| Threads | 1–10 | Up to 5 min | 500 | — |
| X (twitter) | 1–4 | Up to 2 min 20 s | 280 | — |
A post is one video or up to 10 images. A platform whose limits the media doesn’t meet fails and is refunded; the others still publish.
Captions longer than a platform allows are trimmed; media is cropped to the platform’s required ratios. Declare AI-generated content where platforms require it (see the API terms).
Pricing
- 1 credit per platform per post; 3 for an X post whose caption contains a link. Failed platforms are refunded.
- Plans include 5 (Influencer) or 15 (Agency) connected accounts across the workspace. Each account connected through the API beyond that costs 50 credits when connected and every 30 days after.
- If a renewal cannot be charged, the account shows
payment_due: trueand API posts to it are refused (402) until the fee is paid; it is retried daily. Disconnecting stops the fee.
monthly_fee_credits).