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.
| Channel | Id | Notes |
|---|---|---|
facebook | feed, story, reel, or live. Optional page_id. | |
instagram | contentType and page_id. Carousel media_urls is 2 to 10. | |
| Threads | threads | link, alt_text, topic_tag. Carousel is 2 to 20. |
linkedin | post resolves to text, image, or video. privacy only_me skips publish. | |
| TikTok | tiktok | tiktok_privacy_level is required and must match this account’s options. |
| X | twitter | text, image, video, poll, or thread. |
| YouTube | youtube | channel_id and videoTitle (100 characters or fewer). |
| Snapchat | snap | story or spotlight. Needs profile_id. |
reddit | subreddit, then text, image, video, or link. | |
pinterest | board_id, link, alt_text. Multi-image is 2 to 5. | |
| Bluesky | bluesky | Up to 4 images. Optional link, video_url, and alt text. |
| Mastodon | mastodon | contentType text. |
Messaging
These channels use the same post endpoints. They are not a separate inbox API.
| Channel | Id | Required option |
|---|---|---|
| Discord | discord | channel_id. Forum posts can also send forum_channel_id, forum_thread_name, embeds_json, and poll_json. |
| Telegram | telegram | chat_id. |
whatsapp | to, 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:
| Network | platform |
|---|---|
| Meta | META |
LINKEDIN | |
| TikTok | TIKTOK |
PINTEREST | |
| Snapchat | SNAPCHAT |
REDDIT | |
| Google Ads | GOOGLE_ADS |
| YouTube | YOUTUBE |
| Microsoft Advertising | MICROSOFT_ADVERTISING |
| X | TWITTER |
| Amazon | AMAZON_ADVERTISING |
| Apple Search Ads | APPLE_SEARCH_ADS |
| OpenAI Ads | OPENAI_ADS |
| Spotify Ads | SPOTIFY_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 posts | Ads | |
|---|---|---|
| Create | POST /api/v1/posts | POST /api/v1/campaigns, then ad sets, then ads |
| Account | connectorId inside channelSettings | connectorId on the publish body |
| Schedule | Approve, then SCHEDULED and scheduledAt | startAt and endAt on the campaign or ad set |
| Send | POST /api/v1/posts/{id}/publish | Publish campaign, then ad set, then ad |
| Failure | publications[].errorMessage, then retry-failed | Publication status on the campaign, ad set, or ad |
| Metrics | POST /api/v1/posts/{id}/sync | POST …/sync with platform and connectorId |
Related: connect an account, schedule a post, upload media, publish ads.