Threads

Threads API Rate Limit

How Meta’s Threads API rate limiting works for publishing integrations.

Quick answer

Meta caps each connected Threads profile at 250 published posts per rolling 24-hour window, plus a separate 1,000-replies quota — enforced per profile, not per app. It's a sliding window, not a midnight reset. When a profile hits the limit, PostGate marks the target retry_scheduled and retries automatically once the window has room again.

Threads' publishing limit is a quota, not a request-per-second throttle: Meta caps each connected profile at 250 published posts within a rolling 24-hour window, tracked separately from replies. It's enforced per Threads profile, not per app, so one busy tenant can't exhaust another tenant's headroom.

01

What are the actual numbers?

Meta's documented Threads publishing quotas: 250 posts per 24 hours per profile, and 1,000 replies per 24 hours per profile — tracked independently. A carousel published as a single post still counts as one against the 250, regardless of how many images or videos it contains.
02

When does the quota reset?

The quota doesn't reset at midnight — it's a sliding 24-hour count from each publish attempt. Meta exposes the current usage via a dedicated quota-check call on the Graph API; PostGate reads and caches that per profile so a burst of scheduled posts can be checked before they're attempted, not after they fail.
03

What happens when a profile hits the limit?

A publish attempt beyond quota comes back from Meta as a rate-limit error, not a generic failure. PostGate surfaces that on the post's target as retry_scheduled rather than failed, and retries automatically once the rolling window has room again — you don't need to re-send the request or manage backoff yourself.
04

How do you design around it?

250 posts per profile per day is generous for a single account posting on a normal cadence, but it adds up fast across many scheduled or automated posts on the same profile. Favor carousels over multiple single-item posts when you're publishing several images at once, and spread a recurring schedule across slots instead of firing everything at the same moment.
05

Why check profile health before spending a slot?

GET /api/profiles/{id}/health reports whether a Threads connection needs re-consent before you attempt a publish. A request that fails on reconnect_required doesn't consume a quota slot with Meta, but catching it up front avoids the round trip and the delay entirely.

Frequently asked questions

Does a Threads carousel count as one post or many against the quota?

One. A carousel published as a single post counts as exactly one against the 250-posts-per-24-hours limit, regardless of how many images or videos it contains — which makes carousels the quota-efficient way to publish several images at once.

When does the Threads posting quota reset?

It does not reset at midnight — it is a sliding 24-hour count from each publish attempt. Meta exposes current usage via a dedicated quota-check call on the Graph API; PostGate reads and caches that per profile so a burst of scheduled posts can be checked before it is attempted, not after it fails.

What happens if a Threads profile exceeds 250 posts in 24 hours?

A publish attempt beyond quota comes back from Meta as a rate-limit error, not a generic failure. PostGate surfaces that on the post's target as retry_scheduled rather than failed, and retries automatically once the rolling window has room again — you do not need to re-send the request or manage backoff yourself.

Is the Threads rate limit per app or per profile?

Per Threads profile. The 250-post quota and the separate 1,000-replies-per-24-hours quota are each enforced per connected profile, not per app, so one busy tenant cannot exhaust another tenant's headroom.

How can I avoid wasting quota with automated posting?

Favor carousels over multiple single-item posts when publishing several images at once, spread a recurring schedule across slots instead of firing everything at the same moment, and check GET /api/profiles/{id}/health before publishing — a reconnect_required failure does not consume a Meta quota slot, but catching it up front avoids the round trip and delay.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs