Developers · Social media API

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.

Compared

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 /posts creates one post per target account. Up to 25 accounts per request, with per-account copy in texts, or one entry per post in posts, each with its own hashtags, tags, media and settings. It answers 202 with 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 /posts lists your posts, filtered by status and paged with a cursor, up to 100 a page.
  • DELETE /posts/{id} removes a post from Antwork. With deleteFromPlatform=true it also queues deletion of the live post, and says which networks do not support that.
  • GET /accounts lists 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:

Terminal
# 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:

Terminal
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.

PlatformText limitRequired mediaMedia per postThrough the REST API
X (Twitter)280 charactersNone4Yes
LinkedIn3,000 charactersNone9Yes
Facebook63,206 charactersNone10Yes
Threads500 charactersNone20Yes
Instagram2,200 charactersImage or video10Yes
YouTube5,000 charactersVideo1Yes
TikTok2,200 charactersVideo1Yes; it publishes once the owner picks the audience in Antwork
Pinterest800 charactersImage or video1Yes
Bluesky300 charactersNone4Yes

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.

FAQ

Social media API questions, answered

Is there one API that posts to every social network?
With Antwork, one key covers X (Twitter), LinkedIn, Facebook, Threads, Instagram, YouTube, TikTok, Pinterest, and Bluesky, on the REST API and on Antwork's MCP endpoint at https://api.antwork.io/mcp. On TikTok the account owner picks each post's audience in Antwork before it publishes, which TikTok requires of every app.
Can I post to Instagram through an API without a Meta app?
Yes. Antwork runs the Meta app: you connect your Instagram professional account once, then send POST /api/v1/posts with your Antwork key as a Bearer token. Instagram needs an image or video, attached as a file from your Antwork media library.
How do I schedule a post through the API?
Send scheduledFor as an ISO 8601 time in POST /api/v1/posts, up to 30 days ahead. Leave it out to publish now, or send draft: true to save a draft for review.
How does authentication work?
Create a key in Settings, Developer, and send it as Authorization: Bearer ak_…. Each key carries its own scopes: write creates drafts, publish sends posts, read lists them, media uploads files. The key is shown once.
How much does the Antwork API cost?
The same as the app: the first 2 connected accounts are free, then $5 per account a month. Calls are not metered; a key has a ceiling of 10,000 calls a day to stop runaway loops.
How is this different from Ayrshare, Blotato or Buffer's API?
Ayrshare and Buffer cover more networks. Ayrshare starts at $149 a month and Blotato at $29, and Blotato's trial excludes the API. Buffer bills per channel and caps requests per key. Antwork bills per connected account with the first 2 free, and its REST API covers the 9 networks it publishes to. The table above links every figure to the vendor's page.