FAQ

Common questions from partners integrating PAX. If your question is not here, email Request access.

Access & onboarding

How do I get an API key?

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.

How much does the API cost?

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.

When can I use sandbox?

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.

Geographic restrictions?

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.

Authentication

Which auth scheme should I use?

Why does my key start with 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.

How do I rotate a leaked key?

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.

How much clock skew does HMAC tolerate?

±30 seconds from server time. Sync your machine's clock via NTP. Requests outside the window return 401 INVALID_SIGNATURE.

Trading

AMM or CLOB — which engine runs my order?

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.

How do I safely retry a failed order?

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.

Can I guess a market ID?

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.

What's the min/max bet?

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.

Rate limits & support

I hit 429 — what do I do?

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.

Why 503 READ_ONLY_MODE?

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.

Where do I check for incidents?

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.

Is there an SLA?

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.

Data & retention

How far back does trade / candle history go?

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.

Do you return my counterparty's email / wallet?

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.

SDKs & languages

When are Python / TypeScript SDKs coming?

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.

Can I reuse HMAC-based exchange API code?

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.

Contact

Partners team: Request access · Twitter: the Changelog