Threads

Overview

Updated: Dec 22, 2025
You may use the Threads API to enable people to create and publish content on a person’s behalf on Threads, and to display those posts within your app solely to the person who created it.
The Threads API can be accessed by either graph.threads.com or graph.threads.net.

Rate limiting

Calls to the Threads API are counted against the calling app’s call count. An app’s call count is unique for each app and app user pair and is the number of calls the app has made in a rolling 24-hour window. It is calculated as follows:
Calls within 24 hours = 4800 * Number of Impressions
The Number of Impressions is the number of times any content from the app user’s Threads account has entered a person’s screen within the last 24 hours.
Rate limiting may also be subject to total CPU time per day:
720000 * number_of_impressions for total_cputime
2880000 * Number of Impressions for total_time
Note: The minimum value for impressions is 10 (so if the impressions is less than 10 we default to 10).

Posts

Threads profiles are limited to 250 API-published posts within a 24-hour moving period. Carousels count as a single post. The POST /{threads-user-id}/threads_publish endpoint enforces this limit when attempting to publish a media container. Enforce the publishing rate limit in your app, especially if it allows app users to schedule posts for future publishing.
To check a profile’s current Threads API rate limit usage, query the GET /{threads-user-id}/threads_publishing_limit endpoint.
Note: This endpoint requires the threads_basic and threads_content_publish permissions.

Fields

Name Description
quota_usage
Threads publishing count over the last 24 hours.
config
Threads publishing rate limit config object, which contains the quota_total and quota_duration fields.

Example request

curl -s -X GET \
  "https://graph.threads.com/v1.0/<THREADS_USER_ID>/threads_publishing_limit?fields=quota_usage,config&access_token=<ACCESS_TOKEN>"

Example response

{
  "data": [
    {
      "quota_usage": 4,
      "config": {
        "quota_total": 250,
        "quota_duration": 86400
      }
    }
  ]
}

Replies

Threads profiles are limited to 1,000 replies within a 24-hour moving period.
To check a profile’s current Threads replies rate limit usage, query the GET /{threads-user-id}/threads_publishing_limit endpoint. See the Reply Management documentation for more information.
Note: This endpoint requires the threads_basic, threads_content_publish, and threads_manage_replies permissions.

Fields

Name Description
reply_quota_usage
Threads reply publishing count over the last 24 hours.
reply_config
Threads reply publishing rate limit config object, which contains the quota_total and quota_duration fields.

Example request

curl -s -X GET \
  "https://graph.threads.com/v1.0/<THREADS_USER_ID>/threads_publishing_limit?fields=reply_quota_usage,reply_config&access_token=<ACCESS_TOKEN>"

Example response

{
  "data": [
    {
      "reply_quota_usage": 1,
      "reply_config": {
        "quota_total": 1000,
        "quota_duration": 86400
      }
    }
  ]
}

Deletion

Threads profiles are limited to 100 deletions within a 24-hour moving period.
To check a profile’s current Threads deletion rate limit usage, query the GET /{threads-user-id}/threads_publishing_limit endpoint. See the Delete Posts documentation for more information.
Note: This endpoint requires the threads_basic and threads_delete permissions.

Fields

Name Description
delete_quota_usage
Threads deletion count over the last 24 hours.
delete_config
Threads deletion rate limit config object, which contains the quota_total and quota_duration fields.

Example request

curl -s -X GET \
  "https://graph.threads.com/v1.0/<THREADS_USER_ID>/threads_publishing_limit?fields=delete_quota_usage,delete_config&access_token=<ACCESS_TOKEN>"

Example response

{
  "data": [
    {
      "delete_quota_usage": 1,
      "delete_config": {
        "quota_total": 100,
        "quota_duration": 86400
      }
    }
  ]
}
Threads profiles are limited to 500 location searches within a 24-hour moving period.
To check a profile’s current Threads location search rate limit usage, query the GET /{threads-user-id}/threads_publishing_limit endpoint. See the Location Search documentation for more information.
Note: This endpoint requires the threads_basic and threads_location_tagging permissions.

Fields

Name Description
location_search_quota_usage
Threads location search count over the last 24 hours.
location_search_config
Threads location search rate limit config object, which contains the quota_total and quota_duration fields.

Example request

curl -s -X GET \
  "https://graph.threads.com/v1.0/<THREADS_USER_ID>/threads_publishing_limit?fields=location_search_quota_usage,location_search_config&access_token=<ACCESS_TOKEN>"

Example response

{
  "data": [
    {
      "location_search_quota_usage": 1,
      "location_search_config": {
        "quota_total": 500,
        "quota_duration": 86400
      }
    }
  ]
}

Limitations and Specifications

Image Specifications

  • Format: JPEG and PNG image types are the officially supported formats for image posts.
  • File Size: 8 MB maximum.
  • Aspect Ratio Limit: 10:1
  • Minimum Width: 320 (will be scaled up to the minimum if necessary)
  • Maximum Width: 1440 (will be scaled down to the maximum if necessary)
  • Height: Varies (depending on width and aspect ratio)
  • Color Space: sRGB. Images using other color spaces will have their color spaces converted to sRGB.

Video Specifications

  • Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file.
  • Audio Codec: AAC, 48khz sample rate maximum, 1 or 2 channels (mono or stereo).
  • Video Codec: HEVC or H264, progressive scan, closed GOP, 4:2:0 chroma subsampling.
  • Frame Rate: 23-60 FPS
  • Picture Size:
    • Maximum Columns (horizontal pixels): 1920
    • Required aspect ratio is between 0.01:1 and 10:1 but we recommend 9:16 to avoid cropping or blank space.
  • Video Bitrate: VBR, 100 Mbps maximum.
  • Audio Bitrate: 128 kbps.
  • Duration: 300 seconds (5 minutes) maximum, minimum longer than 0 seconds.
  • File Size: 1 GB maximum.

Other limitations

  • Text posts are limited to 500 characters.
  • Carousel posts must have a maximum of 20 children and a minimum of 2 children.
  • For additional limitations, refer to each endpoint’s reference.

Next steps