Saltar al contenido principal

Markets

GET /v2/markets

List supported markets

Parámetros

ParámetroEnTipoRequeridoDescripción
pagequeryintegernoDefault: 1.
limitqueryintegernoDefault: 25.

Respuestas

CódigoDescripciónCuerpo
200Éxito.data: MarketResource[] · pagination: PaginationMeta
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

GET /v2/markets/{market}

Get a supported market by id

The id is the market code returned by GET /v2/markets (e.g. BTC-CLP). Reference data is identical for every key, so this response does not depend on who asks.

Parámetros

ParámetroEnTipoRequeridoDescripción
marketpathstring

Respuestas

CódigoDescripciónCuerpo
200Éxito.MarketResource
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable).
404application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

GET /v2/markets/{market}/price

Get an indicative price for a market

A NON-BINDING price. Nothing is reserved and there is no expiry — the response carries no order id, so it cannot be executed. To obtain a confirmable quote use POST /v2/quotes (scope trading:write), then execute it with a signed POST /v2/orders.

Skipo prices a dealer spread, so the rate depends on size: pass amount + amountAsset to price a specific ticket, or omit both to price at the market minimum. amount is capped by that asset’s maxIndicativeQuoteAmount (see GET /v2/assets); above the cap the request is rejected rather than silently repriced at a smaller size.

Parámetros

ParámetroEnTipoRequeridoDescripción
marketpathstring
sidequeryBUY | SELLWhich direction to price. Required — buying and selling the same market are different prices, so there is no sensible default.
amountquerystringnoAmount to price, denominated in amountAsset. A decimal string. Requires amountAsset. Omit both to price at the market minimum. Capped by the maxIndicativeQuoteAmount of amountAsset from GET /v2/assets — an amount above the cap is rejected rather than silently reduced, because a price for an amount you did not ask for is worse than an error.
amountAssetquerystringnoWhich leg amount is denominated in — must be one of the market's two assets. Requires amount.

Respuestas

CódigoDescripciónCuerpo
200Éxito.PriceResource
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable).
404application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

Esquemas

MarketResource

CampoTipoDescripción
idstringEj.: BTC-CLP.
baseAssetstringBase asset code. Matches a GET /v2/assets assetSymbol. Ej.: BTC.
quoteAssetstringQuote asset code. Matches a GET /v2/assets assetSymbol. Ej.: CLP.
typeCRYPTO-CRYPTO | CRYPTO-FIAT | FIAT-FIATThe asset classes this market pairs. It does NOT identify a tokenised-equity market — those are typed CRYPTO-FIAT too. Read assetClass on the asset for that. Ej.: CRYPTO-FIAT.
minBaseAmountstringSmallest amount you may request when you denominate the trade in the BASE asset. Identical for BUY and SELL. Ej.: 0.0001.
minQuoteAmountstringSmallest amount you may request when you denominate the trade in the QUOTE asset. Identical for BUY and SELL. Ej.: 1000.
baseIncrementstringAmount step on the BASE leg. A finer amount is truncated, not rejected. Equivalent to Coinbase's base_increment and Binance's stepSize. Ej.: 0.00000001.
quoteIncrementstringAmount step on the QUOTE leg — e.g. "1" on a CLP market, which settles in whole pesos. Equivalent to Coinbase's quote_increment. Ej.: 1.
tradingDaysnumber[] | nullDays of the week this market trades, as ISO weekday numbers (1 = Monday … 7 = Sunday), evaluated in UTC. null means it trades every day — which is the case for every crypto-only market. Tokenised-equity markets trade Monday to Friday. Ej.: 1,2,3,4,5.

PaginationMeta

CampoTipoDescripción
pagenumberEj.: 1.
limitnumberEj.: 25.
totalItemsnumberEj.: 100.
totalPagesnumberEj.: 4.

PriceResource

CampoTipoDescripción
marketstringThe market this price is for, echoed from the request path. Ej.: BTC-CLP.
sideBUY | SELLThe side priced. Buying and selling the same market are different prices — the spread is real — so a price is only meaningful together with its side. Ej.: BUY.
ratestringQuote asset per one unit of base asset. A decimal string. This is the rate for baseAmount specifically: Skipo prices a dealer spread, so the rate is a function of size and does NOT scale linearly to a larger amount. Ej.: 59700000.
baseAmountstringBase-asset amount this price was calculated for. When the request omitted amount, this is the market's minimum — not a limit-free rate. Ej.: 0.2.
quoteAmountstringQuote-asset amount corresponding to baseAmount at rate. Ej.: 11940000.
indicativebooleanAlways true. Present so a client never has to infer non-bindingness from missing fields. This price is not reserved, not held, and cannot be executed — obtaining a confirmable quote is POST /v2/quotes, which requires the trading:write scope. Ej.: true.
pricedAtstringWhen Skipo calculated this price, ISO-8601. There is no expiry because there is nothing to expire; treat the price as a point-in-time observation and re-read it when it matters. Ej.: 2026-07-30T04:36:02.451Z.

Problem

CampoTipoDescripción
typestringStable problem-type URI. Resolves to docs for this error. Ej.: https://docs.skipo.com/errors/rate_limited.
titlestringShort, human-readable summary (stable, English). Ej.: Rate limit exceeded.
statusnumberHTTP status code. Ej.: 429.
codestringStable machine-readable error code (equals the last path segment of type). Ej.: rate_limited.
retryablebooleanWhether retrying the identical request may succeed. Ej.: true.
detail (opcional)stringHuman-readable, possibly localized detail.
instance (opcional)stringThe request path that produced the error.
traceId (opcional)stringTrace id — joins BigQuery api_request and Cloud Logging.

Volver a la referencia de endpoints. Ver también: Paginación · Errores · Ids y correlación.