Markets
GET /v2/markets
List supported markets
Parámetros
| Parámetro | En | Tipo | Requerido | Descripción |
|---|---|---|---|---|
page | query | integer | no | Default: 1. |
limit | query | integer | no | Default: 25. |
Respuestas
| Código | Descripción | Cuerpo |
|---|---|---|
200 | Éxito. | data: MarketResource[] · pagination: PaginationMeta |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/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). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/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ámetro | En | Tipo | Requerido | Descripción |
|---|---|---|---|---|
market | path | string | sí |
Respuestas
| Código | Descripción | Cuerpo |
|---|---|---|
200 | Éxito. | MarketResource |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/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). | — |
404 | application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/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ámetro | En | Tipo | Requerido | Descripción |
|---|---|---|---|---|
market | path | string | sí | |
side | query | BUY | SELL | sí | Which direction to price. Required — buying and selling the same market are different prices, so there is no sensible default. |
amount | query | string | no | Amount 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. |
amountAsset | query | string | no | Which leg amount is denominated in — must be one of the market's two assets. Requires amount. |
Respuestas
| Código | Descripción | Cuerpo |
|---|---|---|
200 | Éxito. | PriceResource |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/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). | — |
404 | application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable). | — |
Esquemas
MarketResource
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Ej.: BTC-CLP. |
baseAsset | string | Base asset code. Matches a GET /v2/assets assetSymbol. Ej.: BTC. |
quoteAsset | string | Quote asset code. Matches a GET /v2/assets assetSymbol. Ej.: CLP. |
type | CRYPTO-CRYPTO | CRYPTO-FIAT | FIAT-FIAT | The 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. |
minBaseAmount | string | Smallest amount you may request when you denominate the trade in the BASE asset. Identical for BUY and SELL. Ej.: 0.0001. |
minQuoteAmount | string | Smallest amount you may request when you denominate the trade in the QUOTE asset. Identical for BUY and SELL. Ej.: 1000. |
baseIncrement | string | Amount 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. |
quoteIncrement | string | Amount 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. |
tradingDays | number[] | null | Days 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
| Campo | Tipo | Descripción |
|---|---|---|
page | number | Ej.: 1. |
limit | number | Ej.: 25. |
totalItems | number | Ej.: 100. |
totalPages | number | Ej.: 4. |
PriceResource
| Campo | Tipo | Descripción |
|---|---|---|
market | string | The market this price is for, echoed from the request path. Ej.: BTC-CLP. |
side | BUY | SELL | The 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. |
rate | string | Quote 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. |
baseAmount | string | Base-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. |
quoteAmount | string | Quote-asset amount corresponding to baseAmount at rate. Ej.: 11940000. |
indicative | boolean | Always 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. |
pricedAt | string | When 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
| Campo | Tipo | Descripción |
|---|---|---|
type | string | Stable problem-type URI. Resolves to docs for this error. Ej.: https://docs.skipo.com/errors/rate_limited. |
title | string | Short, human-readable summary (stable, English). Ej.: Rate limit exceeded. |
status | number | HTTP status code. Ej.: 429. |
code | string | Stable machine-readable error code (equals the last path segment of type). Ej.: rate_limited. |
retryable | boolean | Whether retrying the identical request may succeed. Ej.: true. |
detail (opcional) | string | Human-readable, possibly localized detail. |
instance (opcional) | string | The request path that produced the error. |
traceId (opcional) | string | Trace id — joins BigQuery api_request and Cloud Logging. |
Volver a la referencia de endpoints. Ver también: Paginación · Errores · Ids y correlación.