published + rejected + failed) per connected X account per rolling 30 days. When the cap is hit, further POST /v1/posts calls for that account return rate_limited (HTTP 429) with a Retry-After header derived from the oldest billable post in the window.
How to fix
- Wait for the cap window to roll over. The
Retry-Afterheader tells you how many seconds until the oldest billable post falls out of the 30-day window. - Reduce volume if you’re hitting the cap by accident — every retry on a transient failure still counts as billable.
- Lift the cap. Self-host instances can bump
TWITTER_LAUNCH_CAP_PER_ACCOUNTvia env. Hosted users on the Business tier with sustained X volume should reach out; the cap is a launch backstop, not a permanent policy.

