Skip to content

API ReferencePaper Trading

Place a simulated order against a served catalog market.

POST
/v1/paper/orders
curl --request POST \
--url https://data.predictefy.com/v1/paper/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "venue": "kalshi", "marketId": "PRES-2028-DEM", "outcomeId": "kalshi:PRES-2028-DEM:yes", "side": "buy", "price": 0.62, "size": 100, "tif": "GTC" }'

An Idempotency-Key header is REQUIRED; without it the request is rejected with 400 IDEMPOTENCY_KEY_REQUIRED and nothing is stored. The key is never server-minted — a per-retry uuid would make retries non-idempotent. The literal strings undefined and null are rejected with 400 VALIDATION_ERROR, so a client that stringified a missing key can neither place an order nor replay one. A first-seen key returns 201 with the created order; a repeated key returns 200 with the STORED order and the header Idempotency-Replay: true, whatever body the retry carried. The market must be served, open, and unresolved, and must carry the requested outcome; price must sit on the market's tick grid (its metadata tickSize, else 0.01). price and size are judged exactly as submitted, by counting the decimal digits they were sent with — a price off the tick grid, out of (0, 1], or a size finer than the 0.000001 share grain is rejected with 400 VALIDATION_ERROR, never rounded onto the nearest step, at any magnitude. The Fill Model v1 fee is priced ONCE for the whole order, including the venue's published per-order minimum or flat charge where one exists, and recorded on it, so a buy's fills the paper engine writes can never charge more in total than intake held; a buy reserves price × size plus that fee and is refused when free cash cannot cover it. A sell may never exceed the held size minus what working sells already offer — there is no shorting in v1. Intake also counts the account's open plus partially_filled orders under the same account lock and refuses with 409 PAPER_WORKING_ORDER_CAP once the plan's allowance is full, so concurrent intake can never exceed the cap; cancel a working order or upgrade. An outcome whose captured order book is absent or stale is refused with 409 PAPER_NO_LIVE_BOOK rather than rested against a book nothing could fill it from — retry once that market's book is live, or choose a liquid one. Orders are accepted as open; the paper engine owns every later status transition.

Media typeapplication/json
object
clientOrderId
string
<= 256 characters
expiresAt

Must be in the future. Absent means the order never expires on time.

string format: date-time
marketId
required
string
<= 256 characters
outcomeId
required
string
<= 256 characters
price
required

Probability price on the market's tick grid (metadata tickSize, else 0.01).

number
> 0 <= 1
side
required
string
Allowed values: buy sell
size
required

Mirrors the fill model's modeling bound (MAX_MODEL_SHARES).

number
> 0 <= 999999999
tif
string
default: GTC
Allowed values: GTC IOC FOK
venue
required
string
Example
{
"venue": "kalshi",
"marketId": "PRES-2028-DEM",
"outcomeId": "kalshi:PRES-2028-DEM:yes",
"side": "buy",
"price": 0.62,
"size": 100,
"tif": "GTC"
}

A replayed Idempotency-Key returned the stored order unchanged.

Media typeapplication/json
object
success
required
boolean
data
required
object
avgFillPrice
required
number | null
clientOrderId
required
string | null
createdAt
required
string format: date-time
expiresAt
required
string | null format: date-time
feesPaid
required
number
filledSize
required
number
fills

Present only on the single-order read; omitted from list pages.

Array<object>
object
bookTs
required

The book snapshot this fill was matched against, when one is known.

string | null format: date-time
fee
required
number
feeModel
required

Which schedule priced the fill. unverified is a LABELLED zero fee.

string
Allowed values: verified per_market unverified
id
required
string format: uuid
liquidity
required
string
Allowed values: maker taker
orderId
required
string format: uuid
price
required
number
rule
required
string
Allowed values: marketable_walk resting_cross settlement
size
required
number
ts
required
string format: date-time
id
required
string format: uuid
marketId
required
string
outcomeId
required
string
price
required
number
reason
required

Why the engine (or a reset) moved the order to its current status.

string | null
side
required
string
Allowed values: buy sell
size
required
number
status
required
string
Allowed values: open partially_filled filled canceled expired rejected
tif
required
string
Allowed values: GTC IOC FOK
updatedAt
required
string format: date-time
venue
required
string
Example
{
"data": {
"fills": [
{
"feeModel": "verified",
"liquidity": "maker",
"rule": "marketable_walk"
}
],
"side": "buy",
"status": "open",
"tif": "GTC"
}
}
Idempotency-Replay
string
Allowed values: true

Present with value true when stored state satisfied an idempotent retry.

The order was accepted and is now working.

Media typeapplication/json
object
success
required
boolean
data
required
object
avgFillPrice
required
number | null
clientOrderId
required
string | null
createdAt
required
string format: date-time
expiresAt
required
string | null format: date-time
feesPaid
required
number
filledSize
required
number
fills

Present only on the single-order read; omitted from list pages.

Array<object>
object
bookTs
required

The book snapshot this fill was matched against, when one is known.

string | null format: date-time
fee
required
number
feeModel
required

Which schedule priced the fill. unverified is a LABELLED zero fee.

string
Allowed values: verified per_market unverified
id
required
string format: uuid
liquidity
required
string
Allowed values: maker taker
orderId
required
string format: uuid
price
required
number
rule
required
string
Allowed values: marketable_walk resting_cross settlement
size
required
number
ts
required
string format: date-time
id
required
string format: uuid
marketId
required
string
outcomeId
required
string
price
required
number
reason
required

Why the engine (or a reset) moved the order to its current status.

string | null
side
required
string
Allowed values: buy sell
size
required
number
status
required
string
Allowed values: open partially_filled filled canceled expired rejected
tif
required
string
Allowed values: GTC IOC FOK
updatedAt
required
string format: date-time
venue
required
string
Example
{
"data": {
"fills": [
{
"feeModel": "verified",
"liquidity": "maker",
"rule": "marketable_walk"
}
],
"side": "buy",
"status": "open",
"tif": "GTC"
}
}

IDEMPOTENCY_KEY_REQUIRED or VALIDATION_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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

UNAUTHORIZED

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

INSUFFICIENT_CREDITS — paper weight

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

SCOPE_MISSING — API key lacks the trade scope; PLAN_REQUIRED — the account's plan does not include paper trading

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

MARKET_NOT_FOUND for an unknown market or outcome; ROUTE_NOT_FOUND — only while READS_PAPER_ENABLE is off platform-wide (on since 2026-09-11)

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

PAPER_INSUFFICIENT_CASH, PAPER_POSITION_TOO_SMALL, PAPER_MARKET_CLOSED, PAPER_WORKING_ORDER_CAP (the plan's open-order allowance is full), or PAPER_NO_LIVE_BOOK (no live book is captured for the outcome)

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

RATE_LIMITED

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

Unexpected internal error. Retryable; error.requestId identifies the failure.

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}

PLATFORM_UNAVAILABLE

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 TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE 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 RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE 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 PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_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"
}
}