Cross-Post the Same Video to Instagram and TikTok
Publish one video to Instagram and TikTok with a single POST /api/posts call, plus the real aspect-ratio, duration, and file-size limits a file has to clear for both.
Put both profile IDs in the same profiles array on one POST /api/posts call — PostGate fans the request out to Instagram and TikTok and tracks each target independently. The one video file must satisfy the stricter limit on each dimension: Instagram's 300MB size cap and 0.8:1–1.91:1 aspect range, TikTok's 600-second duration cap. A 9:16 vertical clip clears both.
One video, two platforms, one request. PostGate doesn't need a separate call per platform — put both pro_instagram... and pro_tiktok... profile IDs in the same profiles array on a single POST /api/posts call, and each target gets tracked and delivered independently. The part that actually needs planning is the video file itself: Instagram and TikTok enforce different limits, and the file you send has to satisfy both at once.
One request, both profiles in the same array
platforms field to set — routing is entirely determined by which connected profile IDs you list. Include one Instagram profile and one TikTok profile in the same profiles array and PostGate fans the single request out to both providers' own publish pipelines, tracking each as a separate target with its own status, retry count, and permalink.curl -X POST "https://postgate.studio/api/posts?profile_group_id=grp_acme123" \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: launch-clip-cross-post-001" \
-d '{
"post": { "body": "New feature, in 30 seconds." },
"profiles": ["pro_instagram123", "pro_tiktok456"],
"media": ["med_01JXYZ"]
}'How do you use a different caption or hashtags per platform?
post.options.body_overrides to swap the text per target while everything else about the post stays shared. The override replaces post.body only for the platform key it names; every other target still gets the top-level body.curl -X POST "https://postgate.studio/api/posts?profile_group_id=grp_acme123" \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: launch-clip-cross-post-001" \
-d '{
"post": {
"body": "New feature, in 30 seconds. Link in bio.",
"options": {
"body_overrides": {
"tiktok": "New feature, in 30 seconds. #producthunt #saas"
}
}
},
"profiles": ["pro_instagram123", "pro_tiktok456"],
"media": ["med_01JXYZ"]
}'What are Instagram's actual video limits?
media_invalid before it spends a single write call, whether the target is a feed post or a Reel.What are TikTok's actual video limits?
What does one file have to satisfy for both at once?
How do you read the result when one platform succeeds and the other fails?
partial — Instagram published, TikTok failed on a content policy check, for example — and the targets array is what tells you which permalink to keep and which target to retry or show the customer. Never treat the aggregate status alone as the full answer for a two-platform post; read both targets.Frequently asked questions
Can I post the same video to Instagram and TikTok with one API call?
Yes. There is no platforms field to set — routing is entirely determined by which connected profile IDs you list. Include one Instagram profile and one TikTok profile in the same profiles array on a single POST /api/posts call, and PostGate fans the request out to both providers’ publish pipelines, tracking each as a separate target with its own status, retry count, and permalink.
How do I use different captions for Instagram and TikTok in the same post?
Use post.options.body_overrides to swap the text per platform while everything else stays shared. The override replaces post.body only for the platform key it names; every other target still gets the top-level body. This matters because TikTok doesn’t render links in the body at all, so a caption written for Instagram often needs its call-to-action reworded.
What video specs work on both Instagram and TikTok at once?
The binding constraint is whichever platform is stricter per dimension: Instagram’s 300MB cap governs file size (TikTok allows 4GB), TikTok’s 600-second cap governs duration (Instagram allows 900), both share a 3-second minimum, and targeting Instagram’s 0.8:1–1.91:1 aspect range satisfies TikTok too, since it has no enforced range. A 4:5 or 9:16 vertical clip clears both comfortably.
Does TikTok enforce an aspect ratio through the API?
No — TikTok’s API doesn’t enforce a hard aspect-ratio check the way Instagram does. Vertical 9:16 is what the platform’s own UI and algorithm favor, but it isn’t a validation rule PostGate applies on your behalf, so a horizontally-cropped file will still upload successfully even if it performs worse once it’s live.
What happens if Instagram publishes but TikTok fails?
The aggregate post lands as partial — exactly the case the per-target status model exists for. The targets array tells you which permalink to keep and which target to retry or show the customer. Never treat the aggregate status alone as the full answer for a two-platform post; read both targets.
