Social media API: one key to post to 9 networks
One Antwork API key posts to X (Twitter), LinkedIn, Facebook, Threads, Instagram, YouTube, TikTok, Pinterest, and Bluesky, from the REST API or Antwork's MCP endpoint. On TikTok the account owner picks each post's audience in Antwork before it publishes. First 2 accounts free, then $5 per account a month.
- 01One key, two surfaces.
An Antwork API key works on the REST API and on the MCP endpoint, and both reach all 9 networks. A TikTok post publishes once its owner picks the audience in Antwork, as TikTok requires.
- 02No platform app of yours.
Antwork runs the Meta, LinkedIn, X, Pinterest, TikTok, Google and Bluesky integrations. You connect each social account once in Antwork, then post to it by account id.
- 03Priced per connected account.
The first 2 accounts are free and each one after that is $5 a month. The API has no separate fee and no per-call meter.
Antwork, Ayrshare, Blotato and Buffer API compared
Competitor figures were read on each vendor's own pricing page and API docs on 22 October 2026, and each cell links to its source. Ayrshare's pricing page gives different account counts per plan in its cards and its comparison table, so the table quotes profiles, the unit it bills by. Antwork's row is computed from the code: the networks from the platform rules file, the price from the billing constants, the limit from the API's rate limiter.
Antwork is a social media API with one key for X (Twitter), LinkedIn, Facebook, Threads, Instagram, YouTube, TikTok, Pinterest, and Bluesky. Your code calls the REST API to publish or schedule on any of them, and the same key works for an agent on Antwork's MCP endpoint. You never build a platform app or pass an app review: you connect each account once in Antwork and post to it by id.
Endpoints
Five endpoints, all under https://antwork.io/api/v1, all authenticated with the same key:
POST /postscreates one post per target account. Up to 25 accounts per request, with per-account copy intexts, or one entry per post inposts, each with its own hashtags, tags, media and settings. It answers202with a result per target, because a target fails alone: X refusing a long body does not cancel the LinkedIn post beside it.GET /posts/{id}returns one post and its status. Publishing runs in the background, so this is how you see it go out.GET /postslists your posts, filtered bystatusand paged with a cursor, up to 100 a page.DELETE /posts/{id}removes a post from Antwork. WithdeleteFromPlatform=trueit also queues deletion of the live post, and says which networks do not support that.GET /accountslists the accounts you connected, with their ids and token health.
Send an Idempotency-Key header on POST /posts and a retried request returns the first answer instead of posting twice. Fields and every error code are in the API reference.
Your first post in two requests
Create a key in Settings → Developer, then:
# 1 · list the accounts you connected
curl https://antwork.io/api/v1/accounts \
-H "Authorization: Bearer $ANTWORK_API_KEY"
# 2 · create and schedule a post
curl https://antwork.io/api/v1/posts \
-H "Authorization: Bearer $ANTWORK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: launch-post-1" \
-d '{"accounts":["<accountId>"],"text":"Shipped v2 today.","scheduledFor":"2026-11-03T09:00:00Z"}'
Leave out scheduledFor to publish now, or send "draft": true to save it for review. A draft needs the write scope; a post that goes out needs publish. Media goes in media as URLs from your Antwork library: an external URL is refused with media_not_hosted before anything is created, rather than failing at publish time.
TikTok, and the same key for agents
The REST API takes X (Twitter), LinkedIn, Facebook, Threads, Instagram, YouTube, TikTok, Pinterest, and Bluesky. TikTok is the one network where a person stays in the loop: TikTok requires the account owner to choose each post's audience, so your code creates the TikTok post as a draft and the owner picks the audience in Antwork, at the draft's settingsUrl. Until then a TikTok publish is refused with tiktok_privacy_required.
For an agent, send the same key to Antwork's MCP endpoint, which any MCP client or agent SDK can call with a static header:
claude mcp add --transport http antwork https://api.antwork.io/mcp \
--header "Authorization: Bearer $ANTWORK_API_KEY"
The scopes behave the same on both surfaces. Setup for Codex and the Claude Agent SDK in TypeScript and Python is in the MCP reference. Instagram only connects Creator or Business accounts; switching is free and needs no Facebook Page.
What each network requires
Every post is checked against these rules on both surfaces: a draft is flagged, and a post that breaks one is refused before it publishes. The table is generated from the same rules file the publishers validate against, so it cannot disagree with what the API enforces. A Pinterest pin also goes to a board, picked from the account's boards. File sizes, formats and duration ceilings are in platform specifications.
| Platform | Text limit | Required media | Media per post | Through the REST API |
|---|---|---|---|---|
| X (Twitter) | 280 characters | None | 4 | Yes |
| 3,000 characters | None | 9 | Yes | |
| 63,206 characters | None | 10 | Yes | |
| Threads | 500 characters | None | 20 | Yes |
| 2,200 characters | Image or video | 10 | Yes | |
| YouTube | 5,000 characters | Video | 1 | Yes |
| TikTok | 2,200 characters | Video | 1 | Yes; it publishes once the owner picks the audience in Antwork |
| 800 characters | Image or video | 1 | Yes | |
| Bluesky | 300 characters | None | 4 | Yes |
Pricing
The API is priced like the app. The first 2 connected accounts are free, and each account after that is $5 a month. Posts are not counted on any plan, and the API has no separate fee. Each key has a ceiling of 10,000 calls a day and 120 a minute, to stop runaway loops rather than ration normal use. See pricing.
When another API fits better
If you need Reddit, Snapchat, Telegram, WhatsApp or Google Business Profile, Ayrshare lists them and Antwork does not. If you already schedule with Buffer, its GraphQL API reaches the channels you have there. Antwork fits when you post for one brand, want to start free, and want your agent and your code on the same accounts.