Skip to main content
The external arbitrage endpoint delivers the same scored opportunity data as the session-auth endpoint, but it authenticates with an API key instead of a JWT. This design allows trading bots, automated pipelines, and server-side integrations to fetch opportunities without maintaining a browser session. Every request is logged for usage tracking, and consumption is visible in your Developer Console.

Endpoint

Authentication

Pass your API key in the X-API-Key header. Keys are prefixed with pdx_ and can be created in the Developer Console.
Your API key is shown only once at creation. Store it in a secrets manager or environment variable — it cannot be retrieved again through the API.

Rate limits

API key requests are subject to the paid-tier rate limit: If you exceed this limit, the API returns 429 RATE_LIMITED with X-RateLimit-Reset indicating when the window resets.

Query parameters

min_score
number
default:"40"
Minimum arbitrage score to include. Range 0–100.
classification
string
Filter by tier: actionable, informational, or noise.
category
string
Filter by market category, e.g. crypto, politics.
status
string
Filter by lifecycle status: active, stale, or resolved.
guarantee
string
Filter by policy guarantee class: STRICT or QUASI.
risk_gate
string
Filter by runtime risk gate: allowed, degraded, or blocked.
limit
number
default:"50"
Maximum items to return (1–200).

Example request

cURL

Response

The response shape is identical to the session-auth endpoint. data.opportunities is an array of ArbitrageOpportunity objects, and data.stats provides aggregate scan statistics. See ArbitrageOpportunity schema for the full field reference.

Usage tracking

Every request to this endpoint is logged to your account’s usage record. You can inspect call counts, latency, and per-endpoint breakdowns in the Developer Console using the usage stats endpoints.
For high-frequency trading bots, filter aggressively at the query parameter level rather than in your application code. Requesting only classification=actionable&risk_gate=allowed&status=active dramatically reduces response size and parse time, and keeps you within rate limits for more polling cycles per minute.