# Obtener el historial de órdenes por ticker

`GET /orders/{accountId}/{asset}/history`

Órdenes de la cuenta en un mercado que han alcanzado un estado final, las más recientes primero, con el recuento total para la paginación.

- `status` y `errorCode` indican cómo terminó cada una: ejecutada, cancelada por el trader, por el cierre de la posición, o por un error de ejecución.
- Las órdenes reemplazadas por una actualización se omiten — el reemplazo lleva el historial en su lugar.
- Limitado a la fase en la que se encuentra actualmente la cuenta.

<a id="authorization"></a>

## Autorización

bearer: http · bearer (obligatorio). Clave de API personal, con el prefijo `usk_`.

<a id="parameters"></a>

## Parámetros

- path: accountId (string · uuid; obligatorio). Identificador de la cuenta del trader. Debe pertenecer al solicitante.

Tipo: string · uuid

format: uuid

- path: asset (string; obligatorio). Ticker del activo base del mercado, tal como lo devuelve `GET /v2/markets`.

Tipo: string

Ejemplo: "BTC"

- query: limit (integer; opcional). Tamaño de página: cuántos registros devolver.

Tipo: integer

Ejemplo: 20

Predeterminado: 20

minimum: 1

maximum: 100

- query: offset (integer; opcional). Cuántos registros omitir antes de la página.

Tipo: integer

Ejemplo: 0

Predeterminado: 0

minimum: 0

maximum: 9007199254740991

<a id="example-curl"></a>

## Ejemplo · cURL

```bash
curl --request GET 'https://api.upscale.trade/orders/{accountId}/{asset}/history' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'
```

<a id="example-javascript"></a>

## Ejemplo · JavaScript

```javascript
const response = await fetch("https://api.upscale.trade/orders/{accountId}/{asset}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
});
console.log(response.status, await response.text());
```

<a id="example-python"></a>

## Ejemplo · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.upscale.trade/orders/{accountId}/{asset}/history",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

<a id="response-401"></a>

## Respuesta 401

**401**  — No autorizado

<a id="response-403"></a>

## Respuesta 403

**403**  — La cuenta pertenece a otro usuario (`account_access_denied`), o la solicitud se autentica con una clave de API mientras `api_trading` está deshabilitado en la cuenta (`api_trading_not_enabled`).

<a id="response-404"></a>

## Respuesta 404

**404**  — No hay ninguna cuenta con este identificador, o no hay ningún mercado para este ticker.

<a id="response-429"></a>

## Respuesta 429

**429**  — Se superó el límite de velocidad de la clave de API (`api_key_rate_limit_exceeded`). `Retry-After` indica cuándo volver; el cuerpo incluye el bucket (`read` / `write`), la ventana que se activó, su límite y `retryAt`.

<a id="response-default-orderspaginatedresponse"></a>

## Respuesta default · OrdersPaginatedResponse

**default** application/json — Respuesta

Esquema: OrdersPaginatedResponse

Tipo: object

Campos obligatorios: data, totalCount

Tipos de campos obligatorios: data (object[]; obligatorio), totalCount (number; obligatorio)

- data (object[]; obligatorio)

data ejemplo: [
  {
    "id": "00000000-0000-4000-8000-000000000000",
    "txId": "string",
    "trader": "00000000-0000-4000-8000-000000000000",
    "market": "00000000-0000-4000-8000-000000000000",
    "status": "active",
    "type": "market",
    "direction": "long",
    "triggerPrice": "1000000000",
    "requestedTriggerPrice": "1000000000",
    "stopPrice": "1000000000",
    "limitPrice": "1000000000",
    "stopTriggerPrice": "1000000000",
    "takeTriggerPrice": "1000000000",
    "trailingStopActivationPrice": "1000000000",
    "trailingStopOffset": "1000000000",
    "trailingStopOffsetPercent": "1000000000",
    "leverage": "1000000000",
    "index": "string",
    "positionId": "string",
    "parentOrderId": "string",
    "expiration": "2026-05-01T12:30:00.000Z",
    "amount": "1000000000",
    "indexPrice": "1000000000",
    "settlementOraclePrice": "1000000000",
    "createdAt": "2026-05-01T12:30:00.000Z",
    "error": "string",
    "realizedPnl": "1000000000",
    "rawRealizedPnl": "1000000000",
    "profitAdjustmentApplied": true,
    "executedAfterPause": true,
    "sizeMode": "quote",
    "baseSize": "1000000000",
    "reservedAmount": "1000000000",
    "errorCode": "string",
    "reason": "force_close"
  }
]

