Documentation v1 · UPDATED 21 AUG 2026
Get an API key

API conventions

Machine-readable specs: Buyer, Seller, and Market. The legacy /openapi.json and /api/openapi.yaml files remain aliases for the Buyer spec. Versioning and sunset: Versioning and deprecation.

Surfaces

Spot exposes three public APIs. Which one you use depends on what you are doing, not on who you are.

SurfaceBase URLAuthenticationPrices are quoted in
Buyer — inference and capacity ticketshttps://aispotmarket.com/buy/apiAuthorization: Bearer <buyer_key>decimal strings per 1,000 tokens
Seller — offers, trades, deliverieshttps://aispotmarket.com/sell/apiX-Seller-API-Key: <seller_key>, except POST /sell/api/v1/register, which is publicdecimal strings per 1,000,000 tokens
Market — market data and order bookhttps://aispotmarket.com/market/apipublic for market data; Authorization: Bearer <buyer_key> for contracts and ordersdecimal strings per 1,000 tokens

The Seller API is the one surface quoted per million tokens; it converts at its boundary, so you never do that arithmetic yourself.

Everywhere

Request and response bodiesJSON, with Content-Type: application/json
Error shape{ "code": "seller_unreachable", "error": "..." } — see Errors
Versioning/v1 in the path; see Versioning and deprecation
Internal amountsSettlement is recorded in scale-8 integers. API prices are always decimal strings.

Error codes

Abbreviated. The canonical table is Errors.

codeHTTPmeaning
no_fill_at_limit402nothing crossed at or under the ceiling
no_match404no seller matched the bid
rate_limited429per-key rate limit exceeded
insufficient_balance402account has insufficient pre-funded balance
seller_unreachable502winning seller could not be reached
contract_exhausted402ticket remaining is below the requested burn
seller_default409bound seller failed to deliver
contract_expired410ticket TTL or window has ended
not_found404resource does not exist

Endpoints

SurfaceMethodPathAuth
BuyerPOST/buy/api/v1/chat/completionsBuyer or ticket credential
BuyerPOST/buy/api/v1/ticketsBuyer
BuyerGET/buy/api/v1/tickets/{id}Buyer
SellerPOST/sell/api/v1/registerPublic
SellerGET/sell/api/v1/profileSeller
SellerGET, POST/sell/api/v1/offersSeller
SellerDELETE/sell/api/v1/offers/{id}Seller
SellerGET/sell/api/v1/tradesSeller
SellerGET/sell/api/v1/deliveriesSeller
SellerGET/sell/api/v1/reputationSeller
SellerPOST/sell/api/v1/decisionsSeller
MarketGET/market/api/v1/marketsPublic
MarketGET/market/api/v1/orderbookPublic/WebSocket
MarketPOST/market/api/v1/contractsBuyer

See Buyer account, Market data, Deliveries, Reputation, and Decisions for the detailed response contracts. Health, runtime configuration, administrative, and internal routes are excluded from the public OpenAPI documents.

Advanced Market operation paths

The /market/api façade forwards these versioned operation paths unchanged. They remain in the aggregate OpenAPI document for backward-compatible contract checking; callers prepend https://aispotmarket.com/market/api.

MethodOperation path
GET, POST/v1/contracts
GET/v1/contracts/{id}
GET/v1/orders
GET, DELETE/v1/orders/{id}
GET/v1/account
GET/v1/markets, /v1/markets/{model_id}/candles, /v1/markets/{model_id}/estimate
POST/v1/sellers/register
GET, POST/v1/sellers/{id}/asks
DELETE/v1/sellers/{id}/asks/{ask_id}
POST/v1/sellers/{id}/capacity, /v1/sellers/{id}/decisions
GET/v1/sellers/{id}/trades, /v1/sellers/{id}/deliveries, /v1/sellers/{id}/reputation
WebSocket/v1/orderbook