Saltar al contenido principal
GET /api/v1/accounts/{login}/deals consulta el historial de la cuenta verificada. Está publicado en /openapi/partners.json, bajo el mismo prefijo /api/v1. Es una consulta de lectura y no requiere Idempotency-Key ni trading habilitado.

Permisos y parámetros

El token debe tener GET:/api/v1/accounts/*/deals o un permiso que lo cubra, como GET:/api/v1/accounts/*. Los tokens con ese permiso general ya cubren esta ruta. La cuenta debe tener una verificación vigente con el mismo token. No envíes milisegundos ni fechas de texto. Los timestamps admitidos van de 0 a 253402300799. Mantén from y to fijos mientras recorres las páginas.
El ejemplo cubre del 1 de octubre de 2026 a las 00:00:00 UTC al 20 de octubre de 2026 a las 23:59:59 UTC. Utiliza fechas con zona horaria al crear timestamps.

Campos y resultado

La respuesta conserva retcode y answer, una lista de deals. Una lista vacía es una consulta correcta sin registros en esa página. Los números pueden venir como cadenas; conserva su precisión y utiliza aritmética decimal para importes. Storage es el campo de swap de esta API. Un campo omitido o null significa que no fue informado; no equivale a cero. Se conservan los ceros explícitos.

Cierres y resultado por posición

La ruta devuelve todos los deals del período, incluidas aperturas, cierres y movimientos de saldo. Para deals de compra/venta (Action 0/1), Entry distingue: Cuando los cuatro importes están disponibles, el neto contabilizado de un deal es Profit + Storage + Commission + Fee, respetando los signos originales. Para el neto completo de una posición, reúne todos sus deals por PositionID, incluidas las entradas, pues pueden llevar comisión. Si la apertura ocurrió antes de from, amplía la consulta: un rango parcial no representa el resultado completo. Una salida no demuestra por sí sola que toda la posición esté cerrada. Considera cierres parciales y reversiones y consulta posiciones abiertas si necesitas su estado actual. Los cargos diarios/mensuales o movimientos con PositionID=0 pueden no atribuirse a una posición; no los repartas ni los sumes a cada posición automáticamente. La ruta no inventa una asignación ni calcula un resultado neto por posición.

Paginación

Suma la cantidad recibida a offset. Termina al recibir una página vacía o con menos registros que total. Si la página está llena, solicita la siguiente. El historial puede cambiar por nuevas operaciones o correcciones: no es una instantánea bloqueada. Deduplica por Deal al sincronizar y vuelve a conciliar los períodos que puedan recibir correcciones. No presupongas un orden distinto del que entrega MT5.
client es una instancia autenticada del cliente Python entregado. Un 401 indica token inválido; 403, falta de permiso o verificación; 422, parámetros inválidos. Un 502/503 no debe interpretarse como historial vacío. Referencia de conceptos: propiedades de deals de MetaQuotes.