Arbitrage
Cross-platform arbitrage opportunities. Buying YES on one platform and NO on another guarantees a risk-free profit after fees. API response will include a 15-second signal delay.
Requires Dev or Pro tier. This endpoint is not available on the Free tier.Upgrade ↗
/v2/arbQuery Parameters
Minimum ROI percentage to include. Default: 0 (no minimum).
Filter to specific platform pair, e.g. polymarket,kalshi.
Default: 20, max: 100.
Response Schema
Server timestamp of the response (ISO 8601).
Signal delay in seconds applied to the response.
Number of opportunities returned.
Current arbitrage opportunities.
Match group ID.
Human-readable group title.
Event date.
Event category.
Return on investment percentage.
Total cost to execute (YES price + NO price).
When this opportunity was detected (ISO 8601).
The two legs of the arbitrage trade.
"yes" or "no".
Platform for this leg.
Market ID on the platform.
Direct link to the market.
Price for this leg.
Available liquidity in USD.
Error Responses
All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →
Always `false` on error responses.
Short, human-readable title (e.g. 'Invalid API Key.').
Human-readable explanation for the error. Safe to surface in UIs.
Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.
Link to this code's entry in the Error Reference.
Optional. Present only on validation failures with field-level detail.
Name of the offending parameter.
Field-level machine code.
Human-readable explanation.
Authentication
API Key
To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.
X-API-Key: pmx_test_5e8f...Rate Limits
API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.
Usage is returned on responses via headers such as:
X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.
Request
Live API Key
Filters
Response
—Click EXECUTE to send a request →