Three developer surfaces, one base URL (https://trade.mutex.exchange) and one auth scheme. Every endpoint shape is generated from the live OpenAPI spec - the pages below are the narrative, the reference is the truth.
Every authed route takes Authorization: Bearer <key>. There are two kinds, both issued display-once in the web app:
Using one where the other belongs is 403 wrong_key_kind. Public market data (/v1/markets, /v1/candles) needs no key at all:
curl https://trade.mutex.exchange/v1/markets
Neither key can deposit, withdraw, swap or transfer, and neither can touch your main perp account. Funding, payouts and settings stay in the web app on purpose - the blast radius of a leaked key is one bot's balance, or read-only referral stats.