AthenousDevelopers

Platforms

Organic posts share one request. Put the channel id in channels and that channel’s options in channelSettings. Ads use a separate platform value on the publish body. Connect each account in the app first, then copy connectorId from GET /api/v1/connectors.

Social posting

These ids go in channels and as keys inside channelSettings. Extra fields for each one are in the channel table.

ChannelIdNotes
Facebookfacebookfeed, story, reel, or live. Optional page_id.
InstagraminstagramcontentType and page_id. Carousel media_urls is 2 to 10.
Threadsthreadslink, alt_text, topic_tag. Carousel is 2 to 20.
LinkedInlinkedinpost resolves to text, image, or video. privacy only_me skips publish.
TikToktiktoktiktok_privacy_level is required and must match this account’s options.
Xtwittertext, image, video, poll, or thread.
YouTubeyoutubechannel_id and videoTitle (100 characters or fewer).
Snapchatsnapstory or spotlight. Needs profile_id.
Redditredditsubreddit, then text, image, video, or link.
Pinterestpinterestboard_id, link, alt_text. Multi-image is 2 to 5.
BlueskyblueskyUp to 4 images. Optional link, video_url, and alt text.
MastodonmastodoncontentType text.

Messaging

These channels use the same post endpoints. They are not a separate inbox API.

ChannelIdRequired option
Discorddiscordchannel_id. Forum posts can also send forum_channel_id, forum_thread_name, embeds_json, and poll_json.
Telegramtelegramchat_id.
WhatsAppwhatsappto, an E.164 phone number.

Advertising

Publish uses a platform id, not an organic channel id. The full list, including what each network needs on the publish body, is on Ads. These are the ids used most often:

Networkplatform
MetaMETA
LinkedInLINKEDIN
TikTokTIKTOK
PinterestPINTEREST
SnapchatSNAPCHAT
RedditREDDIT
Google AdsGOOGLE_ADS
YouTubeYOUTUBE
Microsoft AdvertisingMICROSOFT_ADVERTISING
XTWITTER
AmazonAMAZON_ADVERTISING
Apple Search AdsAPPLE_SEARCH_ADS
OpenAI AdsOPENAI_ADS
Spotify AdsSPOTIFY_ADS

What you can do

Organic posts and ads do not share a status enum or a publish body. Both report results on publication rows. Poll those rows, or call sync. This API version does not send webhooks.

Organic postsAds
CreatePOST /api/v1/postsPOST /api/v1/campaigns, then ad sets, then ads
AccountconnectorId inside channelSettingsconnectorId on the publish body
ScheduleApprove, then SCHEDULED and scheduledAtstartAt and endAt on the campaign or ad set
SendPOST /api/v1/posts/{id}/publishPublish campaign, then ad set, then ad
Failurepublications[].errorMessage, then retry-failedPublication status on the campaign, ad set, or ad
MetricsPOST /api/v1/posts/{id}/syncPOST …/sync with platform and connectorId

Related: connect an account, schedule a post, upload media, publish ads.