Works with all AI agents

Connect your AI agent

Choose your AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere Rate Limits Reference

PostEverywhere API rate limits, headers, and best practices for handling 429 responses.

The API enforces rate limits per minute and per hour to ensure fair usage.

Rate limits per API key: 60 a minute, 1,000 an hour

Window Limit
Per minute 60 requests
Per hour 1,000 requests

Limits are applied per API key.

Reading the rate limit headers

When you are rate-limited (429), the response carries these headers. Successful responses do not include them:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1711929600
Header Description
X-RateLimit-Limit Maximum requests allowed in the current window
X-RateLimit-Remaining Requests remaining in the current window
X-RateLimit-Reset Unix timestamp when the window resets

What to do when you receive a 429

When you exceed the limit, the API returns 429 Too Many Requests:

{
  "data": null,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "API rate limit exceeded (60 requests/min). Please slow down.",
    "retryable": true,
    "details": { "limit": 60, "remaining": 0, "reset_at": "2026-04-01T10:01:00.000Z" }
  },
  "meta": {
    "request_id": "a1b2c3d4",
    "timestamp": "2026-04-12T10:00:00Z"
  }
}

The Retry-After header tells you how long to wait (in seconds).

What bulk endpoints cost

POST /v1/posts/bulk (create up to 50 posts) is one request from your side but not one rate-limit hit: the bulk endpoint charges your key once, then creates each post through the single-post path, which charges again per post. A 50-post bulk therefore uses 51 of your 60-per-minute budget. It is still the recommended path for high-volume scheduling because it validates and reports every item individually:

# Instead of 50 separate POST /v1/posts calls (eats your per-minute budget):
curl -X POST https://app.posteverywhere.ai/api/v1/posts/bulk \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"posts": [ ... up to 50 ... ]}'

Per-post publishing-rate-limits (POSTS_PER_DAY etc.) also apply to each post individually. The same goes for the MCP bulk_create_posts tool: every post it creates counts. See Bulk Operations.

Rate limits on webhook delivery

Webhook deliveries from PostEverywhere to your URL are not subject to your API rate limit (we're talking to you, not the other way around). The retry schedule + 20-failure auto-disable is documented in the Webhooks guide.

Staying inside the limits at volume

  • Use bulk endpoints when N > 5: /v1/posts/bulk for create, /v1/posts/retry-failed for retries
  • Use webhooks instead of polling: saves you from burning the API budget on "is it done yet?" loops
  • Schedule in parallel: scheduled posts (with a future scheduled_for) bypass the per-minute posting limit
  • Cache account data: /accounts and /me rarely change, cache for 5-10 minutes
  • Implement exponential backoff: on 429 or 5xx responses
  • Monitor headers: check X-RateLimit-Remaining before making requests
// Example: exponential backoff
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const res = await fetch(url, options);
    if (res.status === 429) {
      const retryAfter = res.headers.get('Retry-After') || Math.pow(2, i);
      await new Promise(r => setTimeout(r, retryAfter * 1000));
      continue;
    }
    return res;
  }
  throw new Error('Max retries exceeded');
}

Platform limits that apply on top of ours

In addition to API rate limits, each plan caps how many social accounts you can connect and how many AI credits you can spend per month. Every plan starts with a 7-day trial (card required). Posting itself has separate publishing limits, described below.

Plan Social Accounts AI Credits / month Team seats
Lite 2 10 1
Starter 5 25 2
Growth 10 100 3
Scale 20 500 5

Current prices are on the pricing page. The API rate limit itself (60 requests per minute, 1,000 per hour, per key) is the same on every plan.

When a posting limit is exceeded, the API returns a 429 response with a specific error message:

{
  "data": null,
  "error": {
    "message": "You're posting too quickly (60 API calls/min). Please wait before trying again.",
    "code": "rate_limit_exceeded",
    "details": {
      "limit": 60,
      "remaining": 0,
      "reset_at": "2026-04-01T10:01:00.000Z",
      "publish_mode": "immediate"
    }
  }
}

X Articles have two further limits, both checked when the article publishes rather than when it is created: 2 published articles per X account in any rolling 24 hours (ours; only successful publishes count), and 10 article actions per X account per 24 hours (X's own). There is no header or remaining-count field for either. A post that hits ours fails with X_ARTICLE_DAILY_LIMIT; a post that hits X's is held and publishes automatically 5 minutes after X's reset. See Publishing an X Article.

Bulk uploads are not pre-validated against plan limits: each post in the batch is created in turn and succeeds or fails on its own, and the bulk response reports the per-item result (see Bulk operations).

Related: the 429 error shape · keeping test loops under the limit · rate-limit changes · how every social media API rate-limits you