data.Tipo: object[]

data.Página solicitada de órdenes, las más recientes primero.

data.[]Tipo: object

data.[]Campos obligatorios: id, txId, trader, market, status, type, direction, triggerPrice, requestedTriggerPrice, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, trailingStopActivationPrice, trailingStopOffset, trailingStopOffsetPercent, leverage, index, positionId, parentOrderId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error, realizedPnl, rawRealizedPnl, profitAdjustmentApplied, executedAfterPause, sizeMode, baseSize, reservedAmount, errorCode, reason

data.[]Tipos de campos obligatorios: id (string · uuid; obligatorio), txId (string; obligatorio), trader (string · uuid; obligatorio), market (string · uuid; obligatorio), status (string · enum; obligatorio), type (string · enum; obligatorio), direction (string · enum; obligatorio), triggerPrice (string · int32; obligatorio), requestedTriggerPrice (string · int32 · nullable; obligatorio), stopPrice (string · int32; obligatorio), limitPrice (string · int32; obligatorio), stopTriggerPrice (string · int32; obligatorio), takeTriggerPrice (string · int32; obligatorio), trailingStopActivationPrice (string · int32; obligatorio), trailingStopOffset (string · int32; obligatorio), trailingStopOffsetPercent (string · int32; obligatorio), leverage (string · int32 · nullable; obligatorio), index (string; obligatorio), positionId (string · nullable; obligatorio), parentOrderId (string · nullable; obligatorio), expiration (string · date-time · nullable; obligatorio), amount (string · int32; obligatorio), indexPrice (string · int32 · nullable; obligatorio), settlementOraclePrice (string · int32; obligatorio), createdAt (string · date-time; obligatorio), error (string · nullable; obligatorio), realizedPnl (string · int32 · nullable; obligatorio), rawRealizedPnl (string · int32 · nullable; obligatorio), profitAdjustmentApplied (boolean; obligatorio), executedAfterPause (boolean; obligatorio), sizeMode (string · enum; obligatorio), baseSize (string · int32 · nullable; obligatorio), reservedAmount (string · int32 · nullable; obligatorio), errorCode (string · nullable; obligatorio), reason (string · enum · nullable; obligatorio)

- data.[]id (string · uuid; obligatorio)

data.[]id ejemplo: 00000000-0000-4000-8000-000000000000

data.[]id.Tipo: string · uuid

data.[]id.Identificador de la orden.

data.[]id.format: uuid

data.[]id.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- data.[]txId (string; obligatorio)

data.[]txId ejemplo: string

data.[]txId.Tipo: string

data.[]txId.Identificador de la orden. Se conserva por compatibilidad con versiones anteriores, siempre igual a `id`.

- data.[]trader (string · uuid; obligatorio)

data.[]trader ejemplo: 00000000-0000-4000-8000-000000000000

data.[]trader.Tipo: string · uuid

data.[]trader.Cuenta del trader a la que pertenece la orden.

data.[]trader.format: uuid

data.[]trader.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- data.[]market (string · uuid; obligatorio)

data.[]market ejemplo: 00000000-0000-4000-8000-000000000000

data.[]market.Tipo: string · uuid

data.[]market.Mercado en el que se coloca la orden.

data.[]market.format: uuid

data.[]market.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- data.[]status (string · enum; obligatorio)

data.[]status ejemplo: active

data.[]status.Tipo: string · enum

data.[]status.Estado del ciclo de vida: `active` mientras espera, `executed` una vez ejecutada, `canceled` cuando es cancelada por el trader o la plataforma, `canceled_by_update` cuando es reemplazada por una edición, `canceled_by_position` cuando la posición a la que estaba vinculada desapareció, `canceled_by_error` cuando falló la ejecución — consulta `errorCode`.

data.[]status.Valores permitidos: ["active","canceled","canceled_by_update","canceled_by_error","canceled_by_position","executed"]

- data.[]type (string · enum; obligatorio)

data.[]type ejemplo: market

data.[]type.Tipo: string · enum

data.[]type.Tipo de orden. `liquidation` marca una orden que el propio motor generó.

