Home / Platforms / Threads
Threads API v2 Stable

Threads API

The Threads API (by Meta) enables programmatic publishing, reply management, and analytics for Threads — Meta's text-based conversation platform. Supports text, images, videos, carousels, GIFs, polls, and spoilers.

API Overview

2026 Edition

The Threads API is Meta's official developer interface for Threads, the text-based social platform. Developers can publish posts, manage replies, moderate conversations, and retrieve account and media analytics. The API uses OAuth 2.0 with a 60-day token refresh cycle and has a container-based publishing model similar to Instagram.

New in 2026: GIF support (via GIPHY), Polls with vote tracking, Spoiler tags for text/images/video, cross-sharing to Instagram Stories, pending reply approval management, and a Tokenless oEmbed API for embedding public posts.

Rich Publishing
Publish text posts (500 chars max), images, videos, carousels (2–20 items), GIFs, Polls, and Spoiler-tagged content.
Reply Management
Retrieve, hide, respond to replies, and manage pending replies with an approval gate.
Insights
Access account-level and media-level metrics: views, likes, replies, reposts, quotes, and follower demographics.
Cross-Sharing
Cross-share Threads posts to linked Instagram Stories (requires threads_share_to_instagram permission).

API Features

FeatureDescriptionPermissionStatus
Text PostPublish plain text posts up to 500 charactersthreads_content_publishAvailable
Image PostPublish single image posts via public URLthreads_content_publishAvailable
Video PostPublish video posts via public URLthreads_content_publishAvailable
Carousel PostPublish carousels with 2–20 itemsthreads_content_publishAvailable
GIF PostsPublish animated GIFs via GIPHY integrationthreads_content_publishNew 2026
PollsCreate polls with vote tracking (total_votes)threads_content_publishNew 2026
Spoiler TagsAdd spoiler tags to text, image, and video poststhreads_content_publishNew 2026
Reply ModerationHide replies, manage pending reply approvalsthreads_manage_repliesAvailable
Account InsightsViews, followers, engagement metricsthreads_read_engagementAvailable
oEmbed (Tokenless)Embed public Threads posts without access tokenNone requiredNew 2026
Cross-Share to InstagramShare Threads posts to linked Instagram Storiesthreads_share_to_instagramNew 2026

Rate Limits

Limit TypeValueWindowNotes
Publishing Cap250 posts / 24 hoursRolling 24 hoursPer Threads profile. Carousels count as 1 post.
Reply Cap1,000 replies / 24 hoursRolling 24 hoursPer profile
Deletion Cap100 deletions / 24 hoursRolling 24 hoursPer profile
API Call Budget (BUC)4,800 × ImpressionsRolling 24 hoursMinimum impressions value: 10
Token RefreshEvery 60 days—Access tokens expire and must be refreshed

When rate limits are exceeded, the API returns HTTP 429. Use the Retry-After header value and implement exponential backoff with jitter in all retry logic.

Media Requirements

Container-Based Model: The Threads API does not support direct file uploads. All media URLs must be publicly accessible by Meta's servers. Create a media container first with the URL, then publish the container.

Media TypeDetails
Text PostsMaximum 500 characters per post. Unicode supported.
ImagesJPG, PNG — hosted at publicly accessible URL. Max 8 MB recommended.
VideosMP4 (H.264 + AAC) — hosted at publicly accessible URL. Up to 5 minutes.
Carousel2 to 20 items per carousel. Mix of images and videos supported.
GIFsVia GIPHY integration — use a GIPHY URL. Animated GIFs not directly uploaded.

Authentication & Access

RequirementDetails
Auth MethodOAuth 2.0 via Meta App
Token Expiry60-day cycle — access tokens must be refreshed every 60 days
Meta App ReviewRequired for production access to all publishing and management permissions
Developer AccountMeta Developer account at developers.facebook.com

Permission Scopes

threads_basic threads_content_publish threads_manage_replies threads_read_engagement threads_manage_insights threads_share_to_instagram

Quick Start Guide

1

Create a Threads Container

HTTP POST
POST https://graph.facebook.com/v26.0/{threads-user-id}/threads
  ?media_type=TEXT
  &text=Hello+from+the+Threads+API%21
  &access_token=YOUR_ACCESS_TOKEN

Returns a id (container ID).

2

Publish the Container

HTTP POST
POST https://graph.facebook.com/v26.0/{threads-user-id}/threads_publish
  ?creation_id=CONTAINER_ID
  &access_token=YOUR_ACCESS_TOKEN
3

Retrieve Media Insights

HTTP GET
GET https://graph.facebook.com/v26.0/{threads-media-id}/insights
  ?metric=views,likes,replies,reposts
  &access_token=YOUR_ACCESS_TOKEN

Common Errors & Solutions

ErrorMeaningSolution
HTTP 429Rate limit exceededCheck Retry-After header and implement exponential backoff with jitter
190Expired access tokenRefresh the access token — Threads tokens expire every 60 days
200 / 10Permission deniedRequest and be approved for the required permission scope via App Review
2207001Publishing limit reachedReduce posting frequency — 250 posts per 24-hour rolling window is the maximum
Media URL ErrorMedia URL not publicly accessibleEnsure media is hosted on a publicly reachable server without authentication barriers

Best Practices

Automate Token Refresh

Build a scheduled job that refreshes Threads access tokens before the 60-day expiry. A missed refresh will break all API operations.

Host Media on Public CDN

Always serve media from a publicly accessible CDN. Meta's servers fetch the URL — ensure no authentication is required to access it.

Respect Publishing Limits

Stay well within the 250 posts/day and 1,000 replies/day limits. Build a queue with a rate-aware scheduler for high-volume use cases.

Use oEmbed for Display

For embedding public Threads posts on websites, use the Tokenless oEmbed API — no access token required for read-only embeds.