Errors & blockers

Social media API limits: the four different things that word means

Character limits, media requirements, rate limits, and posting-frequency caps are four separate systems that all get called "limits." A short reference table for each, with links to the full breakdown.

Quick answer

Social media API limits are four unrelated things wearing one word: character limits on post text, media requirements (format, size, dimensions), rate limits on how fast you can send requests, and posting-frequency quotas capping how many posts an account can publish per day. Each fails for a different reason with a different fix — knowing which you hit is the first debugging step.

"What's the limit?" is really four unrelated questions wearing one word. A caption can be too long, an image can be too big, a request can arrive too fast, or an account can simply be posting too often for one day — and each of those fails for a completely different reason, with a completely different fix. This page is the map: what each category actually governs, one representative number for each, and a link to the full, sourced reference table where the detail lives.

PostGate handles OAuth, publishing and delivery evidence for every network through one API. Start free or read the docs.

01

What are the four categories?

Character limits cap the text of a single post — and the counting method (characters, UTF-8 bytes, or Unicode graphemes) matters as much as the number. Media requirements cap file size, format, and dimensions for images and video — these fail at upload, before the post is even attempted. Rate limits throttle how many API requests you can send in a window — a 429 that resolves itself once the window resets. Posting-frequency quotas are a different thing again: a daily ceiling on how many posts one account can publish, enforced independently of request-rate throttling and not fixed by waiting a few seconds.

02

Quick reference table

CategoryWhat it governsRepresentative exampleFull reference
Character limitsText length of a single post/caption, per platform.Instagram: 2,200 characters · Bluesky: 300 graphemesCharacter limits per social platform
Media requirementsAccepted image/video formats, file size, and dimensions.Instagram feed image: JPEG only, 8MB, 320–1440px wideSocial media API media requirements
Rate limits (429)How many API requests you can send in a rolling or fixed time window.X: 100 posts per 15 minutes per userSocial media API rate limits
Posting-frequency quotasA daily (or rolling 24-hour) ceiling on published posts per account, separate from request throttling.Threads: 250 posts per 24 hours per profileSocial media API rate limits (covers both request throttles and posting quotas)
03

Why does the distinction matter in practice?

A character-limit or media-requirement failure is a validation problem: fix the content and resend. A rate-limit failure is a timing problem: wait for the window named in the response headers, then retry the exact same request — see handling a 429 rate limit from a social API. A posting-frequency quota is neither: no amount of backoff raises a daily cap early, and treating it like a normal 429 just burns retries against a wall that won't move until the window rolls over. Knowing which of the four you actually hit is the first debugging step, before writing any retry logic at all.

04

How does PostGate handle this?

PostGate's platform capability matrix tracks character limits and media requirements per target and validates a post before it's sent, so those two categories surface as an immediate, structured error instead of a failed publish. Rate limits and posting quotas are different — they depend on live account state, not the request itself — so PostGate normalizes them into a retryable error.code on the affected target instead; see errors & retries.

Frequently asked questions

What is the difference between a rate limit and a posting quota?

A rate limit throttles how many API requests you can send in a rolling or fixed window — a 429 that resolves itself once the window resets, so you wait and retry the same request. A posting-frequency quota is a daily (or rolling 24-hour) ceiling on published posts per account, enforced independently of request throttling: no amount of backoff raises it early, and treating it like a normal 429 just burns retries.

Why does the counting method matter for character limits?

Because platforms count differently — characters, UTF-8 bytes, or Unicode graphemes — and the counting method matters as much as the number itself. Instagram caps captions at 2,200 characters while Bluesky counts 300 graphemes, so the same text can be valid on one platform and over the limit on another.

When do media-requirement failures actually happen?

At upload, before the post is even attempted — file size, format, and dimension checks fail earlier in the pipeline than publish-time errors. That makes them validation problems: fix the content and resend. This differs from rate limits (a timing problem — wait and retry the identical request) and posting quotas (wait for the window to roll over).

Does PostGate validate limits before sending a post?

For character limits and media requirements, yes — the platform capability matrix tracks them per target and validates a post before it is sent, so those surface as an immediate, structured error instead of a failed publish. Rate limits and posting quotas depend on live account state rather than the request itself, so PostGate normalizes those into a retryable error code on the affected target.

Build it with PostGate

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

Start building Read the docs