{
  "info": {
    "name": "IOL Inversiones API",
    "_postman_id": "iol-inversiones-api-collection",
    "description": "API para acceder a cuentas de brokerage y criptomonedas de IOL Inversiones.\n\n## Autenticación\n\n1. Ejecutar POST /auth/token con tus credenciales\n2. El token se guarda automáticamente en la variable `access_token`\n3. Todos los demás endpoints lo usan automáticamente\n\n## Variables\n\n- `base_url`: URL base de la API\n- `access_token`: Token JWT (se actualiza automáticamente)\n- `refresh_token`: Token para renovar sesión",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost:3000",
      "type": "string"
    },
    {
      "key": "access_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "refresh_token",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Estado",
      "item": [
        {
          "name": "Health Check",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/health",
              "host": ["{{base_url}}"],
              "path": ["health"]
            },
            "description": "Verificar disponibilidad y uptime de la API"
          }
        }
      ]
    },
    {
      "name": "Autenticación",
      "item": [
        {
          "name": "Obtener Token (Password)",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 200) {",
                  "    var jsonData = pm.response.json();",
                  "    if (jsonData.data) {",
                  "        pm.collectionVariables.set('access_token', jsonData.data.access_token);",
                  "        pm.collectionVariables.set('refresh_token', jsonData.data.refresh_token);",
                  "        console.log('Token guardado exitosamente');",
                  "    }",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grant_type\": \"password\",\n  \"username\": \"tu_usuario\",\n  \"password\": \"tu_contraseña\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/auth/token",
              "host": ["{{base_url}}"],
              "path": ["auth", "token"]
            },
            "description": "Autenticarse con usuario y contraseña para obtener un access token."
          }
        },
        {
          "name": "Refrescar Token",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 200) {",
                  "    var jsonData = pm.response.json();",
                  "    if (jsonData.data) {",
                  "        pm.collectionVariables.set('access_token', jsonData.data.access_token);",
                  "        pm.collectionVariables.set('refresh_token', jsonData.data.refresh_token);",
                  "        console.log('Token refrescado exitosamente');",
                  "    }",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grant_type\": \"refresh_token\",\n  \"refresh_token\": \"{{refresh_token}}\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/auth/token",
              "host": ["{{base_url}}"],
              "path": ["auth", "token"]
            },
            "description": "Renovar un token expirado usando el refresh_token."
          }
        }
      ]
    },
    {
      "name": "Cuentas",
      "item": [
        {
          "name": "Obtener Saldos Argentina",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/AR/balances",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "AR", "balances"]
            },
            "description": "Obtener saldos de cuenta Argentina (ARS + USD)"
          }
        },
        {
          "name": "Obtener Saldos USA",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/US/balances",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "US", "balances"]
            },
            "description": "Obtener saldos de cuenta USA (solo USD)"
          }
        },
        {
          "name": "Obtener Posiciones Argentina",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/AR/positions?valuation_currency=ARS",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "AR", "positions"],
              "query": [
                {
                  "key": "valuation_currency",
                  "value": "ARS",
                  "description": "Moneda de valuación: ARS, USD, MEP, CCL"
                }
              ]
            },
            "description": "Obtener todas las posiciones (tenencias) de la cuenta Argentina"
          }
        },
        {
          "name": "Obtener Posiciones USA",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/US/positions",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "US", "positions"]
            },
            "description": "Obtener todas las posiciones (tenencias) de la cuenta USA"
          }
        },
        {
          "name": "Obtener Actividades",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/activities?start_date=2024-01-01&end_date=2024-12-31&country=all&currency=all&state=all",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "activities"],
              "query": [
                {
                  "key": "start_date",
                  "value": "2024-01-01",
                  "description": "Fecha de inicio (YYYY-MM-DD) - requerido"
                },
                {
                  "key": "end_date",
                  "value": "2024-12-31",
                  "description": "Fecha de fin (YYYY-MM-DD) - requerido"
                },
                {
                  "key": "country",
                  "value": "all",
                  "description": "Filtro de país: all, AR, US"
                },
                {
                  "key": "currency",
                  "value": "all",
                  "description": "Filtro de moneda: all, ARS, USD"
                },
                {
                  "key": "state",
                  "value": "all",
                  "description": "Estado: all, completed, pending, cancelled"
                }
              ]
            },
            "description": "Obtener todos los movimientos de cuenta (excluye operaciones de trading)"
          }
        },
        {
          "name": "Obtener Operaciones de Trading",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/accounts/activities/operations?start_date=2024-01-01&end_date=2024-12-31&country=all&state=all",
              "host": ["{{base_url}}"],
              "path": ["broker", "accounts", "activities", "operations"],
              "query": [
                {
                  "key": "start_date",
                  "value": "2024-01-01",
                  "description": "Fecha de inicio (YYYY-MM-DD) - requerido"
                },
                {
                  "key": "end_date",
                  "value": "2024-12-31",
                  "description": "Fecha de fin (YYYY-MM-DD) - requerido"
                },
                {
                  "key": "country",
                  "value": "all",
                  "description": "Filtro de país: all, AR, US"
                },
                {
                  "key": "state",
                  "value": "all",
                  "description": "Estado: all, finished, pending"
                },
                {
                  "key": "transaction_type",
                  "value": "",
                  "description": "Tipo: purchase, sale, subscription, redemption, repo, etc.",
                  "disabled": true
                },
                {
                  "key": "symbol",
                  "value": "",
                  "description": "Símbolo del asset",
                  "disabled": true
                }
              ]
            },
            "description": "Obtener todas las operaciones de trading (compras, ventas, suscripciones, etc.)"
          }
        }
      ]
    },
    {
      "name": "Assets",
      "item": [
        {
          "name": "Obtener Detalles del Asset",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/assets/GGAL?market=BCBA",
              "host": ["{{base_url}}"],
              "path": ["broker", "assets", "GGAL"],
              "query": [
                {
                  "key": "market",
                  "value": "BCBA",
                  "description": "Mercado: BCBA, NYSE, NASDAQ"
                }
              ]
            },
            "description": "Obtener información detallada sobre un asset específico"
          }
        },
        {
          "name": "Obtener Tipos de Assets",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/assets/types?country=AR",
              "host": ["{{base_url}}"],
              "path": ["broker", "assets", "types"],
              "query": [
                {
                  "key": "country",
                  "value": "AR",
                  "description": "Mercado del país: AR o US"
                }
              ]
            },
            "description": "Obtener todos los tipos de assets disponibles para un mercado"
          }
        },
        {
          "name": "Obtener Paneles de Trading",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/assets/panels?country=AR&asset_type=acciones",
              "host": ["{{base_url}}"],
              "path": ["broker", "assets", "panels"],
              "query": [
                {
                  "key": "country",
                  "value": "AR",
                  "description": "Mercado del país: AR o US"
                },
                {
                  "key": "asset_type",
                  "value": "acciones",
                  "description": "Tipo de asset (obtenido de /assets/types)"
                }
              ]
            },
            "description": "Obtener paneles de trading disponibles para un tipo de asset"
          }
        }
      ]
    },
    {
      "name": "Datos de Mercado",
      "item": [
        {
          "name": "Obtener Cotización",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/GGAL/quote?market=BCBA&term=T1",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "GGAL", "quote"],
              "query": [
                {
                  "key": "market",
                  "value": "BCBA",
                  "description": "Mercado: BCBA, NYSE, NASDAQ"
                },
                {
                  "key": "term",
                  "value": "T1",
                  "description": "Plazo: T0 (mismo día) o T1 (día siguiente)"
                }
              ]
            },
            "description": "Obtener cotización en tiempo real para un asset"
          }
        },
        {
          "name": "Obtener Order Book",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/GGAL/depth?market=BCBA&term=T1",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "GGAL", "depth"],
              "query": [
                {
                  "key": "market",
                  "value": "BCBA",
                  "description": "Mercado: BCBA, NYSE, NASDAQ"
                },
                {
                  "key": "term",
                  "value": "T1",
                  "description": "Plazo: T0 o T1"
                }
              ]
            },
            "description": "Obtener profundidad de mercado (bids y asks)"
          }
        },
        {
          "name": "Screener de Mercado",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/screener?country=AR&asset_type=acciones&panel=merval&term=T1",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "screener"],
              "query": [
                {
                  "key": "country",
                  "value": "AR",
                  "description": "País: AR o US"
                },
                {
                  "key": "asset_type",
                  "value": "acciones",
                  "description": "Tipo de asset"
                },
                {
                  "key": "panel",
                  "value": "merval",
                  "description": "Panel de trading"
                },
                {
                  "key": "term",
                  "value": "T1",
                  "description": "Plazo: T0 o T1"
                }
              ]
            },
            "description": "Navegar múltiples assets a la vez filtrados por país, tipo y panel"
          }
        },
        {
          "name": "Obtener Cadena de Opciones",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/GGAL/options?market=BCBA",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "GGAL", "options"],
              "query": [
                {
                  "key": "market",
                  "value": "BCBA",
                  "description": "Mercado: BCBA, NYSE, NASDAQ"
                }
              ]
            },
            "description": "Obtener todos los contratos de opciones para un activo subyacente"
          }
        },
        {
          "name": "Obtener Plazos de Caución",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/repos/terms?currency=ARS",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "repos", "terms"],
              "query": [
                {
                  "key": "currency",
                  "value": "ARS",
                  "description": "Moneda: ARS o USD"
                }
              ]
            },
            "description": "Obtener plazos disponibles para inversión a plazo fijo (caución)"
          }
        },
        {
          "name": "Obtener Order Book de Cauciones",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/market-data/repos/quotes?term_id=1&currency=ARS",
              "host": ["{{base_url}}"],
              "path": ["broker", "market-data", "repos", "quotes"],
              "query": [
                {
                  "key": "term_id",
                  "value": "1",
                  "description": "ID del plazo (de /repos/terms)"
                },
                {
                  "key": "currency",
                  "value": "ARS",
                  "description": "Moneda: ARS o USD"
                }
              ]
            },
            "description": "Obtener tasas disponibles para un plazo de caución"
          }
        }
      ]
    },
    {
      "name": "Órdenes",
      "item": [
        {
          "name": "Crear Orden",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "x-idempotency-key",
                "value": "{{$guid}}",
                "description": "Clave única para evitar duplicados",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"symbol\": \"GGAL\",\n  \"market_id\": \"bcba\",\n  \"side\": \"buy\",\n  \"order_type\": \"limit\",\n  \"quantity\": 100,\n  \"limit_price\": 1500,\n  \"due_date\": \"2024-12-31\",\n  \"settlement_term\": \"t1\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/broker/orders",
              "host": ["{{base_url}}"],
              "path": ["broker", "orders"]
            },
            "description": "Colocar una nueva orden de compra o venta. Usar quantity O notional, no ambos."
          }
        },
        {
          "name": "Estimar Costos de Orden",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"symbol\": \"GGAL\",\n  \"market_id\": \"bcba\",\n  \"side\": \"buy\",\n  \"order_type\": \"limit\",\n  \"quantity\": 100,\n  \"limit_price\": 1500,\n  \"due_date\": \"2024-12-31\",\n  \"settlement_term\": \"t1\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/broker/orders/estimate",
              "host": ["{{base_url}}"],
              "path": ["broker", "orders", "estimate"]
            },
            "description": "Previsualizar comisiones y cargos antes de colocar una orden"
          }
        },
        {
          "name": "Cancelar Orden",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/orders/:order_id",
              "host": ["{{base_url}}"],
              "path": ["broker", "orders", ":order_id"],
              "variable": [
                {
                  "key": "order_id",
                  "value": "123456",
                  "description": "ID de la orden a cancelar"
                }
              ]
            },
            "description": "Cancelar una orden pendiente o en progreso"
          }
        }
      ]
    },
    {
      "name": "Cauciones",
      "item": [
        {
          "name": "Estimar Costos de Caución",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"term_id\": 1,\n  \"currency\": \"ARS\",\n  \"rate\": 40.5,\n  \"amount\": 100000,\n  \"price_type\": \"limit\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/broker/repos/estimate",
              "host": ["{{base_url}}"],
              "path": ["broker", "repos", "estimate"]
            },
            "description": "Previsualizar comisiones e impuestos para una caución"
          }
        },
        {
          "name": "Crear Caución",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"term_id\": 1,\n  \"currency\": \"ARS\",\n  \"rate\": 40.5,\n  \"amount\": 100000,\n  \"price_type\": \"limit\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/broker/repos",
              "host": ["{{base_url}}"],
              "path": ["broker", "repos"]
            },
            "description": "Crear una nueva orden de caución (inversión a plazo fijo)"
          }
        },
        {
          "name": "Cancelar Caución",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/broker/repos/:order_id",
              "host": ["{{base_url}}"],
              "path": ["broker", "repos", ":order_id"],
              "variable": [
                {
                  "key": "order_id",
                  "value": "123456",
                  "description": "ID de la orden a cancelar"
                }
              ]
            },
            "description": "Cancelar una orden de caución pendiente"
          }
        }
      ]
    },
    {
      "name": "Crypto - Saldos",
      "item": [
        {
          "name": "Obtener Saldos Crypto",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/balances",
              "host": ["{{base_url}}"],
              "path": ["crypto", "balances"]
            },
            "description": "Obtener resumen completo del portfolio de criptomonedas"
          }
        }
      ]
    },
    {
      "name": "Crypto - Precios",
      "item": [
        {
          "name": "Obtener Todos los Precios",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/market-data/quotes",
              "host": ["{{base_url}}"],
              "path": ["crypto", "market-data", "quotes"]
            },
            "description": "Obtener precios actuales para todas las criptomonedas"
          }
        },
        {
          "name": "Obtener Precio por Símbolo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/market-data/quotes/btc",
              "host": ["{{base_url}}"],
              "path": ["crypto", "market-data", "quotes", "btc"]
            },
            "description": "Obtener precio de una criptomoneda específica en ARS"
          }
        },
        {
          "name": "Obtener Historial de Precios",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/market-data/btc/history?period=daily",
              "host": ["{{base_url}}"],
              "path": ["crypto", "market-data", "btc", "history"],
              "query": [
                {
                  "key": "period",
                  "value": "daily",
                  "description": "Período: daily, monthly, annual"
                }
              ]
            },
            "description": "Obtener datos históricos de precio para una criptomoneda"
          }
        }
      ]
    },
    {
      "name": "Crypto - Trading",
      "item": [
        {
          "name": "Obtener Cotización de Compra",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": 1,\n  \"amount\": 10000\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/orders/quote",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "quote"]
            },
            "description": "Obtener cotización para comprar crypto. La cotización expira rápidamente."
          }
        },
        {
          "name": "Obtener Cotización de Venta",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": 1,\n  \"qty\": 0.001\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/orders/quote/sell",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "quote", "sell"]
            },
            "description": "Obtener cotización para vender crypto. Usar qty O amount, no ambos."
          }
        },
        {
          "name": "Ejecutar Compra con Cotización",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/orders/buy/:quote_id",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "buy", ":quote_id"],
              "variable": [
                {
                  "key": "quote_id",
                  "value": "uuid-de-cotizacion",
                  "description": "ID de cotización de POST /orders/quote"
                }
              ]
            },
            "description": "Ejecutar compra usando una cotización previamente obtenida"
          }
        },
        {
          "name": "Comprar Crypto (Un Paso)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": 1,\n  \"amount\": 10000\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/orders/buy",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "buy"]
            },
            "description": "Comprar crypto en un solo paso (cotiza y ejecuta automáticamente)"
          }
        },
        {
          "name": "Ejecutar Venta con Cotización",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/orders/sell/:quote_id",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "sell", ":quote_id"],
              "variable": [
                {
                  "key": "quote_id",
                  "value": "uuid-de-cotizacion",
                  "description": "ID de cotización de POST /orders/quote/sell"
                }
              ]
            },
            "description": "Ejecutar venta usando una cotización previamente obtenida"
          }
        },
        {
          "name": "Vender Crypto (Un Paso)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": 1,\n  \"qty\": 0.001\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/orders/sell",
              "host": ["{{base_url}}"],
              "path": ["crypto", "orders", "sell"]
            },
            "description": "Vender crypto en un solo paso. Usar qty O amount, no ambos."
          }
        }
      ]
    },
    {
      "name": "Crypto - Historial",
      "item": [
        {
          "name": "Obtener Movimientos de Wallet",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/movements?start_date=2024-01-01&end_date=2024-12-31&page_size=20&page_number=1",
              "host": ["{{base_url}}"],
              "path": ["crypto", "movements"],
              "query": [
                {
                  "key": "start_date",
                  "value": "2024-01-01",
                  "description": "Fecha de inicio (YYYY-MM-DD)"
                },
                {
                  "key": "end_date",
                  "value": "2024-12-31",
                  "description": "Fecha de fin (YYYY-MM-DD)"
                },
                {
                  "key": "page_size",
                  "value": "20",
                  "description": "Resultados por página"
                },
                {
                  "key": "page_number",
                  "value": "1",
                  "description": "Número de página"
                }
              ]
            },
            "description": "Obtener historial de depósitos, retiros y transferencias"
          }
        },
        {
          "name": "Obtener Operaciones de Trading",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/operations?start_date=2024-01-01&end_date=2024-12-31&page_size=20&page_number=1",
              "host": ["{{base_url}}"],
              "path": ["crypto", "operations"],
              "query": [
                {
                  "key": "start_date",
                  "value": "2024-01-01",
                  "description": "Fecha de inicio (YYYY-MM-DD)"
                },
                {
                  "key": "end_date",
                  "value": "2024-12-31",
                  "description": "Fecha de fin (YYYY-MM-DD)"
                },
                {
                  "key": "page_size",
                  "value": "20",
                  "description": "Resultados por página"
                },
                {
                  "key": "page_number",
                  "value": "1",
                  "description": "Número de página"
                }
              ]
            },
            "description": "Obtener historial de compras y ventas de crypto"
          }
        }
      ]
    }
  ]
}
