Skip to content
Get an API key

Live executable-arbitrage assessment of discrepancy clusters. Router only.

GET
/api/{exchange}/fetchArbitrage
curl --request GET \
--url 'https://data.predictefy.com/api/polymarket/fetchArbitrage?contracts=100&executableOnly=false&limit=5' \
--header 'Authorization: Bearer <token>'

Prices a page of discrepancy clusters against LIVE order books at the requested contracts size: buy YES on the cheap venue’s real asks + buy NO on the dear venue’s real asks (a locked $1/contract payout at resolution). A row is labeled "arbitrage" ONLY when EVERY gate passes — live non-synthetic asks on both legs, open market status, full depth at the requested size, a VERIFIED per-venue fee model (fees are per-level walked; settlement commissions charged at the worst-case winning leg), the resolution-equivalence gate (an affirmative persisted verdict for the current rule-content hashes plus threshold/stage/settlement-source vetoes), and a positive net edge after all costs. Every other row is served as "indicative price discrepancy" with per-leg machine-readable reasons (unverified_fees, market_not_open — covering stale status, inactive flag, and passed close time —, synthetic_book, book_unavailable, no_asks, insufficient_depth) and pair-level reasons (threshold/stage/source conflicts, close_time_mismatch, resolution_equivalence_unverified, same_venue, *_leg_not_executable, no_positive_edge) — the WHY is always on the record. The fingerprint conflict vetoes AND the close-time bar are re-applied live at claim time. Venues without a published fee schedule carry a note explaining the research state. page is CLUSTER-grain and hard-capped small (each cluster costs at most two live venue book reads); clusters with no served cross-venue pair are omitted from data — the same cluster-grain caveat as the match verbs.

exchange
required
string
Allowed values: polymarket kalshi smarkets opinion myriad gemini hyperliquid limitless polymarket_us rain predictfun sxbet pascal xo pred predictstreet novig router

One of the 17 product venues, or router for the all-venues union. SX Bet serves catalog reads, real CLOB order books, the public trades tape, tape-derived candles, Trader Intelligence, and public account resources. It has no server execution lane. Its separate client-side SDK trading lane is live as of 2026-07-27. The SX Bet trading wallet must have a registered sx.bet account and betting enabled once per token per network. There is no venue-official history claim. pascal, xo and pred all serve catalog reads and real CLOB order books, plus a public trades tape on pascal only — xo and pred answer 501 NOT_SUPPORTED for fetchTrades. XO’s is a venue property rather than a gap: its trade endpoints are caller-scoped, so no public XO tape exists to serve. Their execution state differs per venue and is no longer uniform. Pascal is ARMED in production for build, submit, and signed cancel permits (armed 2026-08-12; fleet-verified 2026-08-15). XO advertises exactly its registry row — cancel plus the client-credentialed status refresh, with hosted build and submit disarmed. PRED is production-DARKED (2026-08-13) pending the venue’s key model: PRED_EXCHANGE_ADDRESSES is empty, which unregisters the entire lane, so every PRED execution route including build answers 404 VENUE_NOT_SUPPORTED. None of the three has an account or venue-official history lane. GET /v1/exec/venues remains the authoritative live list; this description is not a claim about one deployment’s runtime gates. PredictStreet serves keyless catalog/detail reads and real two-sided CLOB books. Its ADI Chain execution lane is armed for build and submit; it has no server cancel or hosted settlement lane. Predict Street Limited states it operates under Gibraltar licence 167, and FIFA names it the official prediction-market partner of the FIFA World Cup 2026. Venue eligibility and jurisdiction restrictions remain an operator/compliance responsibility. Pascal’s restricted-jurisdiction and API/data clauses are under owner review. PRED restricts the US, UK, France, Ontario, Singapore, Poland, Thailand, and Taiwan and prohibits location masking; pascal is US-restricted at the venue, and XO read access is partner-provided.

contracts
integer
default: 100 >= 1 <= 10000

Position size to assess; depth and fees are judged AT this size.

category
string
executableOnly
boolean

True = serve ONLY rows that earned the “arbitrage” label.

limit
integer
default: 5 >= 1 <= 10

Clusters assessed per page (fan-out bound: ≤ 2 live book reads each).

offset
integer
page
integer
>= 1

Live executable-arbitrage assessments (honestly labeled per row).

Media typeapplication/json
object
success
required
boolean
data
required
Array<object>

A discrepancy cluster’s best cross-venue pair priced against LIVE books. label is “arbitrage” IFF executable — every gate passed at the requested size; otherwise “indicative price discrepancy” with the failing gates in reasons (hard rule 2: the claim is earned, never assumed).

object
clusterId
required
string
question
required
string
similarity
required

Match score — similarity, never “confidence”.

number
<= 1
contracts
required

The assessed size; depth/fees judged AT this size.

number
legs
required
object
buyYes
required

One taker-BUY leg of the assessed pair. Pricing fields are null whenever the leg cannot honestly be priced AS THE CLAIMED TRADE (missing/synthetic/thin book, or no verified fee model) — reasons carries the machine-readable WHY.

object
venue
required
string
canonicalMarketId
required

Composite “{venue}:{marketId}”.

string
side
required
string
Allowed values: yes no
executable
required
boolean
reasons
required
Array<string>
Allowed values: unverified_fees market_not_open synthetic_book book_unavailable no_asks insufficient_depth
note

Research note for unverified-fee venues (why no model exists).

string
vwap
required

VWAP of the full requested fill, $/contract.

number | null
cost
required

Walked cost of the full requested fill, $.

number | null
fee
required

VERIFIED taker fee for the fill, $ (0 for settlement-commission venues).

number | null
feeBasis

Which fee rate applied (general, sports, conservative-max, …).

string
filled
required

Contracts available on the walked asks (≤ requested).

number
fullyFilled
required
boolean
buyNo
required

One taker-BUY leg of the assessed pair. Pricing fields are null whenever the leg cannot honestly be priced AS THE CLAIMED TRADE (missing/synthetic/thin book, or no verified fee model) — reasons carries the machine-readable WHY.

object
venue
required
string
canonicalMarketId
required

Composite “{venue}:{marketId}”.

string
side
required
string
Allowed values: yes no
executable
required
boolean
reasons
required
Array<string>
Allowed values: unverified_fees market_not_open synthetic_book book_unavailable no_asks insufficient_depth
note

Research note for unverified-fee venues (why no model exists).

string
vwap
required

VWAP of the full requested fill, $/contract.

number | null
cost
required

Walked cost of the full requested fill, $.

number | null
fee
required

VERIFIED taker fee for the fill, $ (0 for settlement-commission venues).

number | null
feeBasis

Which fee rate applied (general, sports, conservative-max, …).

string
filled
required

Contracts available on the walked asks (≤ requested).

number
fullyFilled
required
boolean
resolutionEquivalence
required

Whether a high-confidence affirmative persisted verdict matches both legs’ current resolution-rule content hashes.

string
Allowed values: verified unverified
resolution
required

Cheap fingerprint conflict veto (compatible ≠ verified equivalent).

object
compatible
required
boolean
reason
required
string
Allowed values: "" threshold_conflict stage_conflict source_conflict
auditReasons
required
Array<string>
settlementFee
required

Worst-case settlement commission across legs (only one leg wins), $.

number | null
totalCost
required

Legs + fees + settlement worst case, $; null when unknowable.

number | null
payout
required

The locked payout: contracts × $1.

number
netEdge
required

Payout − totalCost, $; null when unknowable.

number | null
roi
required
number | null
executable
required
boolean
reasons
required

Pair-level failing gates (empty when executable).

Array<string>
label
required
string
Allowed values: arbitrage indicative price discrepancy
asOf
required

EARLIEST leg-book freshness; null when either live book is missing.

string | null format: date-time
meta
required

Live: true + the assessed contracts size; totalUnavailable explains a null page.total.

object
page
required
object
limit
required
integer
offset
required
integer
total
required

Total matching rows, or null when the total was NOT computed — never a fabricated 0. The data page is the product and the count is metadata, so routes may warm an exact total off-request or abandon a count that exceeds its short budget while the page is still served. null is always accompanied by meta.totalUnavailable, which says why; use hasMore / nextCursor to walk the result set.

integer | null
hasMore
required

Whether another page exists. Determined by fetching one row beyond the requested limit, so it stays correct even when total is null.

boolean
nextCursor

Opaque cursor for the next page. Omitted on the final page.

string
Example
{
"data": [
{
"legs": {
"buyYes": {
"side": "yes",
"reasons": [
"unverified_fees"
]
},
"buyNo": {
"side": "yes",
"reasons": [
"unverified_fees"
]
}
},
"resolutionEquivalence": "verified",
"resolution": {
"reason": ""
},
"label": "arbitrage"
}
]
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Enveloped error.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED INVALID_SIGNATURE FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}