Rate limits and plan limits
How fast you can call the API, and how much your plan allows.
There are two kinds of limits. They look alike, but you must handle them differently.
| Rate limit | Plan limit | |
|---|---|---|
| Error | 429 rate_limited | 402 quota_exceeded |
| Means | You are sending requests too fast. | You used everything your plan allows this month. |
| Retry? | Yes, after Retry-After seconds. | No. It will keep failing until the period resets. |
Rate limits
The limit is per API key, for the whole API together. Every response has these headers:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests allowed per minute. |
X-RateLimit-Remaining | Requests left this minute. |
X-RateLimit-Reset | Seconds until the limit resets. |
Retry-After | (only on 429) Seconds to wait before retrying. |
async function bulkit(url, options, tries = 3) {
const res = await fetch(url, options);
if (res.status === 429 && tries > 0) {
const wait = Number(res.headers.get("Retry-After") ?? 1);
await new Promise((r) => setTimeout(r, wait * 1000));
return bulkit(url, options, tries - 1);
}
return res;
}Plan limits
Check what you have used with GET /usage:
curl "$BULKIT_URL/usage" -H "x-api-key: $BULKIT_API_KEY"{
"plan": "pro",
"periodStart": "2026-09-01T00:00:00.000Z",
"periodEnd": "2026-10-01T00:00:00.000Z",
"posts": {
"created": { "used": 412, "limit": 1000 },
"published": 398
},
"channels": { "used": 6, "limit": 10 },
"storage": { "bytesUsed": 52428800, "bytesLimit": 5368709120 }
}posts.createdis the number that decides if your next post is refused.posts.publishedis how many posts really reached a platform. This is what you are billed for.periodEndis when the monthly numbers reset.limit: nullmeans unlimited.channelsandstoragedo not reset. They go down when you disconnect an account or delete a file.- Usage counts the whole account, across all its workspaces.
GET /usageneeds a key with read permission.
Use GET /usage, not GET /stats, to check limits. Stats change when you
delete posts; usage is what your bill is based on.
Platform limits
Each social network has its own rules: characters, number of images, video
length, threads. Get them from GET /platforms and don't write them in your
code — they change. See also the Platforms pages.