docs: sync Polymarket docs updates 2026-07-13 - add 90 new pages incl. Perps section
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
> ## Documentation Index
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Rate Limits
|
||||
|
||||
> IP rate limits, action rate limits, and WebSocket limits for Perps integrations
|
||||
|
||||
Perps uses separate rate-limit buckets for different traffic types. Hitting one
|
||||
bucket does not consume another bucket, so request volume, account trading
|
||||
actions, and WebSocket traffic should be monitored separately.
|
||||
|
||||
## How Limits Work
|
||||
|
||||
Use the error type to identify which bucket rejected the request or message.
|
||||
|
||||
| Bucket | Scope | Applies To | Error |
|
||||
| ---------------------- | -------------- | ---------------------------------- | --------------------------------------------------------------------- |
|
||||
| IP | IP address | HTTP request volume | HTTP `429` or `ip_rate_limited` |
|
||||
| Action | Perps account | Order placement and trade actions | `action_rate_limited` |
|
||||
| WebSocket message | IP address | Inbound WebSocket messages | `message_rate_limited` |
|
||||
| WebSocket subscription | WebSocket link | Active subscriptions on one socket | Per-channel subscription error when the subscription cap is exhausted |
|
||||
|
||||
## IP Rate Limits
|
||||
|
||||
Every IP address gets **1,000 weighted tokens per minute**. Each HTTP request
|
||||
consumes tokens equal to its request weight.
|
||||
|
||||
Use scoped requests when possible. Broad, unfiltered reads consume more of the IP
|
||||
budget than narrow reads.
|
||||
|
||||
| Request Pattern | Weight |
|
||||
| ------------------------------ | --------------------------------------------- |
|
||||
| Lightweight reads | 1 |
|
||||
| Broad unfiltered reads | Up to 20 |
|
||||
| Order book depth 10 | 2 |
|
||||
| Order book depth 100 | 5 |
|
||||
| Order book depth 500 | 10 |
|
||||
| Order book depth 1000 | 20 |
|
||||
| Batch order actions | `1 + floor(n / 20)`, where `n` is order count |
|
||||
| Account orders by ID | 1 |
|
||||
| Account orders without ID | 10 |
|
||||
| Open orders by instrument | 1 |
|
||||
| Open orders without instrument | 20 |
|
||||
|
||||
## Action Rate Limits
|
||||
|
||||
Every account has an action budget from its current limit tier. The default tier
|
||||
is **5,000 action tokens per minute** with an open-order cap of **1,000**.
|
||||
|
||||
Action limits are account-scoped, not IP-scoped. Batching can reduce IP weight,
|
||||
but it does not reduce the number of order actions consumed.
|
||||
|
||||
| Action | Action Cost |
|
||||
| ------------------- | --------------------------- |
|
||||
| Place one order | 1 token |
|
||||
| Place 10 orders | 10 tokens |
|
||||
| Auto-cancel request | 10 tokens |
|
||||
| Open-order count | Limited by account tier cap |
|
||||
|
||||
Legacy request-rate fields on limit-tier responses are not used for request-rate
|
||||
enforcement. Use the IP bucket for request volume and the action bucket for
|
||||
account trading activity.
|
||||
|
||||
## WebSocket Limits
|
||||
|
||||
WebSocket connections have separate limits for connection count, active
|
||||
subscriptions, and inbound messages.
|
||||
|
||||
| Limit | Scope | Value |
|
||||
| ---------------------- | ---------- | ---------------------------------- |
|
||||
| Concurrent connections | IP address | 50 WebSocket connections |
|
||||
| Active subscriptions | Connection | 100 active subscriptions |
|
||||
| Inbound messages | IP address | 1,000 messages per minute |
|
||||
| Subscribe message | Message | 1 message token |
|
||||
| Unsubscribe message | Message | 1 message token |
|
||||
| Trade post message | Message | Same batch-size weighting as trade |
|
||||
| Other post messages | Message | 1 message token |
|
||||
|
||||
## Integration Guidance
|
||||
|
||||
* Scope reads whenever possible. For example, request one instrument's open orders instead of all open orders.
|
||||
* Batch order placement when it reduces request volume, but do not expect batching to reduce action-token usage.
|
||||
* Treat `429`, `ip_rate_limited`, `action_rate_limited`, and `message_rate_limited` as retryable after backoff.
|
||||
* Track active WebSocket subscriptions per connection so reconnects do not accidentally exceed the subscription cap.
|
||||
* If you operate many users behind shared infrastructure, monitor IP usage separately from account action usage.
|
||||
Reference in New Issue
Block a user