data.[]type.Valores permitidos: ["market","limit","stop","trailing_stop","take","stop_limit","stop_market","liquidation"]

- data.[]direction (string · enum; obligatorio)

data.[]direction ejemplo: long

data.[]direction.Tipo: string · enum

data.[]direction.Dirección de la orden.

data.[]direction.Valores permitidos: ["long","short"]

- data.[]triggerPrice (string · int32; obligatorio)

data.[]triggerPrice ejemplo: 1000000000

data.[]triggerPrice.Tipo: string · int32

data.[]triggerPrice.Precio al que se dispara la orden, fp9 en bruto. `0` cuando la orden no lleva disparador.

data.[]triggerPrice.format: int32

data.[]triggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]requestedTriggerPrice (string · int32 · nullable; obligatorio)

data.[]requestedTriggerPrice ejemplo: 1000000000

data.[]requestedTriggerPrice.Tipo: string · int32 · nullable

data.[]requestedTriggerPrice.Precio de activación tal como se solicitó, antes de que el motor lo desplazara hasta la distancia mínima de stop, fp9 en bruto. Nulo cuando el precio solicitado se mantuvo tal cual.

data.[]requestedTriggerPrice.format: int32

data.[]requestedTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]stopPrice (string · int32; obligatorio)

data.[]stopPrice ejemplo: 1000000000

data.[]stopPrice.Tipo: string · int32

data.[]stopPrice.Precio de activación de una orden `stop_market` / `stop_limit`, fp9 en bruto; `0` para cualquier otro tipo.

data.[]stopPrice.format: int32

data.[]stopPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]limitPrice (string · int32; obligatorio)

data.[]limitPrice ejemplo: 1000000000

data.[]limitPrice.Tipo: string · int32

data.[]limitPrice.Precio al que se coloca la orden una vez activada, fp9 en bruto: el precio stop-limit, recurriendo al precio de activación como alternativa.

data.[]limitPrice.format: int32

data.[]limitPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]stopTriggerPrice (string · int32; obligatorio)

data.[]stopTriggerPrice ejemplo: 1000000000

data.[]stopTriggerPrice.Tipo: string · int32

data.[]stopTriggerPrice.Stop-loss asociado a la orden, fp9 en bruto. `0` cuando no hay ninguno asociado.

data.[]stopTriggerPrice.format: int32

data.[]stopTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]takeTriggerPrice (string · int32; obligatorio)

data.[]takeTriggerPrice ejemplo: 1000000000

data.[]takeTriggerPrice.Tipo: string · int32

data.[]takeTriggerPrice.Take-profit asociado a la orden, fp9 en bruto. `0` cuando no hay ninguno asociado.

data.[]takeTriggerPrice.format: int32

data.[]takeTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]trailingStopActivationPrice (string · int32; obligatorio)

data.[]trailingStopActivationPrice ejemplo: 1000000000

data.[]trailingStopActivationPrice.Tipo: string · int32

data.[]trailingStopActivationPrice.Precio al que un stop móvil comienza a hacer seguimiento, fp9 sin procesar. `0` cuando hace seguimiento desde la creación.

data.[]trailingStopActivationPrice.format: int32

data.[]trailingStopActivationPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]trailingStopOffset (string · int32; obligatorio)

data.[]trailingStopOffset ejemplo: 1000000000

data.[]trailingStopOffset.Tipo: string · int32

data.[]trailingStopOffset.Distancia de seguimiento como un importe absoluto de cotización, fp9 sin procesar. `0` cuando la distancia se establece como porcentaje.

data.[]trailingStopOffset.format: int32

data.[]trailingStopOffset.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]trailingStopOffsetPercent (string · int32; obligatorio)

data.[]trailingStopOffsetPercent ejemplo: 1000000000

data.[]trailingStopOffsetPercent.Tipo: string · int32

data.[]trailingStopOffsetPercent.Distancia de seguimiento como una fracción del precio, fp9 sin procesar. `0` cuando la distancia es absoluta.

data.[]trailingStopOffsetPercent.format: int32

data.[]trailingStopOffsetPercent.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]leverage (string · int32 · nullable; obligatorio)

data.[]leverage ejemplo: 1000000000

data.[]leverage.Tipo: string · int32 · nullable

data.[]leverage.Apalancamiento de la orden, fp9 en bruto. Nulo en órdenes de cierre, que heredan el apalancamiento de la posición.

