Skip to main content
The API rate-limits per token to keep things responsive for all customers. There are two tiers, applied to different endpoint groups: The high-volume tier covers the endpoints you’re most likely to hammer during bulk imports.

Headers

Every response includes the current rate-limit state:

When you hit the limit

The API returns 429 Too Many Requests:
With:
Wait the suggested number of seconds and retry. Don’t keep hammering — repeated 429s during a single window can extend the cool-off.

Patterns for staying inside the limit

For bulk operations, cap concurrent in-flight requests instead of firing everything at once. A p-limit(20) in Node, or ThreadPoolExecutor(max_workers=20) in Python, keeps you well inside the 1,000/min tier without coordination overhead.
On 429, wait Retry-After. On 5xx, retry with exponential backoff (e.g. 1s → 2s → 4s) plus 10–20% jitter to avoid thundering-herd retries from multiple workers.
The media upload endpoints accept up to 10 files per request — one presign call plus one confirm call covers a batch of 10 and counts as just 2 requests against the rate limit. The PUT uploads themselves go directly to storage and don’t count against the API rate limit at all.
If your code repeatedly fetches the same workspace’s profile list (e.g. in a polling loop), cache it for a few minutes instead of refetching every cycle. Profile membership rarely changes.

Reference retry helper

Asking for more

If your production workload genuinely needs higher limits (e.g. you’re a large agency syncing thousands of profiles), email support@publishbuddy.com with your use case and average request profile. We can raise limits on a per-account basis.