Threads API

Threads posting API: posts and threads from a social media agent

Blotato's Threads posting API publishes a text post, an image, a video, or a full multi-post thread in one request.

Meta's Threads API uses the same container-then-publish pattern as Instagram, and it needs App Review for production. Here it is a single POST from an account you connected through a login screen.

REST
POST https://backend.blotato.com/v2/posts
Auth
blotato-api-key: YOUR_API_KEY
MCP
https://mcp.blotato.com/mcp

Updated September 2026. API access is included on every paid plan and excluded from the free trial.

What the Threads posting API does in Blotato

POST /v2/posts with targetType threads. Text posts run to 500 characters. Each post carries one image or one video: Blotato's Threads integration takes no carousel, and a mediaUrls array with two items fails with the error 'Threads only supports a single image or a video'. For several images, send a thread instead, with one image per entry in content.additionalPosts.

Threads with one media item per post

content.text is the first post. Each additionalPosts entry is the next reply with its own text and a single mediaUrls item.

Reply control

target.replyControl takes everyone, accounts_you_follow, or mentioned_only. It is optional.

Post analytics

GET /analytics ranks your published Threads posts by views, reach, likes, or comments. GET /posts/:id/analytics returns one post over time.

Scheduling into the calendar

scheduledTime queues the post or the whole thread. GET, PATCH, and DELETE /schedules/:id manage it afterwards.

How to publish several images to Threads when a post takes one media item

Send a thread. Post one carries image one, post two carries image two, and so on. Each entry has exactly one item in its mediaUrls, and Blotato chains the replies for you.

POST https://backend.blotato.com/v2/posts
{
  "post": {
    "accountId": "98432",
    "content": {
      "text": "Two screenshots from the agent's first week.",
      "mediaUrls": ["https://cdn.example.com/week-1a.png"],
      "platform": "threads",
      "additionalPosts": [
        { "text": "Day 7. Every post polled to published before the log closed.", "mediaUrls": ["https://cdn.example.com/week-1b.png"] }
      ]
    },
    "target": {
      "targetType": "threads",
      "replyControl": "everyone"
    }
  }
}

Response: { "postSubmissionId": "uuid" }, a receipt. Poll GET /posts/:postSubmissionId for published or failed. Every field: help.blotato.com/api/llm. Threads' own reference: the Threads API docs.

Three things Meta's Threads API makes you do that this does not

  • The thread envelope is shared with X and Bluesky. The same additionalPosts array publishes a thread on all three. Change targetType, keep each network's character limit, and post the same thread three times.
  • The container flow is gone. Create a container, wait, then publish it is how Meta does Threads and Instagram. Here it is one request and one status poll.
  • Production access is already granted. Meta's Threads API gates production publishing behind App Review and a 60-day token refresh. Blotato's app holds that access and refreshes the tokens.

From API key to a live thread on Threads

  1. Connect Threads. Sign in to Blotato and connect the Threads account through the login flow.
  2. Generate an API key. The API tab in Settings issues the key, and the key starts paid Starter at $29/mo on the spot, because the free trial does not include the API.
  3. Fetch the accountId. GET /users/me/accounts?platform=threads.
  4. POST and poll. Send the request above and poll GET /posts/:postSubmissionId. A two-item mediaUrls array fails here, with the single-image error attached.

Posting from Claude instead of a script? The Threads tools are on the MCP server at https://mcp.blotato.com/mcp. Setup per client is on the Threads MCP server page, and the walkthrough of posting to Threads from Claude shows the prompt-to-post flow. A prompt like "Post these three screenshots to Threads as a thread, one per post, replies limited to accounts I follow." calls the same endpoint this page documents.

See every plan and its limits

Threads posting limits and what it costs

Blotato publishes no Threads-specific daily cap in its posting limits, so Meta's own Threads API limits are the ceiling, and a rejected post comes back as failed with Meta's error attached.

Threads limitValue through Blotato
Blotato daily capnone; Meta's Threads limits apply
Text500 characters
Media per post1 image or 1 video; send a thread for more
Imagesup to 8 MB, 10:1 to 1:10
VideoMP4 or MOV, up to 1 GB, 1 second to 5 minutes, 9:16 recommended
Off-spec videoconverted by Blotato only under 120 seconds

Meta's Threads API is free per call. Its rate-limit formula, the 24-hour publishing caps, and the token refresh most teams forget are in the Threads API pricing guide.

On Threads, this API covers publishing, scheduling and analytics. Comments, DMs and DM automation are Instagram and Facebook only. Caps are listed at help.blotato.com/settings/social-accounts.

MCP tools that reach Threads

The tool names an agent calls on the MCP server for this platform, verbatim from the server's tool list. The REST endpoint behind each one is in the API reference.

  • blotato_list_accounts
  • blotato_create_post
  • blotato_get_post_status
  • blotato_list_posts
  • blotato_list_schedules
  • blotato_get_schedule
  • blotato_update_schedule
  • blotato_delete_schedule
  • blotato_create_presigned_upload_url
  • blotato_list_top_posts
  • blotato_get_post_analytics
FAQ

Threads posting API FAQs

01 Can I post a carousel to Threads through the API?
No. Through Blotato, a Threads post takes one image or one video. To publish several images, send a thread with one image per additionalPosts entry, and Blotato posts them as a reply chain.
02 Does the Threads posting API need Meta App Review?
Not on your side. Blotato's app holds production access to the Threads API. You connect a Threads account through a normal login and publish with POST /v2/posts.
03 Can I limit who replies to a Threads post via the API?
Yes. Set target.replyControl to everyone, accounts_you_follow, or mentioned_only. It is optional.
04 Does Blotato return Threads analytics?
Yes. Threads is one of the eight platforms with analytics. GET /analytics ranks published posts by views, reach, likes, or comments, and GET /posts/:id/analytics returns one post over time.

Same key, eight more platforms

Threads is one targetType on the same endpoint. The social media API page has the comparison table of every platform's required fields and caps.