/positions/{accountId}/{asset}/activeLas posiciones abiertas de la cuenta en un mercado, seleccionadas por el ticker de su activo base.
https://api.upscale.tradeParámetros
accountIdstring · uuidobligatorioIdentificador de la cuenta del trader. Debe pertenecer al solicitante.
00000000-0000-4000-8000-000000000000assetstringobligatorioTicker del activo base del mercado, tal como lo devuelve GET /v2/markets.
BTCEjemplos
curl --request GET 'https://api.upscale.trade/positions/{accountId}/{asset}/active' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY'const response = await fetch("https://api.upscale.trade/positions/{accountId}/{asset}/active", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
});
console.log(response.status, await response.text());import requests
response = requests.request(
"GET",
"https://api.upscale.trade/positions/{accountId}/{asset}/active",
headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
timeout=30,
)
print(response.status_code, response.text)Respuestas
No autorizado
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).
No hay ninguna cuenta con este identificador, o no hay ningún mercado para este ticker.
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.
defaultRespuestaapplication/json
Array de PositionResponse
idxstring[]obligatorioIdentificador de la posición. Mismo valor que txId.
Elementos del array · string
string
Ver ejemplo
[
"string"
]txIdstring[]obligatorioIdentificador de la posición. Se mantiene por compatibilidad hacia atrás, siempre igual a idx.
Elementos del array · string
string
Ver ejemplo
[
"string"
]versionnumberobligatorioRevisión de la posición: incrementada por cada evento que se le aplica.
0openedAtstring · date-timeobligatorioCuándo se abrió la posición.
2026-05-01T12:30:00.000ZlastUpdatedAtstring · date-timeobligatorioCuándo se aplicó el último evento a la posición.
2026-05-01T12:30:00.000ZclosedAtstring · date-time · nullableobligatorioCuándo se cerró la posición; null mientras sigue abierta.
2026-05-01T12:30:00.000Ztypestring · enumobligatorioDirección de la posición. Mismo valor que direction.
"long" "short"longstatusstring · enumobligatorioSi la posición sigue abierta, fue cerrada por el trader o fue liquidada.
"opened" "closed" "liquidated"openedmarketstring · uuidobligatorioMercado en el que se mantiene la posición.
- 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})$
00000000-0000-4000-8000-000000000000traderstring · uuidobligatorioCuenta del trader a la que pertenece la posición.
- 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})$
00000000-0000-4000-8000-000000000000sizestring · int32obligatorioTamaño de la posición en unidades del activo base, fp9 sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000notionalstring · int32obligatorioNocional abierto de la posición en moneda de cotización, fp9 sin procesar — tamaño al precio de entrada.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000fractionstring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000marginstring · int32obligatorioMargen que actualmente respalda la posición, fp9 sin procesar. Cambia con pnl, financiación y cambios manuales de margen.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000pnlstring · int32 · nullableobligatorioPnl realizado acumulado a lo largo de cada evento de la posición, fp9 sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000fundingstring · int32 · nullableobligatorioFinanciación pagada (negativa) o recibida (positiva) durante la vida de la posición, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000rolloverFeestring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000settlementOraclePricestring · int32obligatorioSiempre 1000000000 (1.0). Se mantiene por compatibilidad con versiones anteriores.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000feestring · int32obligatorioComisiones de trading cobradas durante la vida de la posición, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000feeRatestring · int32obligatorioTasa de comisión aplicada a la posición, fp9 fracción en bruto (1000000 = 0.1%).
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000exchangedQuotestring · int32obligatorioImporte de cotización intercambiado por el evento más reciente, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000exchangedBasestring · int32obligatorioImporte base intercambiado por el evento más reciente, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000directionstring · enumobligatorioDirección de la posición.
"long" "short"longeventNamestring · enumobligatorioTipo del evento más reciente aplicado a la posición.
"addMargin" "removeMargin" "closePosition" "increasePosition" "liquidate" "forceClose" "payFunding"addMarginpnlInEventstring · int32obligatorioPnl realizado del evento más reciente, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000rawPnlInEventstring · int32obligatorioPnl realizado del evento más reciente antes del ajuste de 60 segundos, fp9 en bruto. Difiere de pnlInEvent solo cuando se activó el ajuste.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000profitAdjustmentAppliedbooleanobligatorioSi el ajuste de 60 segundos limitó la ganancia del evento más reciente — dentro de un minuto de una apertura o un aumento de la posición, el pnl de la posición no puede crecer por encima de lo que era en ese momento.
trueholdingTimeMsstring[]obligatorioCuánto tiempo se mantuvo la posición antes del cierre más reciente, en milisegundos, contado desde la apertura o el último incremento. Nulo en eventos que no son cierres.
Elementos del array · string
string
Ver ejemplo
[
"string"
]feeInEventstring · int32obligatorioComisión cobrada por el evento más reciente, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000fundingInEventstring · int32obligatorioFinanciación liquidada por el evento más reciente, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000rolloverFeeInEventstring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000executionFeeRatestring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000executionFeeInEventstring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000executionFeestring · int32obligatorioSiempre 0. Se mantiene por compatibilidad hacia atrás.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000timestampstring · date-timeobligatorioMarca de tiempo del evento más reciente. Mismo valor que lastUpdatedAt.
2026-05-01T12:30:00.000ZisOnchainbooleanobligatorioSiempre true. Se mantiene por compatibilidad con versiones anteriores.
trueroestring · int32obligatorioRentabilidad sobre el capital de la posición — pnl realizado sobre el margen aportado, fp9 fracción sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000scalpingCoefficientstring · int32obligatorioMultiplicador dinámico de spread que se aplicó a la posición, fp9 sin procesar (1000000000 = 1.0). Por encima de 1 cuando la operación quedó dentro de la ventana de scalping del mercado.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000closeReasonstring[]obligatorioPor qué la plataforma cerró la posición (por ejemplo, weekly_session_risk_close). Nulo para las posiciones cerradas por el trader y para las abiertas.
Elementos del array · string
string
Ver ejemplo
[
"string"
][
{
"idx": [
"string"
],
"txId": [
"string"
],
"version": 0,
"openedAt": "2026-05-01T12:30:00.000Z",
"lastUpdatedAt": "2026-05-01T12:30:00.000Z",
"closedAt": "2026-05-01T12:30:00.000Z",
"type": "long",
"status": "opened",
"market": "00000000-0000-4000-8000-000000000000",
"trader": "00000000-0000-4000-8000-000000000000",
"size": "1000000000",
"notional": "1000000000",
"fraction": "1000000000",
"margin": "1000000000",
"pnl": "1000000000",
"funding": "1000000000",
"rolloverFee": "1000000000",
"settlementOraclePrice": "1000000000",
"fee": "1000000000",
"feeRate": "1000000000",
"exchangedQuote": "1000000000",
"exchangedBase": "1000000000",
"direction": "long",
"eventName": "addMargin",
"pnlInEvent": "1000000000",
"rawPnlInEvent": "1000000000",
"profitAdjustmentApplied": true,
"holdingTimeMs": [
"string"
],
"feeInEvent": "1000000000",
"fundingInEvent": "1000000000",
"rolloverFeeInEvent": "1000000000",
"executionFeeRate": "1000000000",
"executionFeeInEvent": "1000000000",
"executionFee": "1000000000",
"timestamp": "2026-05-01T12:30:00.000Z",
"isOnchain": true,
"roe": "1000000000",
"scalpingCoefficient": "1000000000",
"closeReason": [
"string"
]
}
]