data.[]leverage.format: int32

data.[]leverage.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]index (string; obligatorio)

data.[]index ejemplo: string

data.[]index.Tipo: string

data.[]index.Identificador de la orden. Se conserva por compatibilidad con versiones anteriores, siempre igual a `id`.

- data.[]positionId (string · nullable; obligatorio)

data.[]positionId ejemplo: string

data.[]positionId.Tipo: string · nullable

data.[]positionId.Posición a la que está asociada una orden de cierre. Nulo para órdenes que abren o aumentan una posición.

- data.[]parentOrderId (string · nullable; obligatorio)

data.[]parentOrderId ejemplo: string

data.[]parentOrderId.Tipo: string · nullable

data.[]parentOrderId.Orden de la que se generó esta: un stop o un take creado a partir de `stopTriggerPrice` / `takeTriggerPrice`, o la orden limit en la que se convirtió un `stop_limit`. Nulo cuando la orden se envió directamente.

- data.[]expiration (string · date-time · nullable; obligatorio)

data.[]expiration ejemplo: 2026-05-01T12:30:00.000Z

data.[]expiration.Tipo: string · date-time · nullable

data.[]expiration.Siempre nulo. Se mantiene por compatibilidad con versiones anteriores: las órdenes no expiran por sí solas.

data.[]expiration.format: date-time

- data.[]amount (string · int32; obligatorio)

data.[]amount ejemplo: 1000000000

data.[]amount.Tipo: string · int32

data.[]amount.Tamaño de la orden, fp9 en bruto, en la unidad que usa su clase: en una orden de incremento, un importe de cotización — la reserva mientras espera, y lo que realmente gastó una vez ejecutada; en una orden de cierre (`stop`, `take`, `trailing_stop`), el tamaño del activo base que cierra, tal como se solicitó al crearla.

data.[]amount.format: int32

data.[]amount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]indexPrice (string · int32 · nullable; obligatorio)

data.[]indexPrice ejemplo: 1000000000

data.[]indexPrice.Tipo: string · int32 · nullable

data.[]indexPrice.Precio índice al que se ejecutó la orden, fp9 en bruto. Nulo mientras la orden no se haya ejecutado.

data.[]indexPrice.format: int32

data.[]indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]settlementOraclePrice (string · int32; obligatorio)

data.[]settlementOraclePrice ejemplo: 1000000000

data.[]settlementOraclePrice.Tipo: string · int32

data.[]settlementOraclePrice.Siempre `1000000000` (1.0). Se mantiene por compatibilidad con versiones anteriores.

data.[]settlementOraclePrice.format: int32

data.[]settlementOraclePrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]createdAt (string · date-time; obligatorio)

data.[]createdAt ejemplo: 2026-05-01T12:30:00.000Z

data.[]createdAt.Tipo: string · date-time

data.[]createdAt.Cuándo se aceptó la orden.

data.[]createdAt.format: date-time

- data.[]error (string · nullable; obligatorio)

data.[]error ejemplo: string

data.[]error.Tipo: string · nullable

data.[]error.Siempre null. Se mantiene por compatibilidad hacia atrás — utilice `errorCode`.

- data.[]realizedPnl (string · int32 · nullable; obligatorio)

data.[]realizedPnl ejemplo: 1000000000

data.[]realizedPnl.Tipo: string · int32 · nullable

data.[]realizedPnl.Pnl realizado por esta orden, fp9 en bruto. Se establece solo en una orden de cierre ejecutada; null mientras está pendiente y en órdenes que abren o aumentan una posición.

data.[]realizedPnl.format: int32

data.[]realizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]rawRealizedPnl (string · int32 · nullable; obligatorio)

data.[]rawRealizedPnl ejemplo: 1000000000

data.[]rawRealizedPnl.Tipo: string · int32 · nullable

data.[]rawRealizedPnl.Pnl realizado antes del ajuste de 60 segundos, fp9 en bruto. Difiere de `realizedPnl` solo cuando se activó el ajuste.

data.[]rawRealizedPnl.format: int32

data.[]rawRealizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]profitAdjustmentApplied (boolean; obligatorio)

data.[]profitAdjustmentApplied ejemplo: true

data.[]profitAdjustmentApplied.Tipo: boolean

