Multi-platform posting
Post to Multiple Social Platforms at Once for Teams
Multi-platform posting removes the copy-and-paste routine: prepare content once, select the accounts, and let the scheduled posts endpoint fan the request out to each platform. The work that remains is making sure the content fits the platform it targets. This page covers the endpoint fan-out, the per-platform media rules, how scheduling validates a batch, and how to track every post that came out of one request.
The problem this solves
Posting the same campaign to five platforms usually means five uploads, five captions, and five places to check what happened. The API turns that into one prepared payload and one submit call, then reports status per post. The team stops managing tabs and starts managing content, which is the part that actually needs judgment.
How multi-platform posting works
A direct POST /api/content/post publishes to one account at a time. Multi-account fan-out uses POST /api/posts with a list of account IDs and target platforms, where the backend validates the payload against the rules of each selected account before queueing and processes each platform independently. That means one platform failing does not block the others, and a request that cannot work for a selected account is rejected before it is queued. Text-only posts are the exception: they are supported only on Threads and Facebook.
- One endpoint, multiple account IDs, per-account platform settings.
- Validation against each selected platform before sending.
- Independent processing, so one failure does not block the rest.
- Text-only supported on Threads and Facebook only.
A multi-platform request you can run
The sample lists the connected accounts first, then publishes to one account using its account ID and platform. Repeat that call for each account, or send one request to POST /api/posts with a list of account IDs for a single multi-account submission.
const API_BASE_URL = 'https://api.wahdx.com';
const API_KEY = process.env.WAHDX_API_KEY;
await fetch(API_BASE_URL + '/api/content/post', {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
"platform": "instagram",
"accountId": "acc_instagram_internal_uuid",
"content": "Campaign post caption",
"mediaItems": [
{
"url": "https://your-domain.com/video.mp4"
}
],
"instagramSettings": {
"share_to_feed": true
}
}
)
});import os
import requests
API_BASE_URL = 'https://api.wahdx.com'
API_KEY = os.environ['WAHDX_API_KEY']
response = requests.post(
API_BASE_URL + '/api/content/post',
headers={
'X-API-Key': API_KEY,
'Content-Type': 'application/json',
},
json={
'platform': 'instagram',
'accountId': 'acc_instagram_internal_uuid',
'content': 'Campaign post caption',
'mediaItems': [
{
'url': 'https://your-domain.com/video.mp4'
}
],
'instagramSettings': {
'share_to_feed': True
}
},
timeout=30,
)
response.raise_for_status()
print(response.json())curl -X POST "https://api.wahdx.com/api/content/post" \
-H "X-API-Key: $WAHDX_API_KEY" \
-H "Content-Type: application/json" \
--data-raw '{
"platform": "instagram",
"accountId": "acc_instagram_internal_uuid",
"content": "Campaign post caption",
"mediaItems": [
{
"url": "https://your-domain.com/video.mp4"
}
],
"instagramSettings": {
"share_to_feed": true
}
}'Media rules to plan around
The media type decides where a post can go. Video works across the five platforms, photo carousels are limited by each platform, and text-only is limited to two. This table is the quick version to check before a batch run.
| Platform | Video | Photo carousel | Text-only |
|---|---|---|---|
| TikTok | MP4/MOV, H.264, 3s-10min | Up to 35 images | No |
| Video and reels | Up to 10 photo items | No | |
| Threads | Per thread item | Per thread item | Yes, 500 chars |
| Video to a Page | Multi-photo post | Yes, 4000 chars | |
| YouTube | Upload with per-video settings | Not supported | No |
Limits and behaviors to plan around
Scheduling follows the same 30-day window, and every selected account must accept the media type in the request. Expired accounts are returned by the listing with an expired status, and publishing refuses them, so reconnection belongs in the account picker rather than in a retry loop. Failed posts are visible in status tracking, so a rejected video or a platform outage turns into a task instead of a silent gap in the calendar.
Tracking each post to publication
One request produces several posts, each with its own publish ID and lifecycle. The single status endpoint checks one post, and the batch endpoint checks many, so a nightly job can confirm the whole day in one call. Because status, scheduling, and analytics all tie to the same connected accounts, the publishing record and the reporting record never drift apart.
FAQ
Common questions about multi-platform posting
Does one API request publish to all platforms?
A single request to POST /api/posts can fan out to several accounts. A direct POST /api/content/post publishes to one account at a time, so multi-platform publishing uses the scheduled posts endpoint with a list of account IDs.
Can I schedule multi-platform posts?
Yes, up to 30 days ahead. Each selected account must accept the media type, and the queue processes platforms independently.
Why was my post rejected before publishing?
Validation runs before the request is sent. A text post targeting TikTok or Instagram, an expired account, or mixed photo and video in one carousel is rejected early.
What happens when one platform rejects a post?
The failure is recorded in status tracking for that post. The other platforms in the same request are not blocked.
Related reading
Go deeper on this workflow.
Related API docs
TikTok Content Publishing API: Video, Photos & Carousels
Publish video and photo carousels to TikTok through an official API. Media specs, posting limits, QR login, scheduling, and status tracking in one workflow.
Instagram Graph API Content Publishing for Business Accounts
Publish photos, reels, and carousels to Instagram with the Content Publishing API. Business account requirements, media limits, and metrics.
YouTube API: Upload Videos and Read Channel Analytics
Upload videos to YouTube with per-video settings, then read subscribers, views, and video metrics through one API workflow.
Threads API: Text Posts, Thread Sequences & Metrics
Publish text posts and thread sequences to Threads via API. Character limits, scopes, reply settings, rate limits, and metrics read-back.