> ## Documentation Index
> Fetch the complete documentation index at: https://api-trading-docs.ap-markets.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cuenta, posiciones y órdenes

> Consulta el estado de una cuenta verificada y recorre resultados paginados.

Todas estas rutas requieren token, permiso de lectura y verificación vigente del login.
No sustituyen una consulta al resultado de ejecución de una solicitud.

## Datos de cuenta

`GET /api/v1/accounts/{login}` devuelve únicamente `retcode` y `answer`.
Dentro de `answer` solo se permiten `Login`, `Registration`, `LastAccess`, `Name`,
`FirstName`, `Balance` y `Credit`. Los demás campos de MT5 se excluyen.

Ejemplo de respuesta exitosa:

```json theme={null}
{
  "retcode": "0 Done",
  "answer": {
    "Login": "104205",
    "Registration": "1765252647",
    "LastAccess": "1790786983",
    "Name": "test edit",
    "FirstName": "test edit",
    "Balance": "258531.44",
    "Credit": "0.00"
  }
}
```

Se conservan los valores y tipos recibidos de MT5. Si falta un campo permitido,
se omite; no se inventan valores. `Registration` y `LastAccess` representan fechas
Unix en segundos. Esta lista de campos aplica solo a la consulta de cuenta;
los errores conservan el formato descrito en [Errores](https://api-trading-docs.ap-markets.com/es/errors.md).

## Posiciones abiertas

`GET /api/v1/accounts/{login}/positions` devuelve la página de posiciones.

La respuesta exitosa contiene únicamente `retcode` y un arreglo `answer`.
Cada posición permite solo estos campos: `Position`, `Symbol`, `Action`, `TimeCreate`, `PriceOpen`, `PriceCurrent`, `PriceSL`, `PriceTP`, `Volume`, `Profit`, `Storage`.

Los campos adicionales de MT5 se excluyen. Se conservan los valores y tipos
recibidos; los campos ausentes se omiten. Sin posiciones, `answer` es `[]`.
`TimeCreate` y `TimeUpdate` son fechas Unix en segundos; sus variantes `Msc`
usan milisegundos. Los errores mantienen su formato habitual.

| Parámetro | Predeterminado | Límite |
| - | - | - |
| `offset` | `0` | Entero mayor o igual a 0 |
| `total` | `100` | Entero entre 1 y 1000 |

Conserva el ticket `Position`, el propietario `Login`, `Symbol`, `Action` y `Volume`
para preparar un cierre. El ticket no es el ID devuelto al enviar una orden.

`GET /api/v1/accounts/{login}/positions/count` consulta el número de posiciones abiertas.
Su resultado corresponde al momento de la consulta y puede cambiar antes de leer una página.

## Órdenes activas

La respuesta exitosa contiene únicamente `retcode` y un arreglo `answer`.
Cada orden permite solo estos campos: `Order`, `Symbol`, `State`, `Type`, `TimeSetup`, `TimeExpiration`, `TypeTime`, `PriceOrder`, `PriceTrigger`, `PriceCurrent`, `PriceSL`, `PriceTP`, `VolumeInitial`, `VolumeCurrent`.

Los campos adicionales de MT5 se excluyen. Se conservan los valores y tipos
recibidos; los campos ausentes se omiten. Sin órdenes, `answer` es `[]`.
Los campos de tiempo usan segundos Unix y las variantes `Msc`, milisegundos;
los valores `0` recibidos se conservan. Los errores mantienen su formato habitual.

`GET /api/v1/accounts/{login}/orders` consulta las órdenes activas de MT5.
Admite `offset` desde 0 y `total` entre 1 y 100, con 100 por defecto.
No es un histórico de ejecuciones. Una orden de mercado ya ejecutada no tiene por qué
permanecer en esta lista. Usa `POST /api/v1/orders/{order}/modify` para modificar una pendiente y `POST /api/v1/orders/{order}/cancel` para cancelarla.

## Recorrer todas las páginas

1. Empieza con `offset=0` y un `total` dentro del límite de la ruta.
2. Procesa el arreglo de `answer` de la respuesta MT5.
3. Si contiene menos elementos que `total`, termina.
4. Si la página está completa, incrementa `offset` en `total` y consulta otra página.
5. Aplica un límite defensivo de páginas y respeta la frecuencia permitida.

Las páginas no son una instantánea transaccional. Si hay operaciones simultáneas,
reconcilia cambios por ticket y vuelve a consultar cuando sea necesario.

```bash theme={null}
curl --fail-with-body "$API_BASE/api/v1/accounts/123456" \
  -H "Authorization: Bearer $MT5_API_TOKEN"
curl --fail-with-body "$API_BASE/api/v1/accounts/123456/positions?offset=0&total=1000" \
  -H "Authorization: Bearer $MT5_API_TOKEN"
curl --fail-with-body "$API_BASE/api/v1/accounts/123456/positions/count" \
  -H "Authorization: Bearer $MT5_API_TOKEN"
curl --fail-with-body "$API_BASE/api/v1/accounts/123456/orders?offset=0&total=100" \
  -H "Authorization: Bearer $MT5_API_TOKEN"
```

Para ejecuciones por fechas, swap y comisiones, consulta [el historial de deals](https://api-trading-docs.ap-markets.com/es/deals.md):
`GET /api/v1/accounts/{login}/deals?from=...&to=...&offset=0&total=100`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.