Predexon API
  • Documentation
  • API Reference
Getting Started
Guides
    Error HandlingRate LimitsChangelog
Resources
    Predexon WebsiteJoin Discord
powered by Zudoku
Guides

Rate Limits

The Predexon API uses rate limiting to ensure fair usage and maintain service quality for all users. Rate limits are applied per minute and vary by subscription tier.

Rate Limit Tiers

TierRequests/MinuteUse Case
Unauthenticated5Testing without an API key
Free60Personal projects, exploration
Pro500Production applications, trading bots

Need higher limits? Contact us at [email protected] for enterprise plans.

How Rate Limits Work

  • Rate limits are counted on a rolling 1-minute window
  • Authenticated requests are tracked by API key
  • Unauthenticated requests are tracked by IP address
  • The /health endpoint is not rate limited

Response Headers

Every API response includes rate limit headers:

HeaderDescription
RateLimit-LimitMaximum requests allowed per minute
RateLimit-RemainingRequests remaining in current window
RateLimit-ResetSeconds until the rate limit resets

Example Response Headers:

Code
RateLimit-Limit: 60 RateLimit-Remaining: 45 RateLimit-Reset: 32

Handling Rate Limits

When you exceed your rate limit, the API returns a 429 Too Many Requests response:

Code
{ "error": "Too Many Requests", "message": "Rate limit exceeded. Please wait before making more requests." }

Best Practices

Don't retry immediately on 429 - this will only extend your rate limit window.

1. Implement Exponential Backoff

Code
import time import random def make_request_with_retry(url, headers, max_retries=3): for attempt in range(max_retries): response = requests.get(url, headers=headers) if response.status_code == 429: # Exponential backoff with jitter wait_time = (2 ** attempt) + random.uniform(0, 1) print(f"Rate limited. Waiting {wait_time:.1f}s...") time.sleep(wait_time) continue return response raise Exception("Max retries exceeded")

2. Monitor Rate Limit Headers

Code
async function fetchWithRateLimit(url, options) { const response = await fetch(url, options); const remaining = response.headers.get("RateLimit-Remaining"); const reset = response.headers.get("RateLimit-Reset"); if (remaining && parseInt(remaining) < 5) { console.warn(`Low rate limit: ${remaining} requests remaining`); } if (response.status === 429) { const waitTime = reset ? parseInt(reset) : 60; await new Promise((r) => setTimeout(r, waitTime * 1000)); return fetchWithRateLimit(url, options); // Retry once } return response; }

3. Combine Multiple Markets in One Request

Use repeated query parameters to fetch multiple markets in a single request:

TerminalCode
# Instead of multiple individual requests: GET /v1/matching-markets?polymarket_market_slug=market-1 GET /v1/matching-markets?polymarket_market_slug=market-2 GET /v1/matching-markets?polymarket_market_slug=market-3 # Combine into a single request: GET /v1/matching-markets?polymarket_market_slug=market-1&polymarket_market_slug=market-2&polymarket_market_slug=market-3

4. Cache Responses

Many endpoints return data that doesn't change frequently:

  • Markets list: Cache for 1-5 minutes
  • Candlestick data: Cache historical data indefinitely
  • Matching markets: Cache for 1 hour

Rate Limit Examples by Tier

Free Tier (60/min)

Suitable for:

  • Checking market prices every few seconds
  • Building a personal dashboard
  • Testing integrations
Code
# Polling markets every 2 seconds = 30 requests/min import time while True: response = get_active_markets(limit=10) update_dashboard(response) time.sleep(2) # Stay well under 60/min

Pro Tier (500/min)

Suitable for:

  • Real-time trading applications
  • High-frequency price monitoring
  • Multi-market analysis
Code
# Polling 5 markets every second = 300 requests/min import asyncio async def monitor_markets(market_ids): while True: tasks = [get_market(id) for id in market_ids] results = await asyncio.gather(*tasks) process_results(results) await asyncio.sleep(1)

Upgrading Your Tier

To upgrade from Free to Pro:

  1. Visit predexon.com
  2. Sign in to your account
  3. Navigate to API Settings
  4. Select the Pro plan

Your rate limit increase takes effect immediately.

Need More?

For enterprise needs exceeding 500 requests/minute:

  • Custom rate limits tailored to your use case
  • Dedicated support with faster response times
  • SLA guarantees for mission-critical applications

Contact [email protected] to discuss enterprise options.

Last modified on January 8, 2026
Error HandlingChangelog
On this page
  • Rate Limit Tiers
  • How Rate Limits Work
  • Response Headers
  • Handling Rate Limits
    • Best Practices
  • Rate Limit Examples by Tier
    • Free Tier (60/min)
    • Pro Tier (500/min)
  • Upgrading Your Tier
  • Need More?
JSON
Javascript