API key
Every request tohttps://api.pmxt.dev needs a Bearer token. Get one
from pmxt.dev/dashboard — it works
immediately.
X-Api-Key: pmxt_live_... also works as a fallback, but Bearer is
canonical and what every SDK sends.
SDK setup
SetPMXT_API_KEY and the SDK automatically routes to the hosted
endpoint. No code changes versus local development.
- Python
- TypeScript
Venue credentials
Hosted writes (recommended)
In hosted mode, trade writes use PMXT’s PreFundedEscrow custody plus a locally-signed EIP-712 payload. You pass yourpmxt_api_key, the wallet
address you trade from, and a private key used only for local signing —
the private key never leaves your machine, and PMXT custodies USDC in
the escrow contract on your behalf.
Self-hosted / direct venue credentials (advanced)
When you run pmxt-core locally, or when you need a venue that hosted writes don’t yet support, you pass venue-native credentials (Polymarket private key, Kalshi RSA, Smarkets session, etc.) directly:Some venues (Polymarket, Limitless, Probable, Opinion, Baozi) require
raw wallet private keys with full fund control. Use a dedicated
trading wallet and read Security & Credential Handling
before passing private keys to PMXT — hosted or self-hosted.
Rotating keys
- Create a new key from the dashboard.
- Deploy the new key to your application.
- Revoke the old key once traffic has drained.
Errors
| Status | Body | Meaning | SDK exception |
|---|---|---|---|
401 | {"error": "missing api key"} | No Authorization header on the request. | InvalidApiKey |
401 | {"error": "invalid api key"} | Key unknown, revoked, or expired. | InvalidApiKey |
429 | {"error": "rate_limit_exceeded", ... } | See Plans & Limits. | RateLimitExceeded |