data.[]profitAdjustmentApplied.Si el ajuste de 60 segundos limitó la ganancia de esta orden — dentro de un minuto de una apertura o un aumento, el pnl de la posición no puede crecer por encima de lo que era en ese momento.

- data.[]executedAfterPause (boolean; obligatorio)

data.[]executedAfterPause ejemplo: true

data.[]executedAfterPause.Tipo: boolean

data.[]executedAfterPause.Indica si la orden se ejecutó después de una pausa del mercado. No lo establece el motor actual — siempre `false`.

- data.[]sizeMode (string · enum; obligatorio)

data.[]sizeMode ejemplo: quote

data.[]sizeMode.Tipo: string · enum

data.[]sizeMode.Cómo se expresó el tamaño al crearse: `quote` dimensiona la orden por `amount`, `base` la dimensiona por `baseSize`.

data.[]sizeMode.Valores permitidos: ["quote","base"]

- data.[]baseSize (string · int32 · nullable; obligatorio)

data.[]baseSize ejemplo: 1000000000

data.[]baseSize.Tipo: string · int32 · nullable

data.[]baseSize.Tamaño de la orden en unidades del activo base, fp9 en bruto. Nulo para órdenes dimensionadas por `quote`.

data.[]baseSize.format: int32

data.[]baseSize.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]reservedAmount (string · int32 · nullable; obligatorio)

data.[]reservedAmount ejemplo: 1000000000

data.[]reservedAmount.Tipo: string · int32 · nullable

data.[]reservedAmount.Importe de quote reservado cuando se creó la orden con sizeMode=base, fp9 en bruto. Se mantiene en la reserva original después de la ejecución, mientras que `amount` se reescribe a lo que se gastó. Nulo para órdenes dimensionadas por `quote`, donde `amount` es la reserva.

data.[]reservedAmount.format: int32

data.[]reservedAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]errorCode (string · nullable; obligatorio)

data.[]errorCode ejemplo: string

data.[]errorCode.Tipo: string · nullable

data.[]errorCode.Por qué falló la ejecución, establecido junto con el estado `canceled_by_error` — por ejemplo `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` o `slippage_tolerance`. Nulo en caso contrario.

- data.[]reason (string · enum · nullable; obligatorio)

data.[]reason ejemplo: force_close

data.[]reason.Tipo: string · enum · nullable

data.[]reason.Por qué la plataforma canceló la orden por sí misma, por ejemplo `force_close` o `weekly_session_risk_close`. Nulo para cancelaciones impulsadas por el trader.

data.[]reason.Valores permitidos: ["force_close","stop_accounts_fail","stop_accounts_freeze","stop_accounts_promote","stop_accounts_manual","weekly_session_risk_close",null]

- totalCount (number; obligatorio)

totalCount ejemplo: 0

totalCount.Tipo: number

totalCount.Número total de órdenes que coinciden con la solicitud, en todas las páginas.

Ejemplo



```json
{
  "data": [
    {
      "id": "00000000-0000-4000-8000-000000000000",
      "txId": "string",
      "trader": "00000000-0000-4000-8000-000000000000",
      "market": "00000000-0000-4000-8000-000000000000",
      "status": "active",
      "type": "market",
      "direction": "long",
      "triggerPrice": "1000000000",
      "requestedTriggerPrice": "1000000000",
      "stopPrice": "1000000000",
      "limitPrice": "1000000000",
      "stopTriggerPrice": "1000000000",
      "takeTriggerPrice": "1000000000",
      "trailingStopActivationPrice": "1000000000",
      "trailingStopOffset": "1000000000",
      "trailingStopOffsetPercent": "1000000000",
      "leverage": "1000000000",
      "index": "string",
      "positionId": "string",
      "parentOrderId": "string",
      "expiration": "2026-05-01T12:30:00.000Z",
      "amount": "1000000000",
      "indexPrice": "1000000000",
      "settlementOraclePrice": "1000000000",
      "createdAt": "2026-05-01T12:30:00.000Z",
      "error": "string",
      "realizedPnl": "1000000000",
      "rawRealizedPnl": "1000000000",
      "profitAdjustmentApplied": true,
      "executedAfterPause": true,
      "sizeMode": "quote",
      "baseSize": "1000000000",
      "reservedAmount": "1000000000",
      "errorCode": "string",
      "reason": "force_close"
    }
  ],
  "totalCount": 0
}
```