pub struct RateLimiter { /* private fields */ }Expand description
Holds all rate limiters for one API surface.
Created via factory methods like RateLimiter::clob_default() which
configure hardcoded limits matching Polymarket’s documented rate limits.
Implementations§
Source§impl RateLimiter
impl RateLimiter
Sourcepub async fn acquire(&self, path: &str, method: Option<&Method>)
pub async fn acquire(&self, path: &str, method: Option<&Method>)
Await the appropriate limiter(s) for this endpoint.
Always awaits the default (general) limiter, then additionally awaits the first matching endpoint-specific limiter (burst + sustained).
Sourcepub fn clob_default() -> Self
pub fn clob_default() -> Self
CLOB API rate limits.
Transcribed from https://docs.polymarket.com/api-reference/rate-limits
as fetched on 2026-07-25, and pinned by the documented_limits tests.
Two things about the published tables need interpreting:
- The ledger group cap (900/10s across
/trades,/orders,/notificationsand/order) is genuinely shared, so those entries hold clones of one shared bucket rather than four of their own. - That group names
/orderand/orders, which also appear in the trading table at 5,000 and 2,000 per 10s. Both tables can only hold simultaneously if the group cap governs the ledger reads; a 900/10s cap on all methods would make the published trading burst unreachable. The group is therefore scoped toGET.
Ordering matters wherever one pattern is a path-segment prefix of
another: /balance-allowance/update must precede /balance-allowance,
and the specific /data/* routes must precede the /data catch-all.
Sourcepub fn gamma_default() -> Self
pub fn gamma_default() -> Self
Gamma API rate limits.
- General: 4,000/10s
- /events: 500/10s
- /markets: 300/10s
- /public-search: 350/10s
- /comments: 200/10s
- /tags: 200/10s
/ok: 100/10s
Upstream also lists a 900/10s cap shared by /markets + /events.
It is not modelled because it can never bind: the per-endpoint caps of
300 and 500 sum to 800, which is already below it.
Sourcepub fn data_default() -> Self
pub fn data_default() -> Self
Data API rate limits.
- General: 1,000/10s
- /trades: 200/10s
- /positions and /closed-positions: 150/10s
/ok: 100/10s
Sourcepub fn relay_default() -> Self
pub fn relay_default() -> Self
Relay API rate limits.
- 25 requests per 1 minute (single limiter, no endpoint-specific limits)
Trait Implementations§
Source§impl Clone for RateLimiter
impl Clone for RateLimiter
Source§fn clone(&self) -> RateLimiter
fn clone(&self) -> RateLimiter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more