# Rate Limits

To keep our service reliable and fair, the Publer API enforces rate limits on all requests. Limits are applied per user account (across all API keys) and use a fixed-window algorithm.

### Default Limits

<table><thead><tr><th width="189.25604248046875">Limit Window</th><th>Requests Allowed</th></tr></thead><tbody><tr><td>2-minute fixed</td><td>100 requests</td></tr></tbody></table>

> Note: If you need higher throughput for your integration, see [**Requesting Higher Limits**](#requesting-higher-limits) below.

### Tracking Your Usage

When you reach the rate limits, every API response includes these headers so you can monitor your rate limit status:

<table><thead><tr><th width="227.82421875">Header</th><th>Description</th></tr></thead><tbody><tr><td>X-RateLimit-Limit</td><td>Total requests allowed in the current window</td></tr><tr><td>X-RateLimit-Remaining</td><td>Requests remaining in the current time window</td></tr><tr><td>X-RateLimit-Reset</td><td>UNIX timestamp when your window resets (next available slot)</td></tr></tbody></table>

**Example Response Headers**

```bash
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1714558492
```

### When You Exceed the Limit

If you go over your quota, the API returns:

* HTTP Status: `429 Too Many Requests`
* Response Body:

  ```json
  {
    "error": "Rate limit exceeded. Retry later."
  }
  ```
* Headers will show `X-RateLimit-Remaining: 0` and a future `X-RateLimit-Reset`.

### Daily Post Limits

While most social networks don't explicitly limit daily posts, Publer implements posting limits to prevent spam, ensure compliance with platform guidelines, and allocate resources fairly. These limits are calculated on a rolling 24-hour basis in **UTC timezone**.

#### Post Limits by Plan

<table><thead><tr><th width="221.37188720703125">Platform</th><th width="151.285400390625">Free Plan</th><th>Professional Plan</th><th>Business Plan</th></tr></thead><tbody><tr><td><strong>Facebook Posts &#x26; Reels</strong></td><td>12 / day / profile</td><td>24 / day / profile</td><td>36 / day / profile</td></tr><tr><td><strong>Facebook Stories</strong></td><td>12</td><td>24</td><td>36</td></tr><tr><td><strong>Instagram Posts &#x26; Reels</strong></td><td>15</td><td>20</td><td>25</td></tr><tr><td><strong>Instagram Stories</strong></td><td>15</td><td>20</td><td>25</td></tr><tr><td><strong>Threads App Posts</strong></td><td>150</td><td>200</td><td>250</td></tr><tr><td><strong>TikTok Videos</strong></td><td>15</td><td>20</td><td>25</td></tr><tr><td><strong>Twitter / X Posts</strong></td><td>25</td><td>50</td><td>100</td></tr><tr><td><strong>Mastodon Posts</strong></td><td>25</td><td>50</td><td>100</td></tr><tr><td><strong>Bluesky Posts</strong></td><td>25</td><td>50</td><td>100</td></tr><tr><td><strong>LinkedIn Profile Posts</strong></td><td>10</td><td>12</td><td>14</td></tr><tr><td><strong>LinkedIn Page Posts</strong></td><td>12</td><td>18</td><td>24</td></tr><tr><td><strong>Pinterest Pins</strong></td><td>12</td><td>24</td><td>36</td></tr><tr><td><strong>Google Business Updates</strong></td><td>5</td><td>10</td><td>15</td></tr><tr><td><strong>YouTube Videos &#x26; Shorts</strong></td><td>5</td><td>10</td><td>15</td></tr><tr><td><strong>WordPress Articles</strong></td><td>12</td><td>18</td><td>24</td></tr><tr><td><strong>Telegram Messages</strong></td><td>5</td><td>10</td><td>15</td></tr></tbody></table>

#### Important Notes

* **Rolling 24-hour window:** Limits are calculated based on the previous 24 hours from the current time (UTC)
* **Per profile/account:** Facebook limits apply per connected profile or page
* **Anti-spam protection:** These limits help maintain a balance between automation and spam prevention
* **Platform compliance:** Limits align with each social network's community guidelines

### Best Practices to Avoid Throttling

* **Cache responses** for idempotent or infrequently changing endpoints.
* **Use bulk endpoints** (e.g., `POST /api/v1/posts/schedule` for multiple posts).
* **Stagger non-urgent requests** during off-peak hours.
* **Monitor headers** and throttle your client.
* **Implement exponential backoff** when you approach or hit the limit.

### Requesting Higher Limits

For integrations requiring a higher rate limit, please contact us with:

* Your expected request volume (per minute/hour/day)
* Use case description and critical endpoints
* Project or company name and contact info

Email: <support@publer.com>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://publer.com/docs/getting-started/rate-limits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
