{"protocolVersion":"0.3.0","name":"Plexa","description":"Economic-safety API for trading agents: executable (realizable) DEX swap quotes (POST /v1/quote, $0.02) and pre-trade token verdicts (POST /v1/pretrade/check, $0.05). Plain HTTP+JSON endpoints paid per-call via x402 v2 (USDC on Base mainnet/Polygon PoS/Arbitrum One/Solana mainnet, no API key) — not a full A2A task server; see https://api.getplexa.com/openapi.json for the exact contract and https://api.getplexa.com/llms.txt for how to pay. Contact the people running this API: support@getplexa.com (a human reads it), https://t.me/getplexa_bot (Telegram), https://github.com/plexa-xyz (source: reference agent, MCP package). No SLA and no support tier — this is a pay-per-call API, not a subscription. Machine-readable contact card: https://api.getplexa.com/contact.","url":"https://api.getplexa.com","preferredTransport":"HTTP+JSON","version":"1.0.0","provider":{"organization":"Plexa","url":"https://getplexa.com"},"documentationUrl":"https://api.getplexa.com/llms.txt","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"skills":[{"id":"quote","name":"Executable swap quote at size","description":"POST https://api.getplexa.com/v1/quote ($0.02 per call, x402): REALIZABLE fill price for the full requested size — price impact (bps), depth, per-leg route, worst-case slippage, confidence — from canonical on-chain quoters on Base/Polygon/Arbitrum. Not a mid/spot price feed.","tags":["defi","dex","quote","liquidity","x402","base","polygon","arbitrum"],"examples":["curl -X POST https://api.getplexa.com/v1/quote -H 'content-type: application/json' -d '{\"tokenIn\":\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\"tokenOut\":\"0x4200000000000000000000000000000000000006\",\"sizeUSD\":\"5000\",\"chain\":\"base\"}'"]},{"id":"pretrade-check","name":"Pre-trade economic-safety verdict","description":"POST https://api.getplexa.com/v1/pretrade/check ($0.05 per call, x402): verdict avoid|clear|unknown for an ERC-20 on base, polygon or arbitrum — \"avoid\" only when a listed trap (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED) is proven at that block; \"clear\" when none fired AND the liquidity sweep reached a conclusion, which means \"no provable trap detected\", not \"safe\"; \"unknown\" when the sweep did not reach one, so neither a trap nor its absence is established. Plus risk_profile: age, holder concentration (ANY token age: top-1/top-10 share computed by us from balances + on-chain totalSupply; data age in the response; vendor outage → \"unknown\" with a reason, never a clean default), liquidity structure incl. the counter-asset pot a sell is paid from, oracle availability, transfer restrictions — as data, not severities. Plus confidence and an executable quote sub-result. Alias paths for /v1/pretrade/check: /v1/token-safety, /v1/rug-check — the SAME endpoint (same engine, same price, same request and response, one shared free trial), not a different product. They exist because agent catalogs index by URL path.","tags":["defi","token-safety","honeypot","pretrade","x402","base","polygon","arbitrum"],"examples":["curl -X POST https://api.getplexa.com/v1/pretrade/check -H 'content-type: application/json' -d '{\"token\":\"0x4200000000000000000000000000000000000006\",\"sizeUSD\":\"1000\"}'","curl -X POST https://api.getplexa.com/v1/token-safety -H 'content-type: application/json' -d '{\"token\":\"0x4200000000000000000000000000000000000006\",\"sizeUSD\":\"1000\"}'","curl -X POST https://api.getplexa.com/v1/rug-check -H 'content-type: application/json' -d '{\"token\":\"0x4200000000000000000000000000000000000006\",\"sizeUSD\":\"1000\"}'"]}]}