Saltar al contenido principal

Orders

GET /v2/fills

List fills

Every fill on the account, newest first, across all orders. Filter by orderId, market, asset (either leg), side or date range. Cursor-paginated: follow pagination.nextCursor until it is null, and do not infer the end from a short page.

Parámetros

ParámetroEnTipoRequeridoDescripción
limitqueryintegernoDefault: 25.
cursorquerystringnoOpaque cursor from the previous page's pagination.nextCursor.
orderIdquerystringnoRestrict to the fills of one order (its public id).
marketquerystringnoFilter to one market, by the id published by GET /v2/markets — the same value this endpoint returns as market.
assetSymbolquerystringnoMatches either leg — fills that touched this asset.
sidequeryBUY | SELLno
startDatequerystringnoISO-8601 start date (inclusive).
endDatequerystringnoISO-8601 end date (exclusive).
assetFormatquerybase | rebasednoHow to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity (real shares); base = settled SPV tokens, i.e. what moved on chain and in the ledger. No effect on other assets. Default: rebased.

Respuestas

CódigoDescripciónCuerpo
200Éxito.data: FillResource[] · pagination: CursorMeta
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/orders

List orders

Parámetros

ParámetroEnTipoRequeridoDescripción
pagequeryintegernoDefault: 1.
limitqueryintegernoDefault: 25.
statusqueryNEW | PARTIALLY_FILLED | FILLED | FAILEDno
baseAssetquerystringnoFilter by base asset code.
quoteAssetquerystringnoFilter by quote asset code.
marketquerystringnoFilter to one market, by the id published by GET /v2/markets — the same value this endpoint returns as market.
sidequeryBUY | SELLno
assetFormatquerybase | rebasednoHow to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity; base = settled SPV tokens. No effect on other assets. Default: rebased.
startDatequerystringnoISO-8601 start date.
endDatequerystringnoISO-8601 end date.

Respuestas

CódigoDescripciónCuerpo
200Éxito.data: OrderResource[] · 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).

POST /v2/orders

Place an order (execute a quote)

Money movement — requires a Tier-2 signed request (X-API-Key header + signed Authorization JWT), not a bare bearer key. Executes the quote identified by orderId. Returns 201 Created with status: "FILLED" when the balance move is booked, or 202 Accepted with status: "PROCESSING" when the trade executed but the balance credit/debit is still being reconciled internally. On 202 the order is accepted — poll GET /v2/orders/{id} for the final state and do NOT retry (a retry places a new order and double-executes).

Autenticación: Petición firmada (Tier-2)

Cuerpo de la peticiónPlaceOrderDto

Respuestas

CódigoDescripciónCuerpo
201Order placed and filled — the balance move is booked (status: "filled").PlacedOrderResource
202Order accepted; settlement is pending (status: "PROCESSING"). The trade executed but the balance move is still reconciling internally — poll GET /v2/orders/{id}; do NOT retry.PlacedOrderResource
400application/problem+json (RFC 9457) — branch on code, not on the status: validation_error (not retryable).
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable), invalid_signature (not retryable), clock_skew (retryable), nonce_reused (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), two_factor_required (not retryable).
422application/problem+json (RFC 9457) — branch on code, not on the status: unprocessable (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/orders/{id}

Get an order by id

Parámetros

ParámetroEnTipoRequeridoDescripción
idpathstring
assetFormatquerybase | rebasednoHow to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity (real shares); base = settled SPV tokens, i.e. what moved on chain and in the ledger. No effect on other assets. Default: rebased.

Respuestas

CódigoDescripciónCuerpo
200Éxito.OrderResource
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/orders/{id}/fills

List the fills of an order

The fills of one order, newest first. Cursor-paginated: follow pagination.nextCursor until it is null. A normal convert has exactly one fill; an on-credit (capacity) order is filled by several as the debt is paid down.

Parámetros

ParámetroEnTipoRequeridoDescripción
idpathstring
limitqueryintegernoDefault: 25.
cursorquerystringnoOpaque cursor from the previous page's pagination.nextCursor.
assetFormatquerybase | rebasednoHow to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity (real shares); base = settled SPV tokens, i.e. what moved on chain and in the ledger. No effect on other assets. Default: rebased.

Respuestas

CódigoDescripciónCuerpo
200Éxito.data: FillResource[] · pagination: CursorMeta
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).

POST /v2/quotes

Create a conversion quote

Creates a short-lived, single-use CONFIRMABLE quote; execute it via POST /v2/orders (a signed request). Requires the write scope because the call mints server-side state that an order later consumes, and is balance- and capacity-gated — not because funds move here. It is bearer-authenticated rather than signed precisely because the quote itself moves no money. For a NON-BINDING price with no confirmation step and no write scope, use GET /v2/markets/{market}/price.

Cuerpo de la peticiónCreateQuoteDto

Respuestas

CódigoDescripciónCuerpo
201Creado.QuoteResource
400application/problem+json (RFC 9457) — branch on code, not on the status: validation_error (not retryable).
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).
422application/problem+json (RFC 9457) — branch on code, not on the status: unprocessable (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

CreateQuoteDto

CampoTipoDescripción
baseAssetstringBase asset code of the market. Together with quoteAsset it must name a market GET /v2/markets lists — the pairing is its id, and it is DIRECTIONAL, so the legs cannot be swapped. An unknown pairing is rejected before anything is priced. Ej.: BTC.
quoteAssetstringQuote asset code of the market. Ej.: CLP.
amountAssetstringWhich leg amount is denominated in — it must be baseAsset or quoteAsset, and anything else is rejected. It selects which minimum applies: minBaseAmount or minQuoteAmount on GET /v2/markets. Ej.: BTC.
sideBUY | SELL
amountstringAmount to convert, denominated in amountAsset. A decimal string. Ej.: 0.5.

CursorMeta

CampoTipoDescripción
countnumberNumber of items in THIS page. Ej.: 25.
nextCursorstring | nullOpaque token for the next page, or null on the last page. Pass it back as cursor. Treat it as opaque — its encoding is not part of the contract and may change. Ej.: MjAyNi0wNy0yNiAxNzo0MjowMS4wMDMzMDl8OWY4Zi00YQ.

FillOrderState

CampoTipoDescripción
statusNEW | PARTIALLY_FILLED | FILLED | FAILED
filledBaseAmountstringCumulative filled base amount on the order. Positive magnitude.
filledQuoteAmountstringCumulative filled quote amount on the order. Positive magnitude.

FillResource

CampoTipoDescripción
idstringPublic fill id. This is the same value the ledger entry carries as source.id, so a fill and its ledger movements join with no extra lookup.
orderIdstringId of the order this fill belongs to.
sequencenumber1-based position of this fill within its order. A normal convert has exactly one fill; an on-credit (capacity) order has several. Ej.: 1.
sidestringEj.: BUY.
marketstringEj.: BTC-CLP.
baseAssetstring
quoteAssetstring
baseAmountstringBase amount filled by this fill. Positive magnitude.
quoteAmountstringQuote amount filled by this fill. Positive magnitude.
ratestring
multiplierstringRebase factor applied to baseAmount and rate, as it stood AT THIS FILL — not today. "1" when no scaling applies. Divide baseAmount by it to recover the settled (SPV) figure, which is what moved on chain and in the ledger. Ej.: 1.
onCreditbooleanWhether the owning order was funded on credit (capacity).
executedAtstring
orderFillOrderState

OrderResource

CampoTipoDescripción
idstringPublic order id (the client order id).
statusNEW | PARTIALLY_FILLED | FILLED | FAILED
sidestringEj.: BUY.
marketstringEj.: BTC-CLP.
baseAssetstring
quoteAssetstring
baseAmountstringOrdered base amount. Positive magnitude.
filledBaseAmountstringCumulative filled base amount. Positive magnitude.
quoteAmountstringOrdered quote amount. Positive magnitude.
filledQuoteAmountstringCumulative filled quote amount. Positive magnitude.
ratestring
multiplierstringRebase factor applied to the base amounts and rate, as it stood when the order was placed. "1" when no scaling applies. Divide a base amount by it to recover the settled (SPV) figure. Ej.: 1.
onCreditbooleanWhether the order was funded on credit (capacity).
createdAtstring

PaginationMeta

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

PlaceOrderDto

CampoTipoDescripción
orderIdstringThe orderId of the quote to execute (returned by POST /v2/quotes). Ej.: ord_abc123.

PlacedOrderResource

CampoTipoDescripción
idstringPublic order id (the client order id).
statusFILLED | PROCESSINGPlacement outcome. FILLED — the fill executed and its balance move is booked. PROCESSING — the fill executed but the balance credit/debit is still being reconciled internally; the order is accepted, not yet booked. Poll GET /v2/orders/{id} for the final state, and do NOT retry a PROCESSING order (a retry places a new order and double-executes).
transactionId (opcional)stringId of the first fill, when the order fills at placement (balance orders).

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.

QuoteResource

CampoTipoDescripción
clientOrderIdstringDEPRECATED alias of orderId, carrying the same value. Use orderId. Kept for one release so a client reading this field does not break.
orderIdstringThe id of this quote — pass it to POST /v2/orders to execute. It is also the id the resulting order will carry, and the value GET /v2/orders, /v2/orders/{id}/fills, GET /v2/fills and GET /v2/ledger?orderId= all key on. One id, learned once, used through the whole flow.
marketstringThe market this quote priced, spelled exactly as GET /v2/markets publishes it — so it can be passed straight back to GET /v2/markets/{market}. Without it a stored quote is not self-describing: the numbers below mean nothing without knowing what was priced. This is the market Skipo RESOLVED, which is authoritative over the baseAsset/quoteAsset you sent — those are matched case-insensitively, so the casing here may differ from your request. Ej.: BTC-CLP.
ratestringQuoted exchange rate.
baseAmountstringQuoted base amount. Positive magnitude.
quoteAmountstringQuoted quote amount. Positive magnitude.
quotedAtstring | nullWhen the quote was produced, ISO-8601. null if the upstream time was unusable. Ej.: 2026-07-28T12:34:56.789Z.
expiresAtstring | nullWhen this quote stops being confirmable, ISO-8601 — about five seconds after quotedAt. Execute it with POST /v2/orders before this instant; afterwards expect quotation_expired and request a fresh quote. null means the expiry could not be determined — treat that as unknown, never as already expired. Ej.: 2026-07-28T12:35:01.789Z.

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