Common questions from partners integrating PAX. If your question is not here, email Request access.
For a sandbox key: hit POST /v1/sandbox-keys — anonymous self-serve, returns an sk_live_ bearer tagged tier=self_serve with $10 per-order + $100 daily caps. See the Sandbox page for the curl. For an org-tagged key with attribution wired in, submit an application via POST /v1/apply — 18 tracks (app / agent / data / distribution / market / liquidity / oracle / reviewer / operator / self_serve + 8× rfb-*) auto-provision a live sk_live_* in seconds. genesis (10× rate multiplier) and institutional (SLA) tracks route to human review for elevated capabilities. Higher tiers (trade_capped, trade_full) are reached via tier upgrade after integration.
Read endpoints (/v1/markets, /v1/portfolio, market data) are free at every tier. CLOB writes attract a 30 bps taker fee per fill (cut from 50 bps on 2026-09-06). Auto-tier split: acquisition_builder 6 bps / execution_builder 6 / operator 3 / market_creator 5 / lp 7 (+ 3 bps platform residual, which also absorbs any unfilled attribution role). Progressive tier bumps builder share at trade_full (14 bps combined, 47% of fee) and genesis/partner (16 bps combined, 53% of fee) — auto-graduated by 30d attributed volume for the first two tier steps. No monthly subscription. Attribution is written to financial_event on every fill (idempotent via unique key) — builders earn their share automatically on volume they route. AMM fast-round markets carry a house edge + spread (~5% effective round-trip) as market-making risk buffer. See Attribution & Fee Ledger for the full model.
Right now, no waiting. Sandbox is a per-key tier on the production API host. Mint a sandbox key at POST /v1/sandbox-keys — the response includes your key, tier caps, and expiry (30 days). Fills are simulated at mid-price so you never wait for order-book depth or oracle resolution. See Sandbox for the full flow.
PAX API is available worldwide except in jurisdictions where prediction markets are restricted by local law. Partners are responsible for validating their end-users' compliance with local rules.
X-Api-Key: sk_live_...) — simplest, use this for machine-to-machine / read-only aggregators / creator profiles.PAX-* headers) — use for high-frequency trading bots or when you want request signing per-call. signing pattern — code you have for their API works with ours.pax_ instead of sk_live_?pax_* is the original prefix (still valid — grandfathered forever). New keys use sk_live_*. Sandbox and production keys share the same prefix and host — capability is differentiated by the tier flag on the key (self_serve for sandbox with $10/$100 caps, read_live / trade_capped / trade_full / genesis / partner for production). This lets you promote a sandbox integration to production by upgrading the key's tier — no code changes, no host switch.
Mint a new key, deploy it to your infra, then DELETE /api/v1/keys/{key_id} the old one. Revocation propagates cluster-wide within 5 seconds. See Auth guide → Revoking.
±30 seconds from server time. Sync your machine's clock via NTP. Requests outside the window return 401 INVALID_SIGNATURE.
You don't need to know — response's top-level fields are engine-agnostic. If you're curious, check meta.fill_venue in the order response: amm, clob, or hybrid. Design principle: never leak venue in top-level.
Always send client_order_id (unique per intent, e.g., UUID). PAX guarantees idempotency for 24 hours — retrying with the same ID returns the original order rather than creating a duplicate.
No. IDs are m_<sha256[0:16]> where the sha256 input includes a server-side pepper. Even knowing (template, params, creator) you cannot pre-compute the ID. Use GET /v1/markets to enumerate.
Per template. Fetch GET /v1/markets/templates and check each template's min_bet / max_bet fields. Typical: 1 USDT min, 10,000 USDT max.
Respect the Retry-After response header (seconds until your quota resets). Standard exponential backoff otherwise. See Rate limits → Backoff code. If you need higher throughput, request a partner tier — see Rate limits → Upgrade.
Ops team has temporarily gated write endpoints for safety (e.g., during release / incident). Reads and WebSocket subscriptions remain available. If persistent (>30 minutes), email Request access.
Public status dashboard live at status.predictasiax.com (uptime, 24h fills, active builders, latest Merkle audit anchor, DB + Redis health). Backed by GET /v1/status — machine-readable form (returns 24h fills, active builders, latest Merkle batch, DB/worker health). For historical outages, follow the Changelog, or email Request access with your request_id from meta.
Best-effort during early access. Post-GA partners on a signed agreement get 99.9% monthly uptime SLA with credits. Not on GA yet — this doc will be updated when SLA terms are formalized.
Trade tape: 30 days rolling. Candles (1m/5m/15m/30m/1h/4h/1d): 90 days rolling. Fast-round history: 30 days on-line + long-term cold storage on request. Older data via CSV export upon request.
No. External-facing responses strip PII (email, phone, IP) by default. Self-view paths (/v1/account, /v1/account/*) return only YOUR PII. The X-PII-Redacted response header always tells you whether redaction was applied.
when v1.1 ships (coming). Meanwhile codegen from the OpenAPI spec — see Downloads. openapi-generator supports 50+ target languages with production-quality clients out of the box.
Partially. HMAC signing pattern is compatible (5 × PAX-* headers with the same message construction: timestamp + method + path + body). Endpoint paths and schemas differ — you'll need to remap URLs and field names, but the core request-signing code is drop-in.
Partners team: Request access · Twitter: the Changelog