Threads API · post · schedule · analyze

The Threads API built for developers

Publish text, images, video and carousels to Threads with one API call — no create-container dance, no reply-chain bookkeeping, no token expiry. We handle the Meta plumbing so you ship in hours, not weeks.

PostsCarouselsReply chainsSchedulingAnalytics

✓ 5 minutes to first post ✓ 99.92% uptime ✓ Posts, carousels & reply chains

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "what are you all building this weekend?", "accounts": ["threads"] }'

Text-only posts a Thread. Add media, send 2–10 for a carousel, or containers[] for a reply chain.

The Threads API is new — and already painful

Publishing through the Threads API means a Meta app and OAuth, a two-step create-container → publish flow like Instagram's, publicly-hosted media URLs, and reply chains assembled from parent IDs. Outstand turns all of it into a single request.

Meta app and OAuth setup
Connect once via OAuth — we manage the app and permissions, or bring your own
Two-step create-container → publish flow per item
One POST /v1/posts/ — we create and publish the container for you
Media must be a public HTTPS URL you host yourself
Pass a URL; we fetch it and hand it to Threads correctly per media type
Reply chains assembled from parent post IDs
Send a containers[] array; we chain the replies in order
Long-lived tokens that expire silently
Automatic token refresh — you never see a 401
Per-account publishing caps and 429s
We queue, throttle and retry — you never see a 429

Everything Threads supports, through one endpoint

Every content type and capability available on Threads via Outstand today.

Text posts

Images & video

Carousels (2–10)

Reply chains

PublishingSchedulingAnalyticsMedia handlingComments

Plus reply threading and country-level geo-gating. Deleting a published Thread is not offered by the Threads API.

Copy, paste, ship

The same accounts array also fans out to Instagram, X, Bluesky and more — one request, many platforms.

Post with an image

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "shipping notes, in one picture 📝",
    "accounts": ["threads"],
    "media": [{ "url": "https://media.outstand.so/notes.jpg", "filename": "notes.jpg" }]
  }'

Publish a carousel (2–10)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "swipe for the whole story →",
    "accounts": ["threads"],
    "media": [
      { "url": "https://media.outstand.so/1.jpg", "filename": "1.jpg" },
      { "url": "https://media.outstand.so/2.jpg", "filename": "2.jpg" },
      { "url": "https://media.outstand.so/3.jpg", "filename": "3.jpg" }
    ]
  }'

Post a reply chain

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accounts": ["threads"],
    "containers": [
      { "content": "a quick thread on shipping fast 🧵" },
      { "content": "1/ ship small, ship often" },
      { "content": "2/ measure, then iterate" }
    ]
  }'

Geo-restrict by country

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "only visible in the US & DK 🌍",
    "accounts": ["threads"],
    "threads": { "countries": ["US", "DK"] }
  }'

Schedule a post (up to 30 days out)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "going live Friday ⏰", "accounts": ["threads"], "scheduledAt": "2026-07-03T16:00:00Z" }'

Read & reply to replies

bash
# Read the comments on a published post
curl "https://api.outstand.so/v1/posts/{id}/replies?network=threads" \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"

# Reply to a comment (or comment on your own post)
curl https://api.outstand.so/v1/posts/{id}/replies \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "appreciate it! 🙏", "account_username": "yourbrand" }'

Live in three steps

From signup to your first published Thread in about five minutes.

1

Connect Threads

Your user authorizes via OAuth. We store and refresh the long-lived token. Use our Managed Keys, or bring your own Meta app for white-label.

2

Call POST /v1/posts/

Send text and media with accounts: ["threads"]. Use containers[] for a reply chain, or add scheduledAt to schedule.

3

We do the Threads API work

Container creation, publishing, reply chaining and rate-limit handling — returned as a unified response with the published post ID.

More than a Threads wrapper

One integration that grows with everything you ship next.

One API, 10+ platforms

One request publishes to Threads and 10 more networks. Same JSON shape everywhere — learn one API, ship them all.

Managed Keys or BYOK

Skip the Meta app setup — use our Managed Keys, or bring your own Meta app for white-label OAuth under your brand.

Built for scale

Intelligent rate limiting, automatic token refresh, webhook events and media processing.

Honest pricing

$19/mo includes 3,000 posts, then from $0.007/post. No seats, no annual lock-in.

What you can build

Same endpoints, same data shapes — pick what you ship.

Social schedulers

Let your users queue and auto-publish Threads content from your app.

AI agents

Give Claude or GPT a tool to post to Threads. MCP server included.

Analytics dashboards

Pull Threads reach and engagement alongside every other platform.

Agencies & white-label

Run Threads posting for clients under your own brand and app.

Threads API FAQ

The questions developers ask before they build.

Does Threads have an official API?

Yes — the Threads API (by Meta) lets approved apps publish text, image, video and carousel posts, build reply chains and read insights. Outstand is a managed layer on top of it, so you skip the setup.

Can I post to Threads via API?

Yes. Send POST /v1/posts/ with accounts: ["threads"] and your text. Add media for an image or video post, or 2–10 items for a carousel.

Can I post a reply chain on Threads via API?

Yes. Send a containers[] array — the first container is the root post and each following container is published as a reply, in order, to form the chain.

Can I geo-restrict a Thread by country?

Yes. Pass threads.countries with ISO 3166-1 alpha-2 codes (e.g. ["US","DK"]) and the post is only shown to Threads profiles in those countries.

Can I schedule Threads posts via the API?

Yes. Add a scheduledAt ISO-8601 timestamp (up to 30 days ahead) and Outstand publishes it automatically — no cron or queue on your side.

Can I read and reply to Threads replies via the API?

Yes. Read the replies on a published post with GET /v1/posts/{id}/replies?network=threads and post a reply with POST /v1/posts/{id}/replies.

Can I delete a Thread via the API?

No — the Threads API does not offer deleting posts. Outstand reports this clearly per account rather than failing silently.

Ship Threads posting today

Grab an API key and publish your first Thread in the next five minutes. 3,000 posts included, then from $0.005/post.