{
  "openapi": "3.1.0",
  "info": {
    "title": "brapi - API do Mercado Financeiro Brasileiro",
    "version": "3.0.0",
    "description": "Acesso instantâneo a dados do mercado financeiro brasileiro e internacional.\n\n**Recursos Principais:**\n\n*   **Cotações:** Obtenha valores de cotação e históricos para ações brasileiras, fundos imobiliários (FIIs), BDRs, índices e ETFs.\n*   **Criptomoedas:** Consulte cotações e dados históricos de diversas criptomoedas em várias moedas fiduciárias.\n*   **Moedas:** Acesse taxas de câmbio entre diferentes moedas.\n*   **Dados Fundamentalistas:** Obtenha dados financeiros detalhados de empresas listadas (requer módulos específicos).\n*   **Dividendos:** Consulte informações sobre pagamentos de dividendos e JCP.\n*   **Inflação:** Acesse índices de inflação históricos para diferentes países.\n\n**SDKs Oficiais:**\n\nRecomendamos o uso de nossas SDKs oficiais para integração mais rápida e robusta:\n\n*   **TypeScript/JavaScript:** npm install brapi\n    *   Tipos completos com IntelliSense\n    *   Suporte a Node.js e navegador\n    *   Retry automático e tratamento de erros tipado\n    *   GitHub: https://github.com/brapi-dev/brapi-typescript\n\n*   **Python:** pip install brapi\n    *   Suporte síncrono e assíncrono (AsyncBrapi)\n    *   Type hints completos com Pydantic\n    *   Compatível com Python 3.8+\n    *   GitHub: https://github.com/brapi-dev/brapi-python\n\n**Vantagens das SDKs:**\n*   60% menos código comparado com requisições manuais\n*   Autenticação automática e tratamento de erros\n*   Retry inteligente com backoff exponencial\n*   Validação de tipos e autocomplete\n*   Documentação integrada no editor\n\nUtilize esta API para integrar dados financeiros robustos em suas aplicações, dashboards ou análises.\n\n**Website Oficial:** https://brapi.dev\n**Documentação das SDKs:** https://brapi.dev/docs/sdks",
    "contact": {
      "name": "brapi",
      "url": "https://brapi.dev",
      "email": "contato@brapi.dev"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    }
  },
  "servers": [
    {
      "url": "https://brapi.dev",
      "description": "Servidor principal da API brapi"
    },
    {
      "url": "http://localhost:3001",
      "description": "Servidor local para desenvolvimento"
    }
  ],
  "tags": [
    {
      "name": "Cotações",
      "description": "Consulte informações detalhadas sobre ações, BDRs, ETFs e índices brasileiros. Obtenha preços em tempo real, dados fundamentalistas, históricos e dividendos."
    },
    {
      "name": "Fundos Imobiliários",
      "description": "Acesse dados completos de FIIs: cotações, indicadores fundamentalistas (P/VP, DY), relatórios gerenciais e histórico de proventos."
    },
    {
      "name": "Opções",
      "description": "Consulte contratos, cadeias EOD negociadas e histórico de opções."
    },
    {
      "name": "Câmbio",
      "description": "Monitore taxas de câmbio entre moedas fiduciárias de todo o mundo, com atualizações frequentes e dados históricos."
    },
    {
      "name": "Macroeconomia",
      "description": "Acompanhe os principais indicadores macroeconômicos do Brasil, incluindo inflação (IPCA, IGP-M), Taxa Selic, agregados monetários e atividade."
    },
    {
      "name": "Criptomoedas",
      "description": "Obtenha cotações em tempo real e dados históricos de criptomoedas, disponíveis em diversas moedas de referência."
    },
    {
      "name": "Conta",
      "description": "Dados da conta autenticada, como plano atual e uso da janela vigente."
    },
    {
      "name": "Utilitários",
      "description": "Ferramentas auxiliares para descobrir ativos disponíveis e verificar a saúde da API."
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Token de API obtido no dashboard em brapi.dev/dashboard"
      }
    },
    "schemas": {
      "DatabaseHealth": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "error"
            ]
          },
          "latencyMs": {
            "type": "number",
            "minimum": 0
          },
          "error": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "example": {
          "status": "ok",
          "latencyMs": 1
        }
      },
      "HealthResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "uptime": {
            "type": "number",
            "minimum": 0
          },
          "database": {
            "$ref": "#/components/schemas/DatabaseHealth"
          }
        },
        "required": [
          "status",
          "timestamp",
          "uptime"
        ],
        "example": {
          "status": "ok",
          "timestamp": "2026-02-08T16:25:38.608Z",
          "uptime": 866.658018047,
          "database": {
            "status": "ok",
            "latencyMs": 1
          }
        }
      },
      "AvailableResponse": {
        "type": "object",
        "properties": {
          "stocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de códigos de ações disponíveis",
            "example": [
              "PETR4",
              "VALE3",
              "ITUB4"
            ]
          },
          "indexes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de índices disponíveis",
            "example": [
              "^BVSP",
              "^IFIX",
              "^IDIV"
            ]
          }
        },
        "required": [
          "stocks",
          "indexes"
        ],
        "example": {
          "stocks": [
            "BBDC4",
            "GOLL54",
            "B3SA3",
            "ITSA4",
            "COGN3",
            "ITUB4",
            "BBAS3",
            "MGLU3",
            "VALE3",
            "PETR4"
          ],
          "indexes": [
            "^BVSP",
            "^GSPC"
          ]
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "message": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        },
        "required": [
          "error",
          "message"
        ],
        "description": "Erro interno do servidor",
        "example": {
          "error": true,
          "message": "Erro interno do servidor",
          "code": "INTERNAL_SERVER_ERROR"
        }
      },
      "CryptoCoinSimple": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "currencyRateFromUSD": {
            "type": "number"
          },
          "coinName": {
            "type": "string"
          },
          "coinImageUrl": {
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "regularMarketChange": {
            "type": "number"
          },
          "regularMarketPrice": {
            "type": "number"
          },
          "regularMarketChangePercent": {
            "type": "number"
          },
          "regularMarketDayLow": {
            "type": "number"
          },
          "regularMarketDayHigh": {
            "type": "number"
          },
          "regularMarketDayRange": {
            "type": "string"
          },
          "regularMarketVolume": {
            "type": "number"
          },
          "marketCap": {
            "type": "number"
          },
          "regularMarketTime": {
            "type": "string"
          },
          "usedInterval": {
            "type": "string"
          },
          "usedRange": {
            "type": "string"
          },
          "historicalDataPrice": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "integer"
                },
                "open": {
                  "type": "number",
                  "nullable": true
                },
                "high": {
                  "type": "number",
                  "nullable": true
                },
                "low": {
                  "type": "number",
                  "nullable": true
                },
                "close": {
                  "type": "number",
                  "nullable": true
                },
                "volume": {
                  "type": "number",
                  "nullable": true
                },
                "adjustedClose": {
                  "type": "number",
                  "nullable": true
                }
              },
              "required": [
                "date",
                "open",
                "high",
                "low",
                "close",
                "volume",
                "adjustedClose"
              ]
            }
          },
          "validRanges": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "validIntervals": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "currency",
          "currencyRateFromUSD",
          "coinName",
          "coin",
          "regularMarketChange",
          "regularMarketPrice",
          "regularMarketChangePercent",
          "regularMarketDayLow",
          "regularMarketDayHigh",
          "regularMarketDayRange",
          "regularMarketVolume",
          "marketCap",
          "regularMarketTime"
        ]
      },
      "CryptoResponseSimple": {
        "type": "object",
        "properties": {
          "coins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoCoinSimple"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "coins",
          "requestedAt",
          "took"
        ],
        "example": {
          "coins": [
            {
              "currency": "BRL",
              "currencyRateFromUSD": 5.2159,
              "coinName": "Bitcoin",
              "coinImageUrl": "https://cdn.jsdelivr.net/gh/spothq/cryptocurrency-icons@master/svg/color/btc.svg",
              "coin": "BTC",
              "regularMarketChange": 9553.84,
              "regularMarketPrice": 371028.28,
              "regularMarketChangePercent": 2.64,
              "regularMarketDayLow": 359613.69,
              "regularMarketDayHigh": 372616.12,
              "regularMarketDayRange": "359613.69 - 372616.12",
              "regularMarketVolume": 199263021357.47,
              "marketCap": 0,
              "regularMarketTime": "2026-02-08T16:24:00.000Z"
            }
          ],
          "requestedAt": "2026-02-08T16:26:22.155Z",
          "took": 350
        }
      },
      "CryptoAvailableResponse": {
        "type": "object",
        "properties": {
          "coins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "coins"
        ],
        "example": {
          "coins": [
            "BTC",
            "ETH",
            "ADA",
            "BNB",
            "USDT",
            "XRP",
            "DOGE",
            "SOL",
            "USDC",
            "DOT1",
            "UNI3",
            "BCH",
            "LTC",
            "LINK",
            "MATIC",
            "AVAX"
          ]
        }
      },
      "CurrencyQuoteSimple": {
        "type": "object",
        "properties": {
          "fromCurrency": {
            "type": "string"
          },
          "toCurrency": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "high": {
            "type": "string"
          },
          "low": {
            "type": "string"
          },
          "bidVariation": {
            "type": "string"
          },
          "percentageChange": {
            "type": "string"
          },
          "bidPrice": {
            "type": "string"
          },
          "askPrice": {
            "type": "string"
          },
          "updatedAtTimestamp": {
            "type": "string"
          },
          "updatedAtDate": {
            "type": "string"
          }
        },
        "required": [
          "fromCurrency",
          "toCurrency",
          "name",
          "high",
          "low",
          "bidVariation",
          "percentageChange",
          "bidPrice",
          "askPrice",
          "updatedAtTimestamp",
          "updatedAtDate"
        ]
      },
      "CurrencyResponseSimple": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyQuoteSimple"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "currency",
          "requestedAt",
          "took"
        ],
        "example": {
          "currency": [
            {
              "fromCurrency": "USD",
              "toCurrency": "BRL",
              "name": "Dólar Americano/Real Brasileiro",
              "high": "5.343",
              "low": "5.20858",
              "bidVariation": "-0.0546",
              "percentageChange": "-1.035958",
              "bidPrice": "5.2159",
              "askPrice": "5.2189",
              "updatedAtTimestamp": "1770415348",
              "updatedAtDate": "2026-02-06 19:02:28"
            },
            {
              "fromCurrency": "EUR",
              "toCurrency": "BRL",
              "name": "Euro/Real Brasileiro",
              "high": "6.1915",
              "low": "6.15764",
              "bidVariation": "0.03386",
              "percentageChange": "0.549886",
              "bidPrice": "6.1915",
              "askPrice": "6.2415",
              "updatedAtTimestamp": "1770527911",
              "updatedAtDate": "2026-02-08 02:18:31"
            }
          ],
          "requestedAt": "2026-02-08T16:26:24.131Z",
          "took": 27
        }
      },
      "CurrencyHistoricalPairResult": {
        "type": "object",
        "properties": {
          "pair": {
            "type": "string"
          },
          "fromCurrency": {
            "type": "string"
          },
          "toCurrency": {
            "type": "string"
          },
          "observations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string",
                  "example": "2026-04-30"
                },
                "value": {
                  "type": "number",
                  "example": 4.9886
                }
              },
              "required": [
                "date",
                "value"
              ]
            }
          }
        },
        "required": [
          "pair",
          "fromCurrency",
          "toCurrency",
          "observations"
        ],
        "example": {
          "pair": "USD-BRL",
          "fromCurrency": "USD",
          "toCurrency": "BRL",
          "observations": [
            {
              "date": "2026-04-30",
              "value": 4.9886
            },
            {
              "date": "2026-04-29",
              "value": 4.9712
            },
            {
              "date": "2026-04-28",
              "value": 4.9854
            },
            {
              "date": "2026-04-25",
              "value": 5.0123
            },
            {
              "date": "2026-04-24",
              "value": 5.0218
            }
          ]
        }
      },
      "CurrencyHistoricalError": {
        "type": "object",
        "properties": {
          "pair": {
            "type": "string",
            "example": "BTC-BRL"
          },
          "code": {
            "type": "string",
            "example": "UNSUPPORTED_PAIR"
          },
          "message": {
            "type": "string",
            "example": "Par `BTC-BRL` não suportado em /historical. Use /api/v2/currency para cotações em tempo real."
          }
        },
        "required": [
          "pair",
          "code",
          "message"
        ]
      },
      "CurrencyHistoricalResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyHistoricalPairResult"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyHistoricalError"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "results",
          "requestedAt",
          "took"
        ],
        "example": {
          "results": [
            {
              "pair": "USD-BRL",
              "fromCurrency": "USD",
              "toCurrency": "BRL",
              "observations": [
                {
                  "date": "2026-04-30",
                  "value": 4.9886
                },
                {
                  "date": "2026-04-29",
                  "value": 4.9712
                },
                {
                  "date": "2026-04-28",
                  "value": 4.9854
                },
                {
                  "date": "2026-04-25",
                  "value": 5.0123
                },
                {
                  "date": "2026-04-24",
                  "value": 5.0218
                }
              ]
            },
            {
              "pair": "EUR-BRL",
              "fromCurrency": "EUR",
              "toCurrency": "BRL",
              "observations": [
                {
                  "date": "2026-04-30",
                  "value": 5.6712
                },
                {
                  "date": "2026-04-29",
                  "value": 5.6543
                },
                {
                  "date": "2026-04-28",
                  "value": 5.6789
                }
              ]
            }
          ],
          "requestedAt": "2026-04-30T12:00:00.000Z",
          "took": 14
        }
      },
      "CurrencyAvailableResponse": {
        "type": "object",
        "properties": {
          "currencies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "currency": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "currency"
              ]
            }
          }
        },
        "required": [
          "currencies"
        ],
        "example": {
          "currencies": [
            {
              "name": "USD-BRL",
              "currency": "Dólar Americano/Real Brasileiro"
            },
            {
              "name": "USD-BRLT",
              "currency": "Dólar Americano/Real Brasileiro Turismo"
            },
            {
              "name": "CAD-BRL",
              "currency": "Dólar Canadense/Real Brasileiro"
            },
            {
              "name": "EUR-BRL",
              "currency": "Euro/Real Brasileiro"
            },
            {
              "name": "GBP-BRL",
              "currency": "Libra Esterlina/Real Brasileiro"
            },
            {
              "name": "ARS-BRL",
              "currency": "Peso Argentino/Real Brasileiro"
            },
            {
              "name": "JPY-BRL",
              "currency": "Iene Japonês/Real Brasileiro"
            }
          ]
        }
      },
      "DictionaryEntry": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "calculation": {
            "type": "string",
            "nullable": true
          },
          "endpoints": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "number",
              "string",
              "boolean",
              "date",
              "object",
              "array"
            ]
          },
          "unit": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "key",
          "label",
          "description",
          "calculation",
          "endpoints",
          "category",
          "type",
          "unit"
        ],
        "example": {
          "key": "symbol",
          "label": "Símbolo",
          "description": "Código de negociação do ativo brasileiro (ex: PETR4, VALE3)",
          "calculation": null,
          "endpoints": [
            "/api/quote/{tickers}",
            "/api/quote/list"
          ],
          "category": "quote",
          "type": "string",
          "unit": null
        }
      },
      "DictionaryResponse": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DictionaryEntry"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "fields",
          "requestedAt",
          "took"
        ],
        "example": {
          "fields": [
            {
              "key": "symbol",
              "label": "Símbolo",
              "description": "Código de negociação do ativo brasileiro (ex: PETR4, VALE3)",
              "calculation": null,
              "endpoints": [
                "/api/quote/{tickers}",
                "/api/quote/list"
              ],
              "category": "quote",
              "type": "string",
              "unit": null
            },
            {
              "key": "shortName",
              "label": "Nome Curto",
              "description": "Nome resumido do ativo",
              "calculation": null,
              "endpoints": [
                "/api/quote/{tickers}",
                "/api/quote/list"
              ],
              "category": "quote",
              "type": "string",
              "unit": null
            },
            {
              "key": "longName",
              "label": "Nome Completo",
              "description": "Nome completo da empresa ou fundo",
              "calculation": null,
              "endpoints": [
                "/api/quote/{tickers}"
              ],
              "category": "quote",
              "type": "string",
              "unit": null
            }
          ],
          "requestedAt": "2026-02-08T16:25:35.000Z",
          "took": 2
        }
      },
      "FiiListItem": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "cnpj": {
            "type": "string"
          },
          "mandate": {
            "type": "string",
            "nullable": true
          },
          "segmentoAtuacao": {
            "type": "string",
            "nullable": true
          },
          "tipoGestao": {
            "type": "string",
            "nullable": true
          },
          "administratorName": {
            "type": "string",
            "nullable": true
          },
          "administratorCnpj": {
            "type": "string",
            "nullable": true
          },
          "administratorAddress": {
            "type": "string",
            "nullable": true
          },
          "administratorAddressNumber": {
            "type": "string",
            "nullable": true
          },
          "administratorAddressComplement": {
            "type": "string",
            "nullable": true
          },
          "administratorDistrict": {
            "type": "string",
            "nullable": true
          },
          "administratorCity": {
            "type": "string",
            "nullable": true
          },
          "administratorState": {
            "type": "string",
            "nullable": true
          },
          "administratorZipCode": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone1": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone2": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone3": {
            "type": "string",
            "nullable": true
          },
          "administratorWebsite": {
            "type": "string",
            "nullable": true
          },
          "administratorEmail": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "nullable": true
          },
          "navPerShare": {
            "type": "number",
            "nullable": true
          },
          "priceToNav": {
            "type": "number",
            "nullable": true
          },
          "dividendYield12m": {
            "type": "number",
            "nullable": true
          },
          "totalInvestors": {
            "type": "number",
            "nullable": true
          },
          "segmentType": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "symbol",
          "name",
          "cnpj",
          "mandate",
          "segmentoAtuacao",
          "tipoGestao",
          "administratorName",
          "administratorCnpj",
          "administratorAddress",
          "administratorAddressNumber",
          "administratorAddressComplement",
          "administratorDistrict",
          "administratorCity",
          "administratorState",
          "administratorZipCode",
          "administratorPhone1",
          "administratorPhone2",
          "administratorPhone3",
          "administratorWebsite",
          "administratorEmail",
          "price",
          "navPerShare",
          "priceToNav",
          "dividendYield12m",
          "totalInvestors",
          "segmentType"
        ]
      },
      "PaginationMeta": {
        "type": "object",
        "properties": {
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalItems": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          },
          "hasNextPage": {
            "type": "boolean"
          }
        },
        "required": [
          "page",
          "limit",
          "totalItems",
          "totalPages",
          "hasNextPage"
        ]
      },
      "FiiListResponse": {
        "type": "object",
        "properties": {
          "fiis": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiListItem"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationMeta"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "fiis",
          "pagination",
          "requestedAt",
          "took"
        ],
        "example": {
          "fiis": [
            {
              "symbol": "MXRF11",
              "name": "FII MAXI RENDA RL",
              "cnpj": "97521225000125",
              "mandate": null,
              "segmentoAtuacao": "Logística",
              "tipoGestao": "Ativa",
              "administratorName": "BTG PACTUAL SERVICOS FINANCEIROS S/A DTVM",
              "administratorCnpj": "59281253000123",
              "administratorAddress": "Praia de Botafogo",
              "administratorAddressNumber": "501",
              "administratorAddressComplement": "6 Andar",
              "administratorDistrict": "Botafogo",
              "administratorCity": "Rio de Janeiro",
              "administratorState": "RJ",
              "administratorZipCode": "22250040",
              "administratorPhone1": "55 11 3383-3102",
              "administratorPhone2": null,
              "administratorPhone3": null,
              "administratorWebsite": "www.btgpactual.com",
              "administratorEmail": "ri.fundoslistados@btgpactual.com",
              "price": 9.58,
              "navPerShare": 9.409927,
              "priceToNav": 1.0180738,
              "dividendYield12m": 0.12381,
              "totalInvestors": 1357621,
              "segmentType": "papel"
            },
            {
              "symbol": "XPML11",
              "name": "XP MALLS FII",
              "cnpj": "28757546000100",
              "mandate": null,
              "segmentoAtuacao": "Shoppings",
              "tipoGestao": "Ativa",
              "administratorName": "XP INVESTIMENTOS CCTVM S.A.",
              "administratorCnpj": "02332886000104",
              "administratorAddress": "Avenida Afranio de Melo Franco",
              "administratorAddressNumber": "290",
              "administratorAddressComplement": "Sala 606",
              "administratorDistrict": "Leblon",
              "administratorCity": "Rio de Janeiro",
              "administratorState": "RJ",
              "administratorZipCode": "22430060",
              "administratorPhone1": "55 21 3265-3700",
              "administratorPhone2": null,
              "administratorPhone3": null,
              "administratorWebsite": "www.xpi.com.br",
              "administratorEmail": "adm.fundos@xpi.com.br",
              "price": 110.37,
              "navPerShare": 108.160446,
              "priceToNav": 1.0204285,
              "dividendYield12m": 0.100098,
              "totalInvestors": 633076,
              "segmentType": "tijolo"
            }
          ],
          "pagination": {
            "page": 1,
            "limit": 2,
            "totalItems": 1545,
            "totalPages": 773,
            "hasNextPage": true
          },
          "requestedAt": "2026-02-08T16:26:20.498Z",
          "took": 4
        }
      },
      "FiiIndicator": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "asOfDate": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "nullable": true
          },
          "navPerShare": {
            "type": "number",
            "nullable": true
          },
          "priceToNav": {
            "type": "number",
            "nullable": true
          },
          "dividendYield12m": {
            "type": "number",
            "nullable": true
          },
          "dividendYield1m": {
            "type": "number",
            "nullable": true
          },
          "monthlyReturn": {
            "type": "number",
            "nullable": true
          },
          "totalInvestors": {
            "type": "number",
            "nullable": true
          },
          "sharesOutstanding": {
            "type": "number",
            "nullable": true
          },
          "equity": {
            "type": "number",
            "nullable": true
          },
          "totalAssets": {
            "type": "number",
            "nullable": true
          },
          "segmentType": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "symbol",
          "asOfDate",
          "price",
          "navPerShare",
          "priceToNav",
          "dividendYield12m",
          "dividendYield1m",
          "monthlyReturn",
          "totalInvestors",
          "sharesOutstanding",
          "equity",
          "totalAssets",
          "segmentType"
        ]
      },
      "FiiIndicatorWithInfo": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FiiIndicator"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "nullable": true
              },
              "cnpj": {
                "type": "string",
                "nullable": true
              },
              "mandate": {
                "type": "string",
                "nullable": true
              },
              "segmentoAtuacao": {
                "type": "string",
                "nullable": true
              },
              "tipoGestao": {
                "type": "string",
                "nullable": true
              },
              "administratorName": {
                "type": "string",
                "nullable": true
              },
              "administratorCnpj": {
                "type": "string",
                "nullable": true
              },
              "administratorAddress": {
                "type": "string",
                "nullable": true
              },
              "administratorAddressNumber": {
                "type": "string",
                "nullable": true
              },
              "administratorAddressComplement": {
                "type": "string",
                "nullable": true
              },
              "administratorDistrict": {
                "type": "string",
                "nullable": true
              },
              "administratorCity": {
                "type": "string",
                "nullable": true
              },
              "administratorState": {
                "type": "string",
                "nullable": true
              },
              "administratorZipCode": {
                "type": "string",
                "nullable": true
              },
              "administratorPhone1": {
                "type": "string",
                "nullable": true
              },
              "administratorPhone2": {
                "type": "string",
                "nullable": true
              },
              "administratorPhone3": {
                "type": "string",
                "nullable": true
              },
              "administratorWebsite": {
                "type": "string",
                "nullable": true
              },
              "administratorEmail": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "name",
              "cnpj",
              "mandate",
              "segmentoAtuacao",
              "tipoGestao",
              "administratorName",
              "administratorCnpj",
              "administratorAddress",
              "administratorAddressNumber",
              "administratorAddressComplement",
              "administratorDistrict",
              "administratorCity",
              "administratorState",
              "administratorZipCode",
              "administratorPhone1",
              "administratorPhone2",
              "administratorPhone3",
              "administratorWebsite",
              "administratorEmail"
            ]
          }
        ]
      },
      "FiiIndicatorsResponse": {
        "type": "object",
        "properties": {
          "fiis": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiIndicatorWithInfo"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "fiis",
          "requestedAt",
          "took"
        ],
        "example": {
          "fiis": [
            {
              "symbol": "MXRF11",
              "asOfDate": "2025-12-01 00:00:00+00",
              "price": 9.58,
              "navPerShare": 9.409927,
              "priceToNav": 1.0180738,
              "dividendYield12m": 0.12381,
              "dividendYield1m": 0.009328,
              "monthlyReturn": 0.007876,
              "totalInvestors": 1357621,
              "sharesOutstanding": 460269540,
              "equity": 4331102700,
              "totalAssets": 4375755000,
              "segmentType": "papel",
              "name": "FII MAXI RENDA RL",
              "cnpj": "97521225000125",
              "mandate": null,
              "segmentoAtuacao": "Logística",
              "tipoGestao": "Ativa",
              "administratorName": "BTG PACTUAL SERVICOS FINANCEIROS S/A DTVM",
              "administratorCnpj": "59281253000123",
              "administratorAddress": "Praia de Botafogo",
              "administratorAddressNumber": "501",
              "administratorAddressComplement": "6 Andar",
              "administratorDistrict": "Botafogo",
              "administratorCity": "Rio de Janeiro",
              "administratorState": "RJ",
              "administratorZipCode": "22250040",
              "administratorPhone1": "55 11 3383-3102",
              "administratorPhone2": null,
              "administratorPhone3": null,
              "administratorWebsite": "www.btgpactual.com",
              "administratorEmail": "ri.fundoslistados@btgpactual.com"
            }
          ],
          "requestedAt": "2026-02-08T16:25:18.077Z",
          "took": 47
        }
      },
      "FiiIndicatorHistoryEntry": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "referenceDate": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "nullable": true
          },
          "navPerShare": {
            "type": "number",
            "nullable": true
          },
          "priceToNav": {
            "type": "number",
            "nullable": true
          },
          "dividendYield12m": {
            "type": "number",
            "nullable": true
          },
          "dividendYield1m": {
            "type": "number",
            "nullable": true
          },
          "monthlyReturn": {
            "type": "number",
            "nullable": true
          },
          "totalInvestors": {
            "type": "number",
            "nullable": true
          },
          "sharesOutstanding": {
            "type": "number",
            "nullable": true
          },
          "equity": {
            "type": "number",
            "nullable": true
          },
          "totalAssets": {
            "type": "number",
            "nullable": true
          },
          "segmentType": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "symbol",
          "referenceDate",
          "price",
          "navPerShare",
          "priceToNav",
          "dividendYield12m",
          "dividendYield1m",
          "monthlyReturn",
          "totalInvestors",
          "sharesOutstanding",
          "equity",
          "totalAssets",
          "segmentType"
        ]
      },
      "FiiIndicatorsHistoryResponse": {
        "type": "object",
        "properties": {
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiIndicatorHistoryEntry"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "history",
          "requestedAt",
          "took"
        ],
        "example": {
          "history": [
            {
              "symbol": "MXRF11",
              "referenceDate": "2025-12-01 00:00:00+00",
              "price": 9.411791,
              "navPerShare": 9.409927,
              "priceToNav": 1.0001981,
              "dividendYield12m": 0.12381,
              "dividendYield1m": 0.009328,
              "monthlyReturn": 0.007876,
              "totalInvestors": 1357621,
              "sharesOutstanding": 460269540,
              "equity": 4331102700,
              "totalAssets": 4375755000,
              "segmentType": "papel"
            },
            {
              "symbol": "MXRF11",
              "referenceDate": "2025-11-01 00:00:00+00",
              "price": 9.463164,
              "navPerShare": 9.42361,
              "priceToNav": 1.0041974,
              "dividendYield12m": 0.125273,
              "dividendYield1m": 0.010665,
              "monthlyReturn": 0.010727,
              "totalInvestors": 1339326,
              "sharesOutstanding": 460269540,
              "equity": 4337401000,
              "totalAssets": 4386052600,
              "segmentType": "papel"
            }
          ],
          "requestedAt": "2026-02-08T16:25:20.123Z",
          "took": 12
        }
      },
      "FiiHistoricalPrice": {
        "type": "object",
        "properties": {
          "date": {
            "type": "integer"
          },
          "open": {
            "type": "number",
            "nullable": true
          },
          "high": {
            "type": "number",
            "nullable": true
          },
          "low": {
            "type": "number",
            "nullable": true
          },
          "close": {
            "type": "number",
            "nullable": true
          },
          "volume": {
            "type": "number",
            "nullable": true
          },
          "adjustedClose": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "date",
          "open",
          "high",
          "low",
          "close",
          "volume",
          "adjustedClose"
        ]
      },
      "FiiHistoricalSeries": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "historicalDataPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiHistoricalPrice"
            }
          }
        },
        "required": [
          "symbol",
          "historicalDataPrice"
        ]
      },
      "FiiHistoricalResponse": {
        "type": "object",
        "properties": {
          "fiis": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiHistoricalSeries"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "fiis",
          "requestedAt",
          "took"
        ],
        "example": {
          "fiis": [
            {
              "symbol": "MXRF11",
              "historicalDataPrice": [
                {
                  "date": 1736478000,
                  "open": 9.33,
                  "high": 9.37,
                  "low": 9.3,
                  "close": 9.35,
                  "volume": 1027483,
                  "adjustedClose": 8.3454485
                },
                {
                  "date": 1736391600,
                  "open": 9.42,
                  "high": 9.44,
                  "low": 9.29,
                  "close": 9.33,
                  "volume": 1203345,
                  "adjustedClose": 8.327598
                },
                {
                  "date": 1736305200,
                  "open": 9.44,
                  "high": 9.47,
                  "low": 9.34,
                  "close": 9.42,
                  "volume": 1558708,
                  "adjustedClose": 8.407928
                }
              ]
            }
          ],
          "requestedAt": "2026-02-08T16:25:22.456Z",
          "took": 8
        }
      },
      "FiiMonthlyReport": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "cnpj": {
            "type": "string"
          },
          "administratorName": {
            "type": "string",
            "nullable": true
          },
          "administratorCnpj": {
            "type": "string",
            "nullable": true
          },
          "administratorAddress": {
            "type": "string",
            "nullable": true
          },
          "administratorAddressNumber": {
            "type": "string",
            "nullable": true
          },
          "administratorAddressComplement": {
            "type": "string",
            "nullable": true
          },
          "administratorDistrict": {
            "type": "string",
            "nullable": true
          },
          "administratorCity": {
            "type": "string",
            "nullable": true
          },
          "administratorState": {
            "type": "string",
            "nullable": true
          },
          "administratorZipCode": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone1": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone2": {
            "type": "string",
            "nullable": true
          },
          "administratorPhone3": {
            "type": "string",
            "nullable": true
          },
          "administratorWebsite": {
            "type": "string",
            "nullable": true
          },
          "administratorEmail": {
            "type": "string",
            "nullable": true
          },
          "referenceDate": {
            "type": "string"
          },
          "version": {
            "type": "number"
          },
          "totalAssets": {
            "type": "number",
            "nullable": true
          },
          "equity": {
            "type": "number",
            "nullable": true
          },
          "sharesOutstanding": {
            "type": "number",
            "nullable": true
          },
          "navPerShare": {
            "type": "number",
            "nullable": true
          },
          "adminFeeRate": {
            "type": "number",
            "nullable": true
          },
          "monthlyReturn": {
            "type": "number",
            "nullable": true
          },
          "monthlyPatrimonialReturn": {
            "type": "number",
            "nullable": true
          },
          "monthlyDividendYield": {
            "type": "number",
            "nullable": true
          },
          "amortizationRate": {
            "type": "number",
            "nullable": true
          },
          "totalInvestors": {
            "type": "number",
            "nullable": true
          },
          "cash": {
            "type": "number",
            "nullable": true
          },
          "governmentBonds": {
            "type": "number",
            "nullable": true
          },
          "privateBonds": {
            "type": "number",
            "nullable": true
          },
          "fixedIncomeFunds": {
            "type": "number",
            "nullable": true
          },
          "totalInvested": {
            "type": "number",
            "nullable": true
          },
          "realEstateAssets": {
            "type": "number",
            "nullable": true
          },
          "cri": {
            "type": "number",
            "nullable": true
          },
          "lci": {
            "type": "number",
            "nullable": true
          },
          "fiiHoldings": {
            "type": "number",
            "nullable": true
          },
          "receivables": {
            "type": "number",
            "nullable": true
          },
          "rentalReceivables": {
            "type": "number",
            "nullable": true
          },
          "distributionsPayable": {
            "type": "number",
            "nullable": true
          },
          "adminFeesPayable": {
            "type": "number",
            "nullable": true
          },
          "realEstateObligations": {
            "type": "number",
            "nullable": true
          },
          "totalLiabilities": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "symbol",
          "name",
          "cnpj",
          "administratorName",
          "administratorCnpj",
          "administratorAddress",
          "administratorAddressNumber",
          "administratorAddressComplement",
          "administratorDistrict",
          "administratorCity",
          "administratorState",
          "administratorZipCode",
          "administratorPhone1",
          "administratorPhone2",
          "administratorPhone3",
          "administratorWebsite",
          "administratorEmail",
          "referenceDate",
          "version",
          "totalAssets",
          "equity",
          "sharesOutstanding",
          "navPerShare",
          "adminFeeRate",
          "monthlyReturn",
          "monthlyPatrimonialReturn",
          "monthlyDividendYield",
          "amortizationRate",
          "totalInvestors",
          "cash",
          "governmentBonds",
          "privateBonds",
          "fixedIncomeFunds",
          "totalInvested",
          "realEstateAssets",
          "cri",
          "lci",
          "fiiHoldings",
          "receivables",
          "rentalReceivables",
          "distributionsPayable",
          "adminFeesPayable",
          "realEstateObligations",
          "totalLiabilities"
        ]
      },
      "FiiReportsResponse": {
        "type": "object",
        "properties": {
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiMonthlyReport"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationMeta"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "reports",
          "pagination",
          "requestedAt",
          "took"
        ],
        "example": {
          "reports": [
            {
              "symbol": "MXRF11",
              "name": null,
              "cnpj": "97521225000125",
              "administratorName": "BTG PACTUAL SERVICOS FINANCEIROS S/A DTVM",
              "administratorCnpj": "59281253000123",
              "administratorAddress": "Praia de Botafogo",
              "administratorAddressNumber": "501",
              "administratorAddressComplement": "6 Andar",
              "administratorDistrict": "Botafogo",
              "administratorCity": "Rio de Janeiro",
              "administratorState": "RJ",
              "administratorZipCode": "22250040",
              "administratorPhone1": "55 11 3383-3102",
              "administratorPhone2": null,
              "administratorPhone3": null,
              "administratorWebsite": "www.btgpactual.com",
              "administratorEmail": "ri.fundoslistados@btgpactual.com",
              "referenceDate": "2025-12-01 00:00:00+00",
              "version": 2,
              "totalAssets": 4375755000,
              "equity": 4331102700,
              "sharesOutstanding": 460269540,
              "navPerShare": 9.409927,
              "adminFeeRate": 0.000753,
              "monthlyReturn": 0.007876,
              "monthlyPatrimonialReturn": -0.001452,
              "monthlyDividendYield": 0.009328,
              "amortizationRate": 0,
              "totalInvestors": 1357621,
              "cash": 0,
              "governmentBonds": 0,
              "privateBonds": 0,
              "fixedIncomeFunds": 24506374,
              "totalInvested": 4326274600,
              "realEstateAssets": 9147060,
              "cri": 3354012400,
              "lci": 0,
              "fiiHoldings": 538337660,
              "receivables": 24973770,
              "rentalReceivables": 0,
              "distributionsPayable": 41155660,
              "adminFeesPayable": 3260833.2,
              "realEstateObligations": 0,
              "totalLiabilities": 44652356
            }
          ],
          "pagination": {
            "page": 1,
            "limit": 1,
            "totalItems": 10,
            "totalPages": 10,
            "hasNextPage": true
          },
          "requestedAt": "2026-02-08T16:25:27.115Z",
          "took": 5
        }
      },
      "FiiDividend": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "approvedOn": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string"
          },
          "lastDatePrior": {
            "type": "string"
          },
          "paymentDate": {
            "type": "string"
          },
          "rate": {
            "type": "number"
          },
          "relatedTo": {
            "type": "string",
            "nullable": true
          },
          "isinCode": {
            "type": "string",
            "nullable": true
          },
          "remarks": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "symbol",
          "approvedOn",
          "label",
          "lastDatePrior",
          "paymentDate",
          "rate",
          "relatedTo",
          "isinCode",
          "remarks"
        ]
      },
      "FiiDividendsResponse": {
        "type": "object",
        "properties": {
          "dividends": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FiiDividend"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "dividends",
          "requestedAt",
          "took"
        ],
        "example": {
          "dividends": [
            {
              "symbol": "MXRF11",
              "approvedOn": null,
              "label": "RENDIMENTO",
              "lastDatePrior": "2025-12-01 00:00:00+00",
              "paymentDate": "2025-12-01 00:00:00+00",
              "rate": 0.08941643,
              "relatedTo": null,
              "isinCode": null,
              "remarks": "backfilled from FiiMonthlyReports"
            },
            {
              "symbol": "MXRF11",
              "approvedOn": null,
              "label": "RENDIMENTO",
              "lastDatePrior": "2025-11-01 00:00:00+00",
              "paymentDate": "2025-11-01 00:00:00+00",
              "rate": 0.098144606,
              "relatedTo": null,
              "isinCode": null,
              "remarks": "backfilled from FiiMonthlyReports"
            }
          ],
          "requestedAt": "2026-02-08T16:25:19.026Z",
          "took": 23
        }
      },
      "InflationEntrySimple": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "Variação percentual do IPCA no mês",
            "example": "4.26"
          },
          "epochDate": {
            "type": "number"
          }
        },
        "required": [
          "date",
          "value",
          "epochDate"
        ]
      },
      "InflationResponseSimple": {
        "type": "object",
        "properties": {
          "inflation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InflationEntrySimple"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "inflation",
          "requestedAt",
          "took"
        ],
        "example": {
          "inflation": [
            {
              "date": "01/12/2025",
              "value": "4.26",
              "epochDate": 1764558000000
            },
            {
              "date": "01/11/2025",
              "value": "4.46",
              "epochDate": 1761966000000
            },
            {
              "date": "01/10/2025",
              "value": "4.68",
              "epochDate": 1759287600000
            }
          ],
          "requestedAt": "2026-02-08T16:26:26.123Z",
          "took": 138
        }
      },
      "InflationAvailableResponse": {
        "type": "object",
        "properties": {
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "type": "string"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          }
        },
        "required": [
          "countries",
          "message",
          "requestedAt"
        ],
        "example": {
          "countries": [
            "brazil"
          ],
          "message": "Available inflation data countries",
          "requestedAt": "2026-02-08T16:26:27.274Z"
        }
      },
      "MacroSeriesPublic": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "startDate": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "description",
          "unit",
          "frequency",
          "category",
          "startDate"
        ],
        "example": {
          "slug": "selic",
          "name": "Taxa Selic",
          "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
          "unit": "percentPerYear",
          "frequency": "daily",
          "category": "interestRate",
          "startDate": "1999-03-05"
        }
      },
      "MacroAvailableResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesPublic"
            },
            "description": "Lista de séries macroeconômicas. Quando `q` é informado, vem ordenada por relevância (slug > alias > nome > descrição)."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Todas as categorias do catálogo. Não é afetado pelos filtros — sempre lista o universo completo de categorias para que o cliente possa montar facetas."
          },
          "count": {
            "type": "integer",
            "description": "Quantidade de séries em `results` após aplicar os filtros."
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "results",
          "categories",
          "count",
          "requestedAt",
          "took"
        ],
        "example": {
          "results": [
            {
              "slug": "selic",
              "name": "Taxa Selic",
              "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
              "unit": "percentPerYear",
              "frequency": "daily",
              "category": "interestRate",
              "startDate": "1999-03-05"
            },
            {
              "slug": "ipca12m",
              "name": "IPCA acumulado 12 meses",
              "description": "Variação acumulada em 12 meses do Índice Nacional de Preços ao Consumidor Amplo (IBGE). Indicador oficial de inflação do Brasil.",
              "unit": "percent",
              "frequency": "monthly",
              "category": "inflation",
              "startDate": "1981-01-01"
            },
            {
              "slug": "cdi",
              "name": "CDI",
              "description": "Certificado de Depósito Interbancário — taxa de juros das operações entre bancos. Principal benchmark de renda fixa no Brasil.",
              "unit": "percentPerDay",
              "frequency": "daily",
              "category": "interestRate",
              "startDate": "1986-03-06"
            }
          ],
          "categories": [
            "interestRate",
            "inflation",
            "monetary",
            "activity",
            "labor",
            "external"
          ],
          "count": 15,
          "requestedAt": "2026-04-30T12:00:00.000Z",
          "took": 4
        }
      },
      "MacroSeriesObservation": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2026-04-30"
          },
          "value": {
            "type": "number",
            "example": 14.75
          }
        },
        "required": [
          "date",
          "value"
        ]
      },
      "MacroSeriesResult": {
        "type": "object",
        "properties": {
          "series": {
            "$ref": "#/components/schemas/MacroSeriesPublic"
          },
          "observations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesObservation"
            }
          }
        },
        "required": [
          "series",
          "observations"
        ],
        "example": {
          "series": {
            "slug": "selic",
            "name": "Taxa Selic",
            "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
            "unit": "percentPerYear",
            "frequency": "daily",
            "category": "interestRate",
            "startDate": "1999-03-05"
          },
          "observations": [
            {
              "date": "2026-04-30",
              "value": 14.5
            },
            {
              "date": "2026-04-29",
              "value": 14.75
            },
            {
              "date": "2026-04-28",
              "value": 14.75
            }
          ]
        }
      },
      "MacroSeriesAliasWarning": {
        "type": "object",
        "properties": {
          "provided": {
            "type": "string"
          },
          "canonicalSlug": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "provided",
          "canonicalSlug",
          "message"
        ]
      },
      "MacroSeriesError": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "code",
          "message"
        ]
      },
      "MacroSeriesDataResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesResult"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesAliasWarning"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesError"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "results",
          "requestedAt",
          "took"
        ],
        "example": {
          "results": [
            {
              "series": {
                "slug": "selic",
                "name": "Taxa Selic",
                "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
                "unit": "percentPerYear",
                "frequency": "daily",
                "category": "interestRate",
                "startDate": "1999-03-05"
              },
              "observations": [
                {
                  "date": "2026-04-30",
                  "value": 14.5
                },
                {
                  "date": "2026-04-29",
                  "value": 14.75
                },
                {
                  "date": "2026-04-28",
                  "value": 14.75
                },
                {
                  "date": "2026-04-25",
                  "value": 14.75
                }
              ]
            },
            {
              "series": {
                "slug": "ipca12m",
                "name": "IPCA acumulado 12 meses",
                "description": "Variação acumulada em 12 meses do Índice Nacional de Preços ao Consumidor Amplo (IBGE). Indicador oficial de inflação do Brasil.",
                "unit": "percent",
                "frequency": "monthly",
                "category": "inflation",
                "startDate": "1981-01-01"
              },
              "observations": [
                {
                  "date": "2026-03-01",
                  "value": 4.14
                },
                {
                  "date": "2026-02-01",
                  "value": 3.81
                },
                {
                  "date": "2026-01-01",
                  "value": 4.44
                }
              ]
            }
          ],
          "requestedAt": "2026-04-30T12:00:00.000Z",
          "took": 23
        }
      },
      "MacroSeriesLatest": {
        "type": "object",
        "properties": {
          "series": {
            "$ref": "#/components/schemas/MacroSeriesPublic"
          },
          "latest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MacroSeriesObservation"
              },
              {
                "nullable": true
              }
            ]
          }
        },
        "required": [
          "series",
          "latest"
        ],
        "example": {
          "series": {
            "slug": "selic",
            "name": "Taxa Selic",
            "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
            "unit": "percentPerYear",
            "frequency": "daily",
            "category": "interestRate",
            "startDate": "1999-03-05"
          },
          "latest": {
            "date": "2026-04-30",
            "value": 14.5
          }
        }
      },
      "MacroSeriesLatestResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesLatest"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesAliasWarning"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MacroSeriesError"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "results",
          "requestedAt",
          "took"
        ],
        "example": {
          "results": [
            {
              "series": {
                "slug": "selic",
                "name": "Taxa Selic",
                "description": "Taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central. É a referência para todas as demais taxas de juros do país.",
                "unit": "percentPerYear",
                "frequency": "daily",
                "category": "interestRate",
                "startDate": "1999-03-05"
              },
              "latest": {
                "date": "2026-04-30",
                "value": 14.5
              }
            },
            {
              "series": {
                "slug": "ipca12m",
                "name": "IPCA acumulado 12 meses",
                "description": "Variação acumulada em 12 meses do Índice Nacional de Preços ao Consumidor Amplo (IBGE). Indicador oficial de inflação do Brasil.",
                "unit": "percent",
                "frequency": "monthly",
                "category": "inflation",
                "startDate": "1981-01-01"
              },
              "latest": {
                "date": "2026-03-01",
                "value": 4.14
              }
            },
            {
              "series": {
                "slug": "cdi",
                "name": "CDI",
                "description": "Certificado de Depósito Interbancário — taxa de juros das operações entre bancos. Principal benchmark de renda fixa no Brasil.",
                "unit": "percentPerDay",
                "frequency": "daily",
                "category": "interestRate",
                "startDate": "1986-03-06"
              },
              "latest": {
                "date": "2026-04-30",
                "value": 0.054267
              }
            }
          ],
          "requestedAt": "2026-04-30T12:00:00.000Z",
          "took": 18
        }
      },
      "OptionExpirationsResponse": {
        "type": "object",
        "properties": {
          "underlying": {
            "type": "string",
            "description": "Ativo subjacente consultado, normalizado em maiúsculas."
          },
          "tradedOnly": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Sempre `true`: a lista é montada a partir das séries negociadas."
          },
          "expirations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Datas de vencimento disponíveis, em ordem ascendente, no formato YYYY-MM-DD."
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "underlying",
          "tradedOnly",
          "expirations",
          "requestedAt",
          "took"
        ],
        "example": {
          "underlying": "PETR4",
          "tradedOnly": true,
          "expirations": [
            "2026-04-24",
            "2026-05-15",
            "2026-06-19"
          ],
          "requestedAt": "2026-04-21T12:00:00.000Z",
          "took": 4
        }
      },
      "OptionStrikesResponse": {
        "type": "object",
        "properties": {
          "underlying": {
            "type": "string",
            "description": "Ativo subjacente consultado, normalizado em maiúsculas."
          },
          "expirationDate": {
            "type": "string",
            "description": "Vencimento consultado, no formato YYYY-MM-DD."
          },
          "side": {
            "type": "string",
            "nullable": true,
            "enum": [
              "call",
              "put"
            ],
            "description": "Lado filtrado: `call`, `put` ou `null` quando não foi aplicado filtro."
          },
          "tradedOnly": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Sempre `true`: os strikes vêm apenas de séries negociadas."
          },
          "strikes": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Preços de exercício disponíveis, em ordem ascendente."
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "underlying",
          "expirationDate",
          "side",
          "tradedOnly",
          "strikes",
          "requestedAt",
          "took"
        ],
        "example": {
          "underlying": "PETR4",
          "expirationDate": "2026-05-15",
          "side": "call",
          "tradedOnly": true,
          "strikes": [
            30,
            31,
            32,
            33,
            34
          ],
          "requestedAt": "2026-04-21T12:00:00.000Z",
          "took": 4
        }
      },
      "OptionSeriesSnapshot": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Código de negociação da série (ex: PETRE370)."
          },
          "underlyingSymbol": {
            "type": "string",
            "nullable": true,
            "description": "Ativo subjacente da opção (ex: PETR4)."
          },
          "side": {
            "type": "string",
            "enum": [
              "call",
              "put"
            ],
            "description": "Tipo da opção: `call` (opção de compra) ou `put` (opção de venda)."
          },
          "market": {
            "type": "string",
            "enum": [
              "equity",
              "index"
            ],
            "description": "Mercado da opção: `equity` (ação/ETF) ou `index` (índice)."
          },
          "strike": {
            "type": "number",
            "nullable": true,
            "description": "Preço de exercício (strike) da opção."
          },
          "expirationDate": {
            "type": "string",
            "description": "Data de vencimento da série, no formato YYYY-MM-DD."
          },
          "firstTradeDate": {
            "type": "string",
            "description": "Data do primeiro pregão observado para a série (YYYY-MM-DD)."
          },
          "lastTradeDate": {
            "type": "string",
            "description": "Data do último pregão observado para a série (YYYY-MM-DD)."
          },
          "date": {
            "type": "integer",
            "description": "Data do pregão em timestamp Unix (segundos)."
          },
          "open": {
            "type": "number",
            "nullable": true,
            "description": "Preço de abertura do pregão."
          },
          "high": {
            "type": "number",
            "nullable": true,
            "description": "Máxima do pregão."
          },
          "low": {
            "type": "number",
            "nullable": true,
            "description": "Mínima do pregão."
          },
          "average": {
            "type": "number",
            "nullable": true,
            "description": "Preço médio do pregão."
          },
          "close": {
            "type": "number",
            "nullable": true,
            "description": "Preço de fechamento do pregão."
          },
          "bid": {
            "type": "number",
            "nullable": true,
            "description": "Melhor oferta de compra registrada no fechamento."
          },
          "ask": {
            "type": "number",
            "nullable": true,
            "description": "Melhor oferta de venda registrada no fechamento."
          },
          "trades": {
            "type": "number",
            "nullable": true,
            "description": "Número de negócios realizados no pregão."
          },
          "volume": {
            "type": "number",
            "nullable": true,
            "description": "Volume negociado no pregão (em contratos)."
          },
          "financialVolume": {
            "type": "number",
            "nullable": true,
            "description": "Volume financeiro negociado no pregão (em BRL)."
          }
        },
        "required": [
          "symbol",
          "underlyingSymbol",
          "side",
          "market",
          "strike",
          "expirationDate",
          "firstTradeDate",
          "lastTradeDate",
          "date",
          "open",
          "high",
          "low",
          "average",
          "close",
          "bid",
          "ask",
          "trades",
          "volume",
          "financialVolume"
        ]
      },
      "OptionSeriesResponse": {
        "type": "object",
        "properties": {
          "underlying": {
            "type": "string",
            "description": "Ativo subjacente consultado, normalizado em maiúsculas."
          },
          "expirationDate": {
            "type": "string",
            "description": "Vencimento consultado, no formato YYYY-MM-DD."
          },
          "date": {
            "type": "string",
            "description": "Data EOD efetivamente usada para buscar preço e volume, no formato YYYY-MM-DD."
          },
          "tradedOnly": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Sempre `true`: só aparecem séries que tiveram negócio no pregão selecionado."
          },
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionSeriesSnapshot"
            },
            "description": "Séries negociadas no vencimento, com metadados do contrato e OHLCV do pregão em `date`."
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "underlying",
          "expirationDate",
          "date",
          "tradedOnly",
          "series",
          "requestedAt",
          "took"
        ],
        "example": {
          "underlying": "PETR4",
          "expirationDate": "2026-05-15",
          "date": "2026-04-17",
          "tradedOnly": true,
          "series": [
            {
              "symbol": "PETRE370",
              "underlyingSymbol": "PETR4",
              "side": "call",
              "market": "equity",
              "strike": 34,
              "expirationDate": "2026-05-15",
              "firstTradeDate": "2025-12-23",
              "lastTradeDate": "2026-04-17",
              "date": 1776394800,
              "open": 11.48,
              "high": 12.6,
              "low": 11.48,
              "average": 12.25,
              "close": 12.6,
              "bid": 12.21,
              "ask": 0,
              "trades": 10,
              "volume": 11600,
              "financialVolume": 142197
            }
          ],
          "requestedAt": "2026-04-21T12:00:00.000Z",
          "took": 7
        }
      },
      "OptionPricePoint": {
        "type": "object",
        "properties": {
          "date": {
            "type": "integer",
            "description": "Data do pregão em timestamp Unix (segundos)."
          },
          "open": {
            "type": "number",
            "nullable": true,
            "description": "Preço de abertura do pregão."
          },
          "high": {
            "type": "number",
            "nullable": true,
            "description": "Máxima do pregão."
          },
          "low": {
            "type": "number",
            "nullable": true,
            "description": "Mínima do pregão."
          },
          "average": {
            "type": "number",
            "nullable": true,
            "description": "Preço médio do pregão."
          },
          "close": {
            "type": "number",
            "nullable": true,
            "description": "Preço de fechamento do pregão."
          },
          "bid": {
            "type": "number",
            "nullable": true,
            "description": "Melhor oferta de compra registrada no fechamento."
          },
          "ask": {
            "type": "number",
            "nullable": true,
            "description": "Melhor oferta de venda registrada no fechamento."
          },
          "trades": {
            "type": "number",
            "nullable": true,
            "description": "Número de negócios realizados no pregão."
          },
          "volume": {
            "type": "number",
            "nullable": true,
            "description": "Volume negociado no pregão (em contratos)."
          },
          "financialVolume": {
            "type": "number",
            "nullable": true,
            "description": "Volume financeiro negociado no pregão (em BRL)."
          }
        },
        "required": [
          "date",
          "open",
          "high",
          "low",
          "average",
          "close",
          "bid",
          "ask",
          "trades",
          "volume",
          "financialVolume"
        ]
      },
      "OptionSeries": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Código de negociação da série (ex: PETRE370)."
          },
          "underlyingSymbol": {
            "type": "string",
            "nullable": true,
            "description": "Ativo subjacente da opção (ex: PETR4)."
          },
          "side": {
            "type": "string",
            "enum": [
              "call",
              "put"
            ],
            "description": "Tipo da opção: `call` (opção de compra) ou `put` (opção de venda)."
          },
          "market": {
            "type": "string",
            "enum": [
              "equity",
              "index"
            ],
            "description": "Mercado da opção: `equity` (ação/ETF) ou `index` (índice)."
          },
          "strike": {
            "type": "number",
            "nullable": true,
            "description": "Preço de exercício (strike) da opção."
          },
          "expirationDate": {
            "type": "string",
            "description": "Data de vencimento da série, no formato YYYY-MM-DD."
          },
          "firstTradeDate": {
            "type": "string",
            "description": "Data do primeiro pregão observado para a série (YYYY-MM-DD)."
          },
          "lastTradeDate": {
            "type": "string",
            "description": "Data do último pregão observado para a série (YYYY-MM-DD)."
          }
        },
        "required": [
          "symbol",
          "underlyingSymbol",
          "side",
          "market",
          "strike",
          "expirationDate",
          "firstTradeDate",
          "lastTradeDate"
        ]
      },
      "OptionSeriesWithHistory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OptionSeries"
          },
          {
            "type": "object",
            "properties": {
              "history": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OptionPricePoint"
                },
                "description": "Pontos EOD diários da série no intervalo consultado. Cada item traz OHLCV, bid/ask, número de negócios e volume financeiro."
              }
            },
            "required": [
              "history"
            ]
          }
        ],
        "description": "Metadados da série consultada acompanhados de `history`, com um ponto OHLCV por pregão no intervalo pedido."
      },
      "OptionHistoricalResponse": {
        "type": "object",
        "properties": {
          "option": {
            "$ref": "#/components/schemas/OptionSeriesWithHistory"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "option",
          "requestedAt",
          "took"
        ],
        "example": {
          "option": {
            "symbol": "PETRE370",
            "underlyingSymbol": "PETR4",
            "side": "call",
            "market": "equity",
            "strike": 34,
            "expirationDate": "2026-05-15",
            "firstTradeDate": "2025-12-23",
            "lastTradeDate": "2026-04-17",
            "history": [
              {
                "date": 1766458800,
                "open": 1.13,
                "high": 1.13,
                "low": 1.13,
                "average": 1.13,
                "close": 1.13,
                "bid": 0,
                "ask": 1.5,
                "trades": 1,
                "volume": 100,
                "financialVolume": 113
              }
            ]
          },
          "requestedAt": "2026-04-21T12:00:00.000Z",
          "took": 8
        }
      },
      "PrimeRateEntrySimple": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "Taxa SELIC meta anualizada (% a.a.)",
            "example": "15.00"
          },
          "epochDate": {
            "type": "number"
          }
        },
        "required": [
          "date",
          "value",
          "epochDate"
        ]
      },
      "PrimeRateResponseSimple": {
        "type": "object",
        "properties": {
          "prime-rate": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrimeRateEntrySimple"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "prime-rate",
          "requestedAt",
          "took"
        ],
        "example": {
          "prime-rate": [
            {
              "date": "08/02/2026",
              "value": "15.00",
              "epochDate": 1770519600000
            },
            {
              "date": "07/02/2026",
              "value": "15.00",
              "epochDate": 1770433200000
            },
            {
              "date": "06/02/2026",
              "value": "15.00",
              "epochDate": 1770346800000
            }
          ],
          "requestedAt": "2026-02-08T16:26:28.456Z",
          "took": 92
        }
      },
      "PrimeRateAvailableResponse": {
        "type": "object",
        "properties": {
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "type": "string"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          }
        },
        "required": [
          "countries",
          "message",
          "requestedAt"
        ],
        "example": {
          "countries": [
            "brazil"
          ],
          "message": "Available prime rate data countries",
          "requestedAt": "2026-02-08T16:26:29.093Z"
        }
      },
      "QuoteListItem": {
        "type": "object",
        "properties": {
          "stock": {
            "type": "string",
            "description": "Ticker do ativo"
          },
          "name": {
            "type": "string",
            "description": "Nome da empresa"
          },
          "close": {
            "type": "number",
            "nullable": true,
            "description": "Preço de fechamento"
          },
          "change": {
            "type": "number",
            "nullable": true,
            "description": "Variação percentual"
          },
          "volume": {
            "type": "number",
            "nullable": true,
            "description": "Volume negociado"
          },
          "market_cap": {
            "type": "number",
            "nullable": true,
            "description": "Capitalização de mercado"
          },
          "logo": {
            "type": "string",
            "nullable": true,
            "description": "URL do logo"
          },
          "sector": {
            "type": "string",
            "nullable": true,
            "description": "Setor"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "description": "Tipo do ativo"
          }
        },
        "required": [
          "stock",
          "name",
          "close",
          "change",
          "volume",
          "market_cap",
          "logo",
          "sector",
          "type"
        ]
      },
      "QuoteListResponse": {
        "type": "object",
        "properties": {
          "indexes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stock": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "stock",
                "name"
              ]
            }
          },
          "stocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteListItem"
            }
          },
          "availableSectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "availableStockTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "currentPage": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          },
          "itemsPerPage": {
            "type": "number"
          },
          "totalCount": {
            "type": "number"
          },
          "hasNextPage": {
            "type": "boolean"
          }
        },
        "required": [
          "indexes",
          "stocks",
          "availableSectors",
          "availableStockTypes"
        ],
        "example": {
          "indexes": [
            {
              "stock": "^BVSP",
              "name": "IBOVESPA"
            },
            {
              "stock": "^GSPC",
              "name": "S&P 500"
            }
          ],
          "stocks": [
            {
              "stock": "PETR4",
              "name": "PETR4",
              "close": 36.65,
              "change": -0.95,
              "volume": 27681100,
              "market_cap": 483937892568,
              "sector": "Energy Minerals",
              "type": "stock",
              "logo": "https://icons.brapi.dev/icons/PETR4.svg"
            },
            {
              "stock": "VALE3",
              "name": "VALE3",
              "close": 52.89,
              "change": -1.23,
              "volume": 18543200,
              "market_cap": 229876543210,
              "sector": "Non-Energy Minerals",
              "type": "stock",
              "logo": "https://icons.brapi.dev/icons/VALE3.svg"
            }
          ],
          "availableSectors": [
            "Retail Trade",
            "Energy Minerals",
            "Health Services",
            "Utilities",
            "Finance",
            "Consumer Services",
            "Consumer Non-Durables",
            "Non-Energy Minerals",
            "Commercial Services",
            "Distribution Services",
            "Transportation",
            "Technology Services",
            "Process Industries",
            "Communications",
            "Producer Manufacturing",
            "Miscellaneous",
            "Electronic Technology",
            "Industrial Services",
            "Health Technology",
            "Consumer Durables"
          ],
          "availableStockTypes": [
            "stock",
            "fund",
            "bdr"
          ],
          "currentPage": 1,
          "totalPages": 50,
          "itemsPerPage": 10,
          "totalCount": 500,
          "hasNextPage": true,
          "requestedAt": "2026-02-08T16:25:29.000Z",
          "took": 12
        }
      },
      "HistoricalDataPrice": {
        "type": "object",
        "properties": {
          "date": {
            "type": "integer",
            "description": "Data do pregão ou do ponto de dados, representada como um timestamp UNIX (número de segundos desde 1970-01-01 UTC)."
          },
          "open": {
            "type": "number",
            "description": "Preço de abertura do ativo no intervalo (dia, semana, mês, etc.)."
          },
          "high": {
            "type": "number",
            "description": "Preço máximo atingido pelo ativo no intervalo."
          },
          "low": {
            "type": "number",
            "description": "Preço mínimo atingido pelo ativo no intervalo."
          },
          "close": {
            "type": "number",
            "description": "Preço de fechamento do ativo no intervalo."
          },
          "volume": {
            "type": "integer",
            "description": "Volume financeiro negociado no intervalo."
          },
          "adjustedClose": {
            "type": "number",
            "description": "Preço de fechamento ajustado para proventos (dividendos, JCP, bonificações, etc.) e desdobramentos/grupamentos."
          }
        },
        "required": [
          "date",
          "open",
          "high",
          "low",
          "close",
          "volume",
          "adjustedClose"
        ]
      },
      "DividendsData": {
        "type": "object",
        "properties": {
          "cashDividends": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "assetIssued": {
                  "type": "string",
                  "description": "Código ISIN do ativo emissor"
                },
                "paymentDate": {
                  "type": "string",
                  "nullable": true,
                  "description": "Data de pagamento"
                },
                "rate": {
                  "type": "number",
                  "description": "Valor por ação"
                },
                "relatedTo": {
                  "type": "string",
                  "description": "Período de referência"
                },
                "approvedOn": {
                  "type": "string",
                  "nullable": true,
                  "description": "Data de aprovação"
                },
                "isinCode": {
                  "type": "string",
                  "description": "Código ISIN"
                },
                "label": {
                  "type": "string",
                  "description": "Tipo (DIVIDENDO, JCP)"
                },
                "lastDatePrior": {
                  "type": "string",
                  "nullable": true,
                  "description": "Data-com (último dia antes da data ex)"
                },
                "remarks": {
                  "type": "string",
                  "description": "Observações"
                }
              },
              "required": [
                "assetIssued",
                "paymentDate",
                "rate",
                "relatedTo",
                "approvedOn",
                "isinCode",
                "label",
                "lastDatePrior",
                "remarks"
              ]
            },
            "description": "Histórico de dividendos e JCP em dinheiro"
          },
          "stockDividends": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "assetIssued": {
                  "type": "string",
                  "description": "Código ISIN do ativo emissor"
                },
                "factor": {
                  "type": "number",
                  "description": "Fator do desdobramento/grupamento"
                },
                "completeFactor": {
                  "type": "string",
                  "description": "Fator completo (ex: 2 para 1)"
                },
                "approvedOn": {
                  "type": "string",
                  "nullable": true,
                  "description": "Data de aprovação"
                },
                "isinCode": {
                  "type": "string",
                  "description": "Código ISIN"
                },
                "label": {
                  "type": "string",
                  "description": "Tipo (DESDOBRAMENTO, GRUPAMENTO)"
                },
                "lastDatePrior": {
                  "type": "string",
                  "nullable": true,
                  "description": "Data de corte"
                },
                "remarks": {
                  "type": "string",
                  "description": "Observações"
                }
              },
              "required": [
                "assetIssued",
                "factor",
                "completeFactor",
                "approvedOn",
                "isinCode",
                "label",
                "lastDatePrior",
                "remarks"
              ]
            },
            "description": "Histórico de bonificações e desdobramentos"
          },
          "subscriptions": {
            "type": "array",
            "items": {
              "nullable": true
            },
            "description": "Histórico de subscrições"
          }
        },
        "required": [
          "cashDividends",
          "stockDividends",
          "subscriptions"
        ],
        "description": "Dados de dividendos (quando dividends=true)"
      },
      "SummaryProfile": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Ticker do ativo"
          },
          "cnpj": {
            "type": "string",
            "nullable": true,
            "description": "CNPJ da empresa"
          },
          "address1": {
            "type": "string",
            "nullable": true,
            "description": "Endereço linha 1"
          },
          "address2": {
            "type": "string",
            "nullable": true,
            "description": "Endereço linha 2"
          },
          "address3": {
            "type": "string",
            "nullable": true,
            "description": "Endereço linha 3"
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Cidade"
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Estado"
          },
          "zip": {
            "type": "string",
            "nullable": true,
            "description": "CEP"
          },
          "country": {
            "type": "string",
            "nullable": true,
            "description": "País"
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Telefone"
          },
          "fax": {
            "type": "string",
            "nullable": true,
            "description": "Fax"
          },
          "website": {
            "type": "string",
            "nullable": true,
            "description": "Website"
          },
          "industry": {
            "type": "string",
            "nullable": true,
            "description": "Setor"
          },
          "industryKey": {
            "type": "string",
            "nullable": true,
            "description": "Chave do setor"
          },
          "industryDisp": {
            "type": "string",
            "nullable": true,
            "description": "Nome do setor"
          },
          "sector": {
            "type": "string",
            "nullable": true,
            "description": "Segmento"
          },
          "sectorKey": {
            "type": "string",
            "nullable": true,
            "description": "Chave do segmento"
          },
          "sectorDisp": {
            "type": "string",
            "nullable": true,
            "description": "Nome do segmento"
          },
          "longBusinessSummary": {
            "type": "string",
            "nullable": true,
            "description": "Descrição da empresa"
          },
          "fullTimeEmployees": {
            "type": "number",
            "nullable": true,
            "description": "Número de funcionários"
          },
          "companyOfficers": {
            "type": "array",
            "items": {
              "nullable": true
            },
            "description": "Diretoria"
          },
          "updatedAt": {
            "type": "string",
            "nullable": true,
            "description": "Data de atualização"
          }
        },
        "required": [
          "symbol",
          "cnpj",
          "address1",
          "address2",
          "address3",
          "city",
          "state",
          "zip",
          "country",
          "phone",
          "fax",
          "website",
          "industry",
          "industryKey",
          "industryDisp",
          "sector",
          "sectorKey",
          "sectorDisp",
          "longBusinessSummary",
          "fullTimeEmployees",
          "companyOfficers",
          "updatedAt"
        ],
        "description": "Perfil da empresa (quando modules inclui summaryProfile)"
      },
      "BalanceSheetEntry": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Ticker do ativo"
          },
          "type": {
            "type": "string",
            "description": "Tipo (yearly, quarterly)"
          },
          "endDate": {
            "type": "string",
            "description": "Data de referência"
          },
          "cash": {
            "type": "number",
            "nullable": true,
            "description": "Caixa"
          },
          "shortTermInvestments": {
            "type": "number",
            "nullable": true,
            "description": "Investimentos de curto prazo"
          },
          "netReceivables": {
            "type": "number",
            "nullable": true,
            "description": "Contas a receber"
          },
          "inventory": {
            "type": "number",
            "nullable": true,
            "description": "Estoques"
          },
          "otherCurrentAssets": {
            "type": "number",
            "nullable": true,
            "description": "Outros ativos circulantes"
          },
          "totalCurrentAssets": {
            "type": "number",
            "nullable": true,
            "description": "Total ativo circulante"
          },
          "longTermInvestments": {
            "type": "number",
            "nullable": true,
            "description": "Investimentos de longo prazo"
          },
          "propertyPlantEquipment": {
            "type": "number",
            "nullable": true,
            "description": "Imobilizado"
          },
          "otherAssets": {
            "type": "number",
            "nullable": true,
            "description": "Outros ativos"
          },
          "totalAssets": {
            "type": "number",
            "nullable": true,
            "description": "Total de ativos"
          },
          "accountsPayable": {
            "type": "number",
            "nullable": true,
            "description": "Fornecedores"
          },
          "shortLongTermDebt": {
            "type": "number",
            "nullable": true,
            "description": "Dívida de curto/longo prazo"
          },
          "longTermDebt": {
            "type": "number",
            "nullable": true,
            "description": "Dívida de longo prazo"
          },
          "totalCurrentLiabilities": {
            "type": "number",
            "nullable": true,
            "description": "Passivo circulante total"
          },
          "totalLiab": {
            "type": "number",
            "nullable": true,
            "description": "Passivo total"
          },
          "totalStockholderEquity": {
            "type": "number",
            "nullable": true,
            "description": "Patrimônio líquido"
          },
          "updatedAt": {
            "type": "string",
            "nullable": true,
            "description": "Data de atualização"
          }
        },
        "required": [
          "symbol",
          "type",
          "endDate",
          "cash",
          "shortTermInvestments",
          "netReceivables",
          "inventory",
          "otherCurrentAssets",
          "totalCurrentAssets",
          "longTermInvestments",
          "propertyPlantEquipment",
          "otherAssets",
          "totalAssets",
          "accountsPayable",
          "shortLongTermDebt",
          "longTermDebt",
          "totalCurrentLiabilities",
          "totalLiab",
          "totalStockholderEquity",
          "updatedAt"
        ]
      },
      "FinancialDataEntry": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Ticker do ativo"
          },
          "currentPrice": {
            "type": "number",
            "nullable": true,
            "description": "Preço atual"
          },
          "ebitda": {
            "type": "number",
            "nullable": true,
            "description": "EBITDA"
          },
          "quickRatio": {
            "type": "number",
            "nullable": true,
            "description": "Liquidez seca"
          },
          "currentRatio": {
            "type": "number",
            "nullable": true,
            "description": "Liquidez corrente"
          },
          "debtToEquity": {
            "type": "number",
            "nullable": true,
            "description": "Dívida/PL"
          },
          "revenuePerShare": {
            "type": "number",
            "nullable": true,
            "description": "Receita por ação"
          },
          "returnOnAssets": {
            "type": "number",
            "nullable": true,
            "description": "ROA"
          },
          "returnOnEquity": {
            "type": "number",
            "nullable": true,
            "description": "ROE"
          },
          "earningsGrowth": {
            "type": "number",
            "nullable": true,
            "description": "Crescimento do lucro"
          },
          "revenueGrowth": {
            "type": "number",
            "nullable": true,
            "description": "Crescimento da receita"
          },
          "grossMargins": {
            "type": "number",
            "nullable": true,
            "description": "Margem bruta"
          },
          "ebitdaMargins": {
            "type": "number",
            "nullable": true,
            "description": "Margem EBITDA"
          },
          "operatingMargins": {
            "type": "number",
            "nullable": true,
            "description": "Margem operacional"
          },
          "profitMargins": {
            "type": "number",
            "nullable": true,
            "description": "Margem de lucro"
          },
          "totalCash": {
            "type": "number",
            "nullable": true,
            "description": "Caixa total"
          },
          "totalCashPerShare": {
            "type": "number",
            "nullable": true,
            "description": "Caixa por ação"
          },
          "totalDebt": {
            "type": "number",
            "nullable": true,
            "description": "Dívida total"
          },
          "totalRevenue": {
            "type": "number",
            "nullable": true,
            "description": "Receita total"
          },
          "grossProfits": {
            "type": "number",
            "nullable": true,
            "description": "Lucro bruto"
          },
          "operatingCashflow": {
            "type": "number",
            "nullable": true,
            "description": "Fluxo de caixa operacional"
          },
          "freeCashflow": {
            "type": "number",
            "nullable": true,
            "description": "Fluxo de caixa livre"
          },
          "financialCurrency": {
            "type": "string",
            "nullable": true,
            "description": "Moeda"
          },
          "updatedAt": {
            "type": "string",
            "nullable": true,
            "description": "Data de atualização"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "description": "Tipo (ttm, yearly, quarterly)"
          }
        },
        "required": [
          "symbol",
          "currentPrice",
          "ebitda",
          "quickRatio",
          "currentRatio",
          "debtToEquity",
          "revenuePerShare",
          "returnOnAssets",
          "returnOnEquity",
          "earningsGrowth",
          "revenueGrowth",
          "grossMargins",
          "ebitdaMargins",
          "operatingMargins",
          "profitMargins",
          "totalCash",
          "totalCashPerShare",
          "totalDebt",
          "totalRevenue",
          "grossProfits",
          "operatingCashflow",
          "freeCashflow",
          "financialCurrency",
          "updatedAt",
          "type"
        ],
        "description": "Dados financeiros e indicadores TTM"
      },
      "QuoteResult": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Ticker (símbolo) do ativo (ex: PETR4, ^BVSP)",
            "example": "PETR4"
          },
          "currency": {
            "type": "string",
            "description": "Moeda na qual os valores são expressos (geralmente BRL)"
          },
          "shortName": {
            "type": "string",
            "nullable": true,
            "description": "Nome curto ou abreviado da empresa"
          },
          "longName": {
            "type": "string",
            "nullable": true,
            "description": "Nome completo da empresa"
          },
          "regularMarketPrice": {
            "type": "number",
            "nullable": true,
            "description": "Preço atual ou do último negócio registrado"
          },
          "regularMarketChange": {
            "type": "number",
            "nullable": true,
            "description": "Variação absoluta do preço no dia em relação ao fechamento anterior"
          },
          "regularMarketChangePercent": {
            "type": "number",
            "nullable": true,
            "description": "Variação percentual do preço no dia"
          },
          "regularMarketTime": {
            "type": "string",
            "nullable": true,
            "description": "Data/hora da última atualização da cotação (ISO 8601)"
          },
          "regularMarketDayHigh": {
            "type": "number",
            "nullable": true,
            "description": "Preço máximo atingido no dia"
          },
          "regularMarketDayLow": {
            "type": "number",
            "nullable": true,
            "description": "Preço mínimo atingido no dia"
          },
          "regularMarketDayRange": {
            "type": "string",
            "nullable": true,
            "description": "Intervalo de preço do dia (Mínimo - Máximo)"
          },
          "regularMarketVolume": {
            "type": "number",
            "nullable": true,
            "description": "Volume financeiro negociado no dia"
          },
          "regularMarketPreviousClose": {
            "type": "number",
            "nullable": true,
            "description": "Preço de fechamento do pregão anterior"
          },
          "regularMarketOpen": {
            "type": "number",
            "nullable": true,
            "description": "Preço de abertura no dia"
          },
          "averageDailyVolume3Month": {
            "type": "number",
            "nullable": true,
            "description": "Média do volume diário nos últimos 3 meses"
          },
          "averageDailyVolume10Day": {
            "type": "number",
            "nullable": true,
            "description": "Média do volume diário nos últimos 10 dias"
          },
          "fiftyTwoWeekLow": {
            "type": "number",
            "nullable": true,
            "description": "Preço mínimo nas últimas 52 semanas"
          },
          "fiftyTwoWeekHigh": {
            "type": "number",
            "nullable": true,
            "description": "Preço máximo nas últimas 52 semanas"
          },
          "fiftyTwoWeekRange": {
            "type": "string",
            "nullable": true,
            "description": "Intervalo de preço das últimas 52 semanas"
          },
          "fiftyTwoWeekLowChange": {
            "type": "number",
            "nullable": true,
            "description": "Variação entre preço atual e mínimo de 52 semanas"
          },
          "fiftyTwoWeekHighChange": {
            "type": "number",
            "nullable": true,
            "description": "Variação entre preço atual e máximo de 52 semanas"
          },
          "fiftyTwoWeekHighChangePercent": {
            "type": "number",
            "nullable": true,
            "description": "Variação percentual entre preço atual e máximo de 52 semanas"
          },
          "twoHundredDayAverage": {
            "type": "number",
            "nullable": true,
            "description": "Média móvel de 200 dias"
          },
          "twoHundredDayAverageChange": {
            "type": "number",
            "nullable": true,
            "description": "Variação entre preço atual e média de 200 dias"
          },
          "twoHundredDayAverageChangePercent": {
            "type": "number",
            "nullable": true,
            "description": "Variação percentual entre preço atual e média de 200 dias"
          },
          "marketCap": {
            "type": "number",
            "nullable": true,
            "description": "Capitalização de mercado total"
          },
          "priceEarnings": {
            "type": "number",
            "nullable": true,
            "description": "Indicador Preço/Lucro (P/L)"
          },
          "earningsPerShare": {
            "type": "number",
            "nullable": true,
            "description": "Lucro Por Ação (LPA) TTM"
          },
          "logourl": {
            "type": "string",
            "nullable": true,
            "description": "URL do logo do ativo"
          },
          "usedInterval": {
            "type": "string",
            "nullable": true,
            "description": "Intervalo efetivamente utilizado para dados históricos"
          },
          "usedRange": {
            "type": "string",
            "nullable": true,
            "description": "Período efetivamente utilizado para dados históricos"
          },
          "validRanges": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Valores válidos para o parâmetro range"
          },
          "validIntervals": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Valores válidos para o parâmetro interval"
          },
          "historicalDataPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoricalDataPrice"
            },
            "description": "Série histórica de preços (quando range/interval fornecidos)"
          },
          "dividendsData": {
            "$ref": "#/components/schemas/DividendsData"
          },
          "summaryProfile": {
            "$ref": "#/components/schemas/SummaryProfile"
          },
          "balanceSheetHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceSheetEntry"
            },
            "description": "Histórico anual do Balanço Patrimonial"
          },
          "balanceSheetHistoryQuarterly": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceSheetEntry"
            },
            "description": "Histórico trimestral do Balanço Patrimonial"
          },
          "financialData": {
            "$ref": "#/components/schemas/FinancialDataEntry"
          },
          "financialDataHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialDataEntry"
            },
            "description": "Histórico anual de dados financeiros"
          },
          "financialDataHistoryQuarterly": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialDataEntry"
            },
            "description": "Histórico trimestral de dados financeiros"
          }
        },
        "required": [
          "symbol",
          "currency",
          "shortName",
          "longName",
          "regularMarketPrice",
          "regularMarketChange",
          "regularMarketChangePercent",
          "regularMarketTime",
          "regularMarketDayHigh",
          "regularMarketDayLow",
          "regularMarketDayRange",
          "regularMarketVolume",
          "regularMarketPreviousClose",
          "regularMarketOpen",
          "averageDailyVolume3Month",
          "averageDailyVolume10Day",
          "fiftyTwoWeekLow",
          "fiftyTwoWeekHigh",
          "fiftyTwoWeekRange",
          "fiftyTwoWeekLowChange",
          "fiftyTwoWeekHighChange",
          "fiftyTwoWeekHighChangePercent",
          "twoHundredDayAverage",
          "twoHundredDayAverageChange",
          "twoHundredDayAverageChangePercent",
          "marketCap",
          "priceEarnings",
          "earningsPerShare",
          "logourl",
          "usedInterval",
          "usedRange"
        ]
      },
      "QuoteTickersResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteResult"
            }
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "results",
          "requestedAt",
          "took"
        ],
        "example": {
          "results": [
            {
              "symbol": "PETR4",
              "shortName": "PETR4",
              "longName": "Petroleo Brasileiro SA Pfd",
              "currency": "BRL",
              "regularMarketPrice": 36.65,
              "regularMarketDayHigh": 37.27,
              "regularMarketDayLow": 36.45,
              "regularMarketDayRange": "36.45 - 37.27",
              "regularMarketChange": -0.35,
              "regularMarketChangePercent": -0.95,
              "regularMarketTime": "2026-02-08T16:24:54.000Z",
              "marketCap": 483937892568,
              "regularMarketVolume": 27681100,
              "regularMarketPreviousClose": 36.7,
              "regularMarketOpen": 37.21,
              "fiftyTwoWeekRange": "28.86 - 38.66",
              "fiftyTwoWeekLow": 28.86,
              "fiftyTwoWeekHigh": 38.66,
              "priceEarnings": 6.09,
              "earningsPerShare": 6.01,
              "logourl": "https://icons.brapi.dev/icons/PETR4.svg"
            }
          ],
          "requestedAt": "2026-02-08T16:25:28.170Z",
          "took": 3
        }
      },
      "UserUsageWindow": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "billing-cycle",
              "rolling-30d"
            ]
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "start",
          "end"
        ]
      },
      "UserSubscriptionPeriod": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          }
        },
        "required": [
          "start",
          "end"
        ]
      },
      "UserUsageData": {
        "type": "object",
        "properties": {
          "planName": {
            "type": "string",
            "enum": [
              "free",
              "startup",
              "pro"
            ]
          },
          "planLimit": {
            "type": "integer",
            "minimum": 0
          },
          "currentUsage": {
            "type": "integer",
            "minimum": 0
          },
          "remainingUsage": {
            "type": "integer",
            "minimum": 0
          },
          "usageWindow": {
            "$ref": "#/components/schemas/UserUsageWindow"
          },
          "subscriptionPeriod": {
            "$ref": "#/components/schemas/UserSubscriptionPeriod"
          }
        },
        "required": [
          "planName",
          "planLimit",
          "currentUsage",
          "remainingUsage",
          "usageWindow",
          "subscriptionPeriod"
        ]
      },
      "UserUsageResponse": {
        "type": "object",
        "properties": {
          "usage": {
            "$ref": "#/components/schemas/UserUsageData"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição em formato ISO 8601",
            "example": "2025-01-24T17:32:38.000Z"
          },
          "took": {
            "type": "integer",
            "minimum": 0,
            "description": "Tempo de processamento em milissegundos",
            "example": 45
          }
        },
        "required": [
          "usage",
          "requestedAt",
          "took"
        ],
        "example": {
          "usage": {
            "planName": "pro",
            "planLimit": 500000,
            "currentUsage": 1248,
            "remainingUsage": 498752,
            "usageWindow": {
              "type": "billing-cycle",
              "start": "2026-04-01T00:00:00.000Z",
              "end": "2026-05-01T00:00:00.000Z"
            },
            "subscriptionPeriod": {
              "start": "2026-04-01T00:00:00.000Z",
              "end": "2026-05-01T00:00:00.000Z"
            }
          },
          "requestedAt": "2026-04-07T20:45:10.000Z",
          "took": 18
        }
      }
    },
    "parameters": {}
  },
  "paths": {
    "/health": {
      "get": {
        "tags": [
          "Utilitários"
        ],
        "summary": "Verificar status da API",
        "description": "\nEndpoint de Health Check para monitoramento da disponibilidade e saúde da API.\n\n### O que Retorna\n\n*   `status` — Status do sistema (`ok` ou `error`)\n*   `timestamp` — Data/hora da verificação (ISO 8601)\n*   `uptime` — Tempo de atividade do servidor (segundos)\n*   `database.status` — Saúde do banco de dados (`ok` ou `error`)\n*   `database.latencyMs` — Latência da conexão com o banco (ms)\n\n### Exemplo de Uso\n\n```bash\ncurl \"https://brapi.dev/health\"\n```\n\n### Caso de Uso\n\nIdeal para monitoramento com ferramentas como UptimeRobot, Datadog, ou checks de disponibilidade em pipelines CI/CD.\n\n**Plano Mínimo:** Gratuito\n**Autenticação:** Não necessária (Público)\n",
        "responses": {
          "200": {
            "description": "API operando normalmente.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/available": {
      "get": {
        "tags": [
          "Utilitários"
        ],
        "operationId": "getAvailable",
        "summary": "Listar Ações e Índices Disponíveis",
        "description": "\nRetorna a lista completa de **ações e índices** disponíveis para consulta na API brapi.\n\n### Funcionalidades\n\n*   **Ações brasileiras:** Todas as ações, FIIs, BDRs e ETFs negociados na bolsa brasileira\n*   **Índices:** Principais índices do mercado brasileiro (Ibovespa, IBrX, IFIX, etc.)\n*   **Filtro por Nome:** Use `search` para filtrar por código ou nome do ativo\n\n### Características\n\n*   **Sem Autenticação:** Este endpoint é **público** e não requer token\n*   **Cache:** Dados cacheados por 15 minutos\n*   **Atualização automática:** Conforme novos ativos são listados na bolsa brasileira\n\n### Exemplos de Uso\n\n```bash\n# Listar todos os ativos\ncurl \"https://brapi.dev/api/available\"\n\n# Buscar por código de ticker\ncurl \"https://brapi.dev/api/available?search=PETR\"\n\n# Buscar por nome da empresa\ncurl \"https://brapi.dev/api/available?search=banco\"\n```\n\n### Índices Disponíveis\n\n*   `^BVSP` — Ibovespa (Índice Bovespa)\n*   `^IBX50` — IBrX 50\n*   `^IBX100` — IBrX 100\n*   `^IDIV` — Índice Dividendos\n*   `^SMLL` — Índice Small Cap\n*   `^IFIX` — Índice de Fundos Imobiliários\n*   `^IFNC` — Índice Financeiro\n*   `^ICON` — Índice de Consumo\n*   `^IEEX` — Índice de Energia Elétrica\n*   `^IMOB` — Índice Imobiliário\n\n### Campos da Resposta\n\n*   `stocks` — Array com códigos das ações (ex: [\"PETR4\", \"VALE3\", \"ITUB4\", ...])\n*   `indexes` — Array com códigos dos índices (ex: [\"^BVSP\", \"^IFIX\", ...])\n\n### Como Usar\n\nUse os códigos retornados como parâmetro no endpoint `/api/quote/{tickers}` para obter cotações detalhadas.\n\n**Fonte:** Bolsa de Valores do Brasil\n\n**Plano Mínimo:** Gratuito\n**Autenticação:** Não necessária (Público)\n",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Filtrar ações e índices por nome ou código",
              "example": "PETR"
            },
            "required": false,
            "name": "search",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de ações e índices disponíveis retornada com sucesso, opcionalmente filtrada pelo parâmetro de busca.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                },
                "description": "Política de cache (s-maxage=900, stale-while-revalidate)"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableResponse"
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.** Erro interno ao processar a requisição.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto": {
      "get": {
        "tags": [
          "Criptomoedas"
        ],
        "operationId": "getCrypto",
        "summary": "Obter Cotações de Criptomoedas",
        "description": "\nRetorna cotações atualizadas de uma ou mais criptomoedas, com conversão para diferentes moedas fiduciárias.\n\n### Funcionalidades:\n*   **Cotação Atual:** Preço, variação 24h, volume, market cap\n*   **Múltiplas Moedas:** Consulte várias criptos em uma requisição (separadas por vírgula)\n*   **Conversão de Moeda:** BRL (padrão), USD, EUR e outras\n*   **Dados Históricos:** OHLCV via parâmetros `range` e `interval`\n\n### Autenticação:\nBearer token ou query param `token`. Obtenha em brapi.dev/dashboard.\n\n### Exemplos de Requisição:\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/crypto?coin=BTC&currency=BRL\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/crypto?coin=BTC,ETH,SOL&currency=USD\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/crypto?coin=BTC&currency=BRL&range=1mo&interval=1d\"\n```\n\n### Moedas de Conversão:\nBRL (Real), USD (Dólar), EUR (Euro), GBP (Libra) e outras\n\n### Campos da Resposta:\n*   `coin` — Símbolo da criptomoeda\n*   `coinName` — Nome completo\n*   `currency` — Moeda de cotação\n*   `regularMarketPrice` — Preço atual\n*   `regularMarketChange` — Variação em valor absoluto\n*   `regularMarketChangePercent` — Variação percentual (%)\n*   `regularMarketDayHigh` / `regularMarketDayLow` — Máxima/Mínima do dia\n*   `regularMarketVolume` — Volume negociado\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Sigla(s) das criptomoedas separadas por vírgula",
              "example": "BTC,ETH"
            },
            "required": false,
            "name": "coin",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Moeda para cotação (padrão: BRL)",
              "example": "BRL"
            },
            "required": false,
            "name": "currency",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Período para dados históricos"
            },
            "required": false,
            "name": "range",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Intervalo dos dados históricos"
            },
            "required": false,
            "name": "interval",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Cotações das criptomoedas solicitadas na moeda especificada retornadas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoResponseSimple"
                }
              }
            }
          },
          "400": {
            "description": "**Requisição Inválida.** Parâmetro `coin` não fornecido ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "**Não Autorizado.** Token de autenticação não fornecido ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "**Acesso Proibido.** Seu plano não tem acesso ao módulo de criptomoedas.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Limite de requisições excedido",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Limite de requisições excedido",
                      "example": {
                        "error": true,
                        "message": "Limite de requisições excedido. Tente novamente mais tarde.",
                        "code": "RATE_LIMIT_EXCEEDED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.** Erro interno ao processar a requisição.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "**Serviço Indisponível.** Serviço externo temporariamente indisponível.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Serviço externo temporariamente indisponível",
                      "example": {
                        "error": true,
                        "message": "Serviço externo temporariamente indisponível. Tente novamente em alguns minutos.",
                        "code": "EXTERNAL_API_ERROR"
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto/available": {
      "get": {
        "tags": [
          "Criptomoedas"
        ],
        "operationId": "getCryptoAvailable",
        "summary": "Listar Criptomoedas Disponíveis",
        "description": "\nRetorna a lista de criptomoedas disponíveis para consulta no endpoint `/api/v2/crypto`.\n\n### Criptomoedas Populares:\n*   **BTC** — Bitcoin\n*   **ETH** — Ethereum\n*   **BNB** — Binance Coin\n*   **SOL** — Solana\n*   **ADA** — Cardano\n*   **XRP** — Ripple\n*   **DOGE** — Dogecoin\n*   **DOT** — Polkadot\n*   **MATIC** — Polygon\n*   **LTC** — Litecoin\n*   E centenas de outras...\n\n### Uso:\nUse os símbolos retornados como valor do parâmetro `coin` no endpoint principal.\n\n### Exemplos de Requisição:\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/crypto/available\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/crypto/available?search=BTC\"\n```\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Filtrar criptomoedas por símbolo",
              "example": "BTC"
            },
            "required": false,
            "name": "search",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de símbolos de criptomoedas disponíveis retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/currency": {
      "get": {
        "tags": [
          "Câmbio"
        ],
        "operationId": "getCurrency",
        "summary": "Obter Cotações de Câmbio",
        "description": "\nRetorna cotações atualizadas de pares de moedas, com preço de compra/venda, variação e extremos do dia.\n\n### Funcionalidades:\n*   **Cotação Atual:** Preço de compra (bid), venda (ask), máxima, mínima, variação\n*   **Múltiplos Pares:** Consulte vários em uma requisição (separados por vírgula)\n*   **Formato:** `ORIGEM-DESTINO` (ex: `USD-BRL`)\n\n### Autenticação:\nBearer token ou query param `token`. Obtenha em brapi.dev/dashboard.\n\n### Exemplos de Requisição:\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/currency?currency=USD-BRL\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/currency?currency=USD-BRL,EUR-BRL,GBP-BRL\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/currency?currency=BTC-BRL\"\n```\n\n### Pares de Moedas Populares:\n*   `USD-BRL` — Dólar Americano / Real\n*   `EUR-BRL` — Euro / Real\n*   `GBP-BRL` — Libra Esterlina / Real\n*   `ARS-BRL` — Peso Argentino / Real\n*   `EUR-USD` — Euro / Dólar\n*   `BTC-BRL` — Bitcoin / Real\n*   `ETH-BRL` — Ethereum / Real\n\n### Campos da Resposta:\n*   `fromCurrency` / `toCurrency` — Par de moedas\n*   `name` — Nome do par\n*   `bidPrice` — Preço de compra\n*   `askPrice` — Preço de venda\n*   `high` / `low` — Máxima/Mínima do dia\n*   `bidVariation` — Variação do preço de compra\n*   `percentageChange` — Variação percentual (%)\n\n### Fonte dos Dados:\nBanco Central do Brasil (PTAX) / Yahoo Finance\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Par(es) de moedas separados por vírgula (ex: USD-BRL,EUR-BRL)",
              "example": "USD-BRL"
            },
            "required": false,
            "name": "currency",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Cotações dos pares de moedas solicitados retornadas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyResponseSimple"
                }
              }
            }
          },
          "400": {
            "description": "**Requisição Inválida.** Parâmetro `currency` não fornecido ou formato inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "**Não Autorizado.** Token de autenticação não fornecido ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "**Acesso Proibido.** Seu plano não tem acesso ao módulo de câmbio.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.** Erro interno ao processar a requisição.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "**Serviço Indisponível.** Serviço externo temporariamente indisponível.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Serviço externo temporariamente indisponível",
                      "example": {
                        "error": true,
                        "message": "Serviço externo temporariamente indisponível. Tente novamente em alguns minutos.",
                        "code": "EXTERNAL_API_ERROR"
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/currency/historical": {
      "get": {
        "tags": [
          "Câmbio"
        ],
        "operationId": "getCurrencyHistorical",
        "summary": "Histórico de Cotações de Câmbio",
        "description": "\nRetorna séries históricas diárias de câmbio em três formas, todas\nderivadas das mesmas cotações PTAX de fechamento:\n\n- **Direto** (X-BRL) — cotação diária do par armazenado.\n- **Inverso** (BRL-X) — calculado como `1 / X-BRL`.\n- **Cross-rate** (X-Y, nenhum dos dois é BRL) — calculado como\n  `X-BRL / Y-BRL` em cada data com observação em ambas as séries.\n\n### Moedas Suportadas\n\nUSD, EUR, GBP, JPY, CHF, CAD, AUD, DKK, NOK, SEK contra BRL e entre si.\n\nPara cotações em tempo real (incluindo cripto), use `/api/v2/currency`.\n\n### Exemplos\n\n```bash\n# Direto\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \\\n  \"https://brapi.dev/api/v2/currency/historical?currency=USD-BRL,EUR-BRL\"\n\n# Inverso\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \\\n  \"https://brapi.dev/api/v2/currency/historical?currency=BRL-USD\"\n\n# Cross-rate\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \\\n  \"https://brapi.dev/api/v2/currency/historical?currency=USD-EUR,GBP-EUR\"\n\n# Período customizado\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \\\n  \"https://brapi.dev/api/v2/currency/historical?currency=USD-BRL&startDate=2020-01-01&endDate=2025-12-31\"\n```\n\n**Plano Mínimo:** Startup | **Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Pares de moedas separados por vírgula (ex: USD-BRL,EUR-BRL). Máximo 20.",
              "example": "USD-BRL,EUR-BRL"
            },
            "required": true,
            "name": "currency",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "description": "Data de início no formato YYYY-MM-DD.",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "description": "Data de fim no formato YYYY-MM-DD.",
              "example": "2024-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Ordem das observações pela data. Padrão: desc.",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "description": "Máximo de observações por par. Padrão: 365.",
              "example": 365
            },
            "required": false,
            "name": "limit",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Histórico de cotações PTAX retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyHistoricalResponse"
                }
              }
            }
          },
          "400": {
            "description": "**Requisição Inválida.** Parâmetros ausentes ou inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "**Não Autorizado.**",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "**Acesso Proibido.** Plano sem acesso ao módulo de câmbio.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.**",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/currency/available": {
      "get": {
        "tags": [
          "Câmbio"
        ],
        "operationId": "getCurrencyAvailable",
        "summary": "Listar Pares de Moedas Disponíveis",
        "description": "\nRetorna a lista de pares de moedas disponíveis para consulta no endpoint `/api/v2/currency`.\n\n### Formato:\nORIGEM-DESTINO, onde ORIGEM é o código da moeda de origem e DESTINO a moeda de destino\n\n### Pares Disponíveis:\n*   **Moedas Fiduciárias:** USD-BRL, EUR-BRL, GBP-BRL, ARS-BRL, CAD-BRL, AUD-BRL, JPY-BRL, CNY-BRL\n*   **Cross Rates:** EUR-USD, GBP-USD\n*   **Criptomoedas:** BTC-BRL, ETH-BRL\n\n### Exemplos de Requisição:\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/currency/available\"\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/currency/available?search=USD\"\n```\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Filtrar pares de moedas por nome ou descrição",
              "example": "USD"
            },
            "required": false,
            "name": "search",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de pares de moedas disponíveis retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/dictionary": {
      "get": {
        "tags": [
          "Utilitários"
        ],
        "summary": "Dicionário de Campos da API",
        "description": "Retorna o dicionário completo de todos os campos disponíveis na API, com nome em português, descrição detalhada e fórmula de cálculo.\n\n### Funcionalidades\n\n*   **Busca:** Filtre por nome, descrição, categoria ou endpoint\n*   **Categorias:** Agrupe campos por área (fii, quote, balance-sheet, income-statement, etc.)\n*   **Fórmulas:** Veja como cada indicador é calculado\n\n### Exemplos de Uso\n\n```bash\n# Listar todos os campos\ncurl \"https://brapi.dev/api/v2/dictionary\"\n\n# Buscar por termo\ncurl \"https://brapi.dev/api/v2/dictionary?search=patrimônio\"\n\n# Filtrar por categoria\ncurl \"https://brapi.dev/api/v2/dictionary?category=fii\"\n```\n\n### Campos de Cada Entrada\n\n*   `key` — Identificador do campo (ex: `dividendYield12m`)\n*   `label` — Nome em português (ex: \"Dividend Yield 12 meses\")\n*   `description` — Descrição detalhada\n*   `calculation` — Fórmula de cálculo (quando aplicável)\n*   `endpoints` — Endpoints onde o campo aparece\n*   `category` — Categoria do campo\n*   `type` — Tipo de dado (number, string, boolean, date)\n*   `unit` — Unidade (%, R$, etc.)\n\n### Caso de Uso\n\nIdeal para construir interfaces dinâmicas, tooltips, ou documentação automatizada a partir dos campos da API.\n\n**Plano Mínimo:** Gratuito\n**Autenticação:** Não necessária (Público)",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Termo de busca para filtrar campos (busca em key, label, description e category)",
              "example": "patrimônio"
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Filtrar por categoria (ex: fii, quote, balance-sheet, income-statement)",
              "example": "fii"
            },
            "required": false,
            "name": "category",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de campos do dicionário",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/list": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "listFii",
        "summary": "Listar Fundos Imobiliários",
        "description": "\nRetorna a lista paginada de todos os Fundos de Investimento Imobiliário (FIIs) registrados, com dados do instrumento e indicadores atuais. Ideal para descobrir novos FIIs, comparar rentabilidades e construir carteiras diversificadas.\n\n### Funcionalidades:\n*   **Busca por nome ou símbolo:** Encontre FIIs específicos rapidamente (ex: \"hglg\" retorna HGLG11)\n*   **Filtros por segmento:** Papel (Títulos/CRI), Tijolo (Imóveis físicos), Híbrido (Misto), FOF (Fundo de Fundos)\n*   **Filtros por setor:** Logística, Shoppings, Escritórios, Lajes Corporativas, Títulos e Val. Mob., Residencial, Hospital, Hotel, Educacional, Híbrido, Multicategoria, Varejo, Outros\n*   **Filtros por mandato:** Renda, Híbrido, Títulos e Valores Mobiliários, etc.\n*   **Filtros por tipo de gestão:** Ativa, Definida\n*   **Dados do administrador:** Nome, CNPJ, endereço, telefones, site e email informados pela CVM\n*   **Ordenação flexível:** Ordene por qualquer campo (DY, P/VP, Preço, Total de Investidores, etc.)\n*   **Paginação:** Controle o número de resultados por página\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar a lista completa, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Listar todos os FIIs (primeiros 20)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/list\"\n\n# Buscar FIIs por nome (ex: HGLG)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/list?search=hglg\"\n\n# Filtrar por setor (Logística) e ordenar por Dividend Yield decrescente\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/list?segmentoAtuacao=Logística&sortBy=dividendYield12m&sortOrder=desc&limit=10\"\n\n# Filtrar por tipo de segmento (Tijolo) e tipo de gestão (Ativa)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/list?segmentType=tijolo&tipoGestao=Ativa&page=1&limit=20\"\n```\n\n### FIIs Populares para Teste:\nMXRF11 (Multisegmento), HGLG11 (Logística), KNCR11 (Logística), XPLG11 (Logística), XPML11 (Logística), KNRI11 (Renda), BTLG11 (Logística), VISC11 (Varejo)\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "default": 1,
              "description": "Página (começa em 1)",
              "example": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "default": 20,
              "description": "Itens por página (sem limite rígido; valores altos como 10000 são aceitos)",
              "example": 20
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação",
              "example": "referenceDate"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Direção da ordenação",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Buscar por nome ou símbolo",
              "example": "hglg"
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "papel",
                "tijolo",
                "hibrido",
                "fof"
              ],
              "description": "Tipo de segmento do indicador"
            },
            "required": false,
            "name": "segmentType",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Segmento de atuação (Logística, Shoppings, Escritórios, etc.)"
            },
            "required": false,
            "name": "segmentoAtuacao",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Mandato (Renda, Híbrido, Títulos e Valores Mobiliários, etc.)"
            },
            "required": false,
            "name": "mandate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Tipo de gestão (Ativa, Definida)"
            },
            "required": false,
            "name": "tipoGestao",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista paginada de FIIs com indicadores retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/indicators": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "getFiiIndicators",
        "summary": "Obter Indicadores Fundamentalistas",
        "description": "\nRetorna os indicadores fundamentalistas mais recentes para um ou mais FIIs. Use este endpoint para análises de valuation, rentabilidade e comparações entre fundos.\n\n### Funcionalidades:\n*   **Múltiplos FIIs:** Consulte até 20 FIIs em uma única requisição (separados por vírgula)\n*   **Indicadores de Valuation:** Preço atual, Valor Patrimonial por Cota (VP/Cota), Preço/VP (P/VP)\n*   **Indicadores de Rentabilidade:** Dividend Yield 12 meses, Dividend Yield 1 mês, Retorno mensal\n*   **Dados de Liquidez:** Total de investidores (cotistas), Cotas emitidas, Patrimônio Líquido, Ativo Total\n*   **Classificação:** Tipo de segmento (Papel, Tijolo, Híbrido, FOF)\n*   **Dados do administrador:** Nome, CNPJ, endereço, telefones, site e email informados pela CVM\n\n### Campos da Resposta:\n*   **price** — Preço atual da cota (R$)\n*   **navPerShare** — Valor Patrimonial por Cota (VP/Cota) em R$\n*   **priceToNav** — Razão Preço/Valor Patrimonial (P/VP) — valores < 1 indicam desconto\n*   **dividendYield12m** — Dividend Yield acumulado nos últimos 12 meses (%)\n*   **dividendYield1m** — Dividend Yield do último mês (%)\n*   **monthlyReturn** — Retorno mensal (%)\n*   **totalInvestors** — Total de investidores (cotistas) do fundo\n*   **sharesOutstanding** — Número de cotas emitidas\n*   **equity** — Patrimônio Líquido (R$)\n*   **totalAssets** — Ativo Total (R$)\n*   **segmentType** — Tipo de segmento (papel, tijolo, hibrido, fof)\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar outros FIIs, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Consultar um FII (sem autenticação - teste)\ncurl \"https://brapi.dev/api/v2/fii/indicators?symbols=MXRF11\"\n\n# Consultar múltiplos FIIs\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/indicators?symbols=HGLG11,KNCR11,XPLG11\"\n```\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolos separados por vírgula (máximo 20). Exemplo: HGLG11,MXRF11",
              "example": "HGLG11,MXRF11"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Indicadores atuais dos FIIs retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiIndicatorsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/indicators/history": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "getFiiIndicatorsHistory",
        "summary": "Obter Histórico de Indicadores",
        "description": "\nRetorna a série temporal mensal dos indicadores fundamentalistas. Analise tendências de valuation, rentabilidade e crescimento patrimonial ao longo do tempo.\n\n### Funcionalidades:\n*   **Histórico desde setembro/2016:** Dados mensais de mais de 8 anos\n*   **Granularidade mensal:** Um ponto de dados por mês para cada FII\n*   **Múltiplos FIIs:** Consulte até 20 FIIs em uma única requisição\n*   **Filtro por período:** Especifique startDate e endDate (padrão: últimos 12 meses)\n*   **Ordenação flexível:** Ordene por qualquer campo (referenceDate, price, DY, P/VP, etc.)\n*   **Análises de tendência:** Identifique padrões de rentabilidade, valuation e crescimento\n\n### Campos da Resposta:\nOs mesmos indicadores do endpoint /indicators, com adição de referenceDate (data do último dia do mês de referência).\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar outros FIIs, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Histórico dos últimos 12 meses (padrão)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/indicators/history?symbols=HGLG11,MXRF11\"\n\n# Histórico em período específico (2023-2024)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/indicators/history?symbols=KNCR11&startDate=2023-01-01&endDate=2024-12-31\"\n\n# Histórico ordenado por Dividend Yield decrescente\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/indicators/history?symbols=XPLG11,BTLG11&sortBy=dividendYield12m&sortOrder=desc\"\n```\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolos separados por vírgula (máximo 20). Exemplo: HGLG11,MXRF11",
              "example": "HGLG11,MXRF11"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início no formato YYYY-MM-DD",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim no formato YYYY-MM-DD",
              "example": "2025-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação",
              "example": "referenceDate"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Direção da ordenação",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Histórico mensal de indicadores retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiIndicatorsHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/historical": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "getFiiHistoricalPrice",
        "summary": "Obter Cotações Históricas (OHLCV)",
        "description": "\nRetorna a série histórica de preços OHLCV (Abertura, Máxima, Mínima, Fechamento, Volume) diários. Use para backtesting, análise técnica e construção de modelos de previsão.\n\n### Funcionalidades:\n*   **Dados OHLCV completos:** Abertura, Máxima, Mínima, Fechamento, Volume, Fechamento Ajustado\n*   **Granularidade diária:** Um ponto de dados por dia de negociação\n*   **Múltiplos FIIs:** Consulte até 20 FIIs em uma única requisição\n*   **Filtro por período:** Especifique startDate e endDate (padrão: últimos 12 meses)\n*   **Ordenação:** Ascendente ou descendente por data\n*   **Timestamp UNIX:** Datas em segundos desde 1º de janeiro de 1970\n\n### Campos da Resposta:\n*   **date** — Timestamp UNIX em segundos (número inteiro)\n*   **open** — Preço de abertura (R$)\n*   **high** — Preço máximo do dia (R$)\n*   **low** — Preço mínimo do dia (R$)\n*   **close** — Preço de fechamento (R$)\n*   **volume** — Volume negociado (número de cotas)\n*   **adjustedClose** — Preço de fechamento ajustado (R$)\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar outros FIIs, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Histórico dos últimos 12 meses (padrão, ordem decrescente)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/historical?symbols=HGLG11\"\n\n# Histórico em período específico com ordem crescente\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/historical?symbols=MXRF11,KNCR11&startDate=2024-01-01&endDate=2024-12-31&sortOrder=asc\"\n```\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolos separados por vírgula (máximo 20). Exemplo: HGLG11,MXRF11",
              "example": "HGLG11,MXRF11"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início no formato YYYY-MM-DD",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim no formato YYYY-MM-DD",
              "example": "2025-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Direção da ordenação por data",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Série histórica OHLCV por FII retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiHistoricalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/reports": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "getFiiReports",
        "summary": "Obter Relatórios Gerenciais",
        "description": "\nRetorna os relatórios gerenciais mensais publicados na CVM, com composição patrimonial detalhada. Analise a alocação de ativos, estrutura de passivos e evolução do patrimônio dos FIIs.\n\n### Funcionalidades:\n*   **Relatórios mensais:** Um relatório por mês para cada FII\n*   **Múltiplos FIIs:** Consulte até 20 FIIs em uma única requisição\n*   **Filtro por período:** Especifique startDate e endDate (padrão: últimos 12 meses)\n*   **Versionamento:** Relatórios podem ter múltiplas versões (retificações). Por padrão, retorna apenas a mais recente. Use `allVersions=true` para todas as versões.\n*   **Paginação:** Controle o número de resultados por página\n*   **Ordenação:** Ordene por qualquer campo (referenceDate, totalAssets, equity, etc.)\n\n### KPIs Inclusos:\n*   **Ativo Total** — Patrimônio total do fundo (R$)\n*   **Patrimônio Líquido** — Equity (R$)\n*   **Cotas** — Número de cotas emitidas\n*   **VP/Cota** — Valor Patrimonial por Cota (R$)\n*   **Taxa de Administração** — Taxa anual (%)\n*   **Retorno Mensal** — Retorno do mês (%)\n*   **Dividend Yield Mensal** — DY do mês (%)\n*   **Total de Investidores** — Número de cotistas\n\n### Composição de Ativos:\n*   **Caixa** — Disponibilidades (R$)\n*   **Títulos Públicos** — Tesouro Direto, LTN, etc. (R$)\n*   **Títulos Privados** — Debêntures, CDB, etc. (R$)\n*   **Fundos RF** — Fundos de Renda Fixa (R$)\n*   **Imóveis** — Propriedades físicas (R$)\n*   **CRI** — Certificados de Recebíveis Imobiliários (R$)\n*   **LCI** — Letras de Crédito Imobiliário (R$)\n*   **Cotas de FIIs** — Investimentos em outros FIIs (R$)\n*   **Recebíveis** — Aluguéis, rendas a receber (R$)\n\n### Composição de Passivos:\n*   **Distribuições a Pagar** — Proventos não pagos (R$)\n*   **Taxas Admin a Pagar** — Taxas de administração (R$)\n*   **Obrigações Imobiliárias** — Financiamentos, empréstimos (R$)\n*   **Total de Passivos** — Soma de todas as obrigações (R$)\n\n### Administrador:\n*   **administratorName** — Nome da instituição administradora\n*   **administratorCnpj** — CNPJ da instituição administradora\n*   **administratorAddress**, **administratorAddressNumber**, **administratorAddressComplement** — Endereço informado à CVM\n*   **administratorDistrict**, **administratorCity**, **administratorState**, **administratorZipCode** — Localização do administrador\n*   **administratorPhone1**, **administratorPhone2**, **administratorPhone3** — Telefones de contato\n*   **administratorWebsite**, **administratorEmail** — Site e email de contato\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar outros FIIs, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Relatórios dos últimos 12 meses (apenas versão mais recente)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/reports?symbols=HGLG11\"\n\n# Relatórios em período específico com paginação\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/reports?symbols=MXRF11,KNCR11&startDate=2024-01-01&endDate=2024-12-31&page=1&limit=10\"\n\n# Todas as versões dos relatórios (incluindo retificações)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/reports?symbols=XPLG11&allVersions=true&sortBy=referenceDate&sortOrder=desc\"\n```\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolos separados por vírgula (máximo 20). Exemplo: HGLG11,MXRF11",
              "example": "HGLG11,MXRF11"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início no formato YYYY-MM-DD",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim no formato YYYY-MM-DD",
              "example": "2025-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação",
              "example": "referenceDate"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Direção da ordenação",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "default": 1,
              "description": "Página (começa em 1)",
              "example": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "default": 20,
              "description": "Itens por página (sem limite rígido; valores altos como 10000 são aceitos)",
              "example": 20
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "default": "false",
              "description": "Incluir todas as versões dos relatórios (padrão: false, retorna apenas a mais recente)",
              "example": "false"
            },
            "required": false,
            "name": "allVersions",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Relatórios mensais paginados dos FIIs retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiReportsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/fii/dividends": {
      "get": {
        "tags": [
          "Fundos Imobiliários"
        ],
        "operationId": "getFiiDividends",
        "summary": "Obter Histórico de Proventos",
        "description": "\nRetorna o histórico de pagamentos de proventos (Rendimentos, Amortizações) dos FIIs. Analise a rentabilidade histórica e padrões de distribuição de cada fundo.\n\n### Funcionalidades:\n*   **Histórico completo:** Rendimentos e amortizações desde a criação do fundo\n*   **Múltiplos FIIs:** Consulte até 20 FIIs em uma única requisição\n*   **Filtro por período:** Especifique startDate e endDate (padrão: últimos 12 meses)\n*   **Ordenação:** Ordene por data de pagamento, taxa, data de aprovação, etc.\n*   **Tipos de proventos:** Rendimentos (distribuições mensais) e Amortizações (devolução de capital)\n\n### Campos da Resposta:\n*   **symbol** — Ticker do FII\n*   **label** — Tipo do provento (RENDIMENTO, AMORTIZAÇÃO)\n*   **rate** — Valor por cota distribuído (R$)\n*   **paymentDate** — Data efetiva de pagamento quando disponível; fallback para data de referência em backfills CVM\n*   **lastDatePrior** — Data-com (último dia para ter direito ao provento)\n*   **approvedOn** — Data de aprovação do provento\n*   **relatedTo** — Período relacionado (quando aplicável)\n*   **isinCode** — Código ISIN (quando aplicável)\n*   **remarks** — Observações (ex: \"backfilled from FiiMonthlyReports\")\n\n### ⚠️ Importante - Caveat sobre Dados de Proventos:\nQuando disponível via fontes externas, `paymentDate` representa a data efetiva de pagamento. Quando o fundo cai no fallback dos relatórios mensais da CVM, `paymentDate` pode coincidir com a data de referência do relatório. CVM monthly reports não incluem datas reais universais de ex-date e payment date para todos os FIIs, então a cobertura varia por fundo e período.\n\n### Autenticação:\nOs FIIs **MXRF11** e **HGLG11** podem ser consultados sem autenticação para testes. Para acessar outros FIIs, é necessário um token de API válido.\n\n### Exemplos de Requisição:\n```bash\n# Histórico de proventos dos últimos 12 meses\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/dividends?symbols=HGLG11\"\n\n# Histórico em período específico, ordenado por data decrescente\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/fii/dividends?symbols=MXRF11,KNCR11&startDate=2023-01-01&endDate=2024-12-31&sortBy=paymentDate&sortOrder=desc\"\n```\n\n### Fonte dos Dados:\nCVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Startup\n**Autenticação:** Necessária (exceto MXRF11 e HGLG11)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolos separados por vírgula (máximo 20). Exemplo: HGLG11,MXRF11",
              "example": "HGLG11,MXRF11"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início no formato YYYY-MM-DD",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim no formato YYYY-MM-DD",
              "example": "2025-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação",
              "example": "referenceDate"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Direção da ordenação",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Histórico de rendimentos dos FIIs retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiiDividendsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/inflation": {
      "get": {
        "tags": [
          "Indicadores"
        ],
        "operationId": "getInflation",
        "summary": "Obter Dados de Inflação (IPCA)",
        "description": "\nRetorna dados históricos do **IPCA (Índice Nacional de Preços ao Consumidor Amplo)**, o índice oficial de inflação do Brasil, medido pelo IBGE.\n\n### Funcionalidades\n\n*   **Dados Mensais:** Variação percentual mensal do IPCA\n*   **Histórico Completo:** Dados desde janeiro/2000 até o mês atual\n*   **Filtros de Período:** Use `start` e `end` para definir período específico (formato DD/MM/YYYY)\n*   **Ordenação:** Ordene por data ou valor, crescente ou decrescente\n\n### Autenticação\n\nBearer token ou query param `token`. Requer plano Startup.\n\n### Exemplos de Uso\n\n```bash\n# Padrão (últimos 12 meses)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/inflation\"\n\n# Histórico completo\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/inflation?historical=true\"\n\n# Período específico\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/inflation?start=01/01/2023&end=31/12/2023\"\n\n# Ordenado por valor (decrescente)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/inflation?historical=true&sortBy=value&sortOrder=desc\"\n```\n\n### Parâmetros de Ordenação\n\n*   `sortBy`: `date` (padrão) ou `value`\n*   `sortOrder`: `desc` (padrão) ou `asc`\n\n### Campos da Resposta\n\n*   `date` — Data no formato DD/MM/YYYY\n*   `value` — Variação percentual do IPCA no mês\n*   `epochDate` — Data em timestamp Unix (milissegundos)\n\n### Sobre o IPCA\n\nO IPCA é o índice oficial de inflação do Brasil, calculado mensalmente pelo IBGE. Ele mede a variação de preços de uma cesta de produtos e serviços consumidos pelas famílias brasileiras.\n\n### Fonte dos Dados\n\nBanco Central do Brasil (BCB) — Série temporal 13522 do Sistema Gerador de Séries Temporais (SGS)\n\n**Plano Mínimo:** Startup | **Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Incluir dados históricos (true/false)",
              "example": "false"
            },
            "required": false,
            "name": "historical",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início (DD/MM/YYYY)",
              "example": "01/01/2023"
            },
            "required": false,
            "name": "start",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim (DD/MM/YYYY)",
              "example": "31/12/2023"
            },
            "required": false,
            "name": "end",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação (date ou value)",
              "example": "date"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Ordem de classificação (asc ou desc)",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Dados históricos de inflação (IPCA) retornados com sucesso conforme os filtros aplicados. Array contém variações percentuais mensais ordenadas conforme solicitado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InflationResponseSimple"
                }
              }
            }
          },
          "401": {
            "description": "**Não Autorizado.** Token de autenticação não fornecido ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "**Acesso Proibido.** Seu plano não tem acesso ao módulo de indicadores econômicos.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.** Erro interno ao processar a requisição.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "**Serviço Indisponível.** Serviço externo temporariamente indisponível.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Serviço externo temporariamente indisponível",
                      "example": {
                        "error": true,
                        "message": "Serviço externo temporariamente indisponível. Tente novamente em alguns minutos.",
                        "code": "EXTERNAL_API_ERROR"
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/inflation/available": {
      "get": {
        "tags": [
          "Indicadores"
        ],
        "operationId": "getInflationAvailable",
        "summary": "Listar Países com Dados de Inflação",
        "description": "\nRetorna a lista de países disponíveis para consulta de dados de inflação.\n\n### Países Disponíveis\n\n*   **brazil** — Dados do IPCA (IBGE)\n\nUse o valor retornado como referência para futuras expansões do endpoint.\n\n### Exemplo de Uso\n\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/inflation/available\"\n```\n\n**Plano Mínimo:** Startup | **Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de países disponíveis para dados de inflação retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InflationAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/macro/available": {
      "get": {
        "tags": [
          "Macroeconomia"
        ],
        "operationId": "getMacroAvailable",
        "summary": "Listar séries macroeconômicas disponíveis",
        "description": "\nLista as séries macroeconômicas disponíveis com slug, nome, unidade, frequência,\ncategoria e data de início do histórico. Endpoint público (use para descobrir\nslugs antes de chamar `/api/v2/macro` ou `/api/v2/macro/latest`).\n\n### Filtros opcionais\n\n- `q` — busca textual em slug, alias, nome e descrição (case-insensitive).\n  Quando presente, os resultados vêm ordenados por relevância.\n- `category` — filtra por categoria (ex: `interestRate`, `inflation`).\n\nOs filtros podem ser combinados.\n",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "Filtro textual aplicado a slug, alias, nome e descrição (case-insensitive, substring). Quando informado, os resultados vêm ordenados por relevância.",
              "example": "juros"
            },
            "required": false,
            "name": "q",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Filtrar por categoria (ex: `interestRate`, `inflation`).",
              "example": "interestRate"
            },
            "required": false,
            "name": "category",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de séries disponíveis retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MacroAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/macro": {
      "get": {
        "tags": [
          "Macroeconomia"
        ],
        "operationId": "getMacroSeries",
        "summary": "Séries históricas de indicadores macroeconômicos",
        "description": "\nRetorna observações históricas para uma ou mais séries macroeconômicas\nbrasileiras (taxas de juros, inflação, agregados monetários e atividade).\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Slugs separados por vírgula (máx. 20). Slugs disponíveis — interestRate: `selic`, `selicovernight`, `cdi`, `tr`; inflation: `ipca`, `ipca12m`, `inpc`, `igpm`, `igpdi`; activity: `ibcbr`, `pibmensal`; labor: `desemprego`; monetary: `m1`, `m4`; external: `reservas`. Veja `/api/v2/macro/available` para metadados completos (unidade, frequência, descrição) e busca por texto.",
              "example": "selic,ipca"
            },
            "required": true,
            "name": "symbols",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data inicial (YYYY-MM-DD). Padrão: 12 meses atrás.",
              "example": "2025-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data final (YYYY-MM-DD). Padrão: hoje.",
              "example": "2026-04-30"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Ordenação por data.",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "exclusiveMinimum": true,
              "description": "Máximo de observações por série (padrão 20). Sem teto — passe `limit=10000` para histórico completo.",
              "example": 20
            },
            "required": false,
            "name": "limit",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Observações retornadas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MacroSeriesDataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Parâmetros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Token ausente ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Plano sem acesso ao módulo de macroeconomia.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/macro/latest": {
      "get": {
        "tags": [
          "Macroeconomia"
        ],
        "operationId": "getMacroSeriesLatest",
        "summary": "Último valor de cada série macroeconômica",
        "description": "\nSnapshot dos valores mais recentes para uma lista de séries (ou todas, se\n`symbols` for omitido).\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Slugs separados por vírgula. Omitir retorna o último valor de TODAS as séries disponíveis. Slugs: selic, selicovernight, cdi, tr, ipca, ipca12m, inpc, igpm, igpdi, ibcbr, pibmensal, desemprego, m1, m4, reservas. Veja `/api/v2/macro/available` para metadados.",
              "example": "selic,cdi,ipca"
            },
            "required": false,
            "name": "symbols",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Snapshot retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MacroSeriesLatestResponse"
                }
              }
            }
          },
          "400": {
            "description": "Parâmetros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Token ausente ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Plano sem acesso ao módulo de macroeconomia.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/options/expirations": {
      "get": {
        "tags": [
          "Opções"
        ],
        "operationId": "listOptionExpirations",
        "summary": "Listar vencimentos de opções",
        "description": "Retorna os vencimentos disponíveis para um ativo subjacente. Sem token, o sandbox aceita apenas `underlying=PETR4`.",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Código do ativo subjacente (ação, ETF ou índice) das opções que você quer listar.",
              "example": "PETR4"
            },
            "required": true,
            "name": "underlying",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "default": "false",
              "description": "Se `true`, inclui vencimentos já passados. Padrão `false` retorna apenas vencimentos futuros."
            },
            "required": false,
            "name": "includeExpired",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Vencimentos retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionExpirationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/options/strikes": {
      "get": {
        "tags": [
          "Opções"
        ],
        "operationId": "listOptionStrikes",
        "summary": "Listar preços de exercício de opções",
        "description": "Retorna os strikes disponíveis em um vencimento específico. Sem token, o sandbox aceita apenas `underlying=PETR4`.",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Código do ativo subjacente (ação, ETF ou índice) das opções que você quer listar.",
              "example": "PETR4"
            },
            "required": true,
            "name": "underlying",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de vencimento das opções, no formato YYYY-MM-DD. Use `/expirations` para descobrir os vencimentos disponíveis.",
              "example": "2026-05-15"
            },
            "required": true,
            "name": "expirationDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "call",
                "put"
              ],
              "description": "Filtra por tipo da opção: `call` (compra) ou `put` (venda). Omita para retornar ambos."
            },
            "required": false,
            "name": "side",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Preços de exercício retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionStrikesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/options/chain": {
      "get": {
        "tags": [
          "Opções"
        ],
        "operationId": "getOptionSeries",
        "summary": "Listar séries negociadas de opções",
        "description": "Retorna as séries negociadas de um vencimento, combinando metadados do contrato com o último OHLCV disponível até a data solicitada. Sem token, o sandbox aceita apenas `underlying=PETR4`.",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Código do ativo subjacente (ação, ETF ou índice) das opções que você quer listar.",
              "example": "PETR4"
            },
            "required": true,
            "name": "underlying",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de vencimento das opções, no formato YYYY-MM-DD. Use `/expirations` para descobrir os vencimentos disponíveis.",
              "example": "2026-05-15"
            },
            "required": true,
            "name": "expirationDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data EOD usada para buscar preço e volume do dia, no formato YYYY-MM-DD. Padrão: último pregão disponível.",
              "example": "2026-04-17"
            },
            "required": false,
            "name": "date",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "call",
                "put"
              ],
              "description": "Filtra por tipo da opção: `call` (compra) ou `put` (venda). Omita para retornar ambos."
            },
            "required": false,
            "name": "side",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "nullable": true,
              "description": "Strike mínimo a considerar. Útil para limitar a resposta a uma faixa de preços de exercício."
            },
            "required": false,
            "name": "minStrike",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "nullable": true,
              "description": "Strike máximo a considerar. Útil para limitar a resposta a uma faixa de preços de exercício."
            },
            "required": false,
            "name": "maxStrike",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Séries retornadas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionSeriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/options/historical": {
      "get": {
        "tags": [
          "Opções"
        ],
        "operationId": "getOptionHistorical",
        "summary": "Obter histórico diário de uma série de opção",
        "description": "Retorna o histórico diário EOD de uma única série, identificada por `symbol` e `expirationDate`. Sem token, o sandbox aceita apenas símbolos com prefixo `PETR` (opções de PETR4).",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Símbolo da opção",
              "example": "PETRE370"
            },
            "required": true,
            "name": "symbol",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de vencimento no formato YYYY-MM-DD",
              "example": "2026-05-15"
            },
            "required": true,
            "name": "expirationDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "nullable": true,
              "description": "Preço de exercício. Use quando o mesmo símbolo aparecer mais de uma vez no mesmo vencimento.",
              "example": 34
            },
            "required": false,
            "name": "strike",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início no formato YYYY-MM-DD (padrão: 12 meses)",
              "example": "2025-06-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim no formato YYYY-MM-DD",
              "example": "2026-04-17"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc",
              "description": "Ordem dos pontos em `history` por data: `asc` do mais antigo ao mais recente, `desc` do mais recente ao mais antigo. Padrão `desc`."
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Histórico retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionHistoricalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/prime-rate": {
      "get": {
        "tags": [
          "Indicadores"
        ],
        "operationId": "getPrimeRate",
        "summary": "Obter Dados da Taxa SELIC",
        "description": "\nRetorna dados históricos da **Taxa SELIC (Sistema Especial de Liquidação e de Custódia)**, a taxa básica de juros da economia brasileira, definida pelo COPOM (Comitê de Política Monetária) do Banco Central.\n\n### Funcionalidades\n\n*   **Dados Diários:** Taxa SELIC diária (meta anualizada, % a.a.)\n*   **Histórico Completo:** Dados desde janeiro/2000 até a data atual\n*   **Filtros de Período:** Use `start` e `end` (formato DD/MM/YYYY)\n*   **Ordenação:** Por data ou valor, crescente ou decrescente\n\n### Autenticação\n\nBearer token ou query param `token`. Requer plano Startup.\n\n### Exemplos de Uso\n\n```bash\n# Padrão (últimos 12 meses)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/prime-rate\"\n\n# Histórico completo\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/prime-rate?historical=true\"\n\n# Período específico\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/prime-rate?start=01/01/2023&end=31/12/2023\"\n\n# Ordenado por valor (decrescente)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/prime-rate?historical=true&sortBy=value&sortOrder=desc\"\n```\n\n### Parâmetros de Ordenação\n\n*   `sortBy`: `date` (padrão) ou `value`\n*   `sortOrder`: `desc` (padrão) ou `asc`\n\n### Campos da Resposta\n\n*   `date` — Data no formato DD/MM/YYYY\n*   `value` — Taxa SELIC meta anualizada (% a.a.)\n*   `epochDate` — Data em timestamp Unix (milissegundos)\n\n### Sobre a SELIC\n\nA SELIC é a taxa básica de juros da economia brasileira e influencia todas as demais taxas de juros do país (empréstimos, financiamentos, aplicações financeiras). Ela é definida pelo COPOM a cada 45 dias e serve como referência para o CDI.\n\n### Fonte dos Dados\n\nBanco Central do Brasil (BCB) — Série temporal 432 do Sistema Gerador de Séries Temporais (SGS)\n\n**Plano Mínimo:** Startup | **Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Incluir dados históricos (true/false)",
              "example": "false"
            },
            "required": false,
            "name": "historical",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de início (DD/MM/YYYY)",
              "example": "01/01/2023"
            },
            "required": false,
            "name": "start",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data de fim (DD/MM/YYYY)",
              "example": "31/12/2023"
            },
            "required": false,
            "name": "end",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Campo para ordenação (date ou value)",
              "example": "date"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Ordem de classificação (asc ou desc)",
              "example": "desc"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Dados históricos da taxa SELIC retornados com sucesso conforme os filtros aplicados. Array contém taxas diárias (% a.a.) ordenadas conforme solicitado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrimeRateResponseSimple"
                }
              }
            }
          },
          "401": {
            "description": "**Não Autorizado.** Token de autenticação não fornecido ou inválido.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "**Acesso Proibido.** Seu plano não tem acesso ao módulo de indicadores econômicos.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "**Erro Interno.** Erro interno ao processar a requisição.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "**Serviço Indisponível.** Serviço externo temporariamente indisponível.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Serviço externo temporariamente indisponível",
                      "example": {
                        "error": true,
                        "message": "Serviço externo temporariamente indisponível. Tente novamente em alguns minutos.",
                        "code": "EXTERNAL_API_ERROR"
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/prime-rate/available": {
      "get": {
        "tags": [
          "Indicadores"
        ],
        "operationId": "getPrimeRateAvailable",
        "summary": "Listar Países com Dados de Taxa de Juros",
        "description": "\nRetorna a lista de países disponíveis para consulta de dados de taxa de juros.\n\n### Países Disponíveis\n\n*   **brazil** — Taxa SELIC (Banco Central)\n\nUse o valor retornado como referência para futuras expansões do endpoint.\n\n### Exemplo de Uso\n\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/prime-rate/available\"\n```\n\n**Plano Mínimo:** Startup | **Autenticação:** Necessária\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de países disponíveis para dados de taxa de juros retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrimeRateAvailableResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/quote/list": {
      "get": {
        "tags": [
          "Cotações"
        ],
        "operationId": "getQuoteList",
        "summary": "Listar Ativos Disponíveis",
        "description": "\nRetorna uma lista paginada de todos os ativos disponíveis na API (Ações, FIIs, BDRs, ETFs, Índices). Use este endpoint para construir screeners, exploradores de ações ou para descobrir novos ativos.\n\n### Funcionalidades:\n*   **Busca por Nome ou Ticker:** Encontre ativos digitando \"Petrobras\", \"PETR4\" ou qualquer termo.\n*   **Filtros por Tipo:** Ações (stock), Fundos Imobiliários (fund), BDRs (bdr).\n*   **Filtros por Setor:** Energia, Financeiro, Tecnologia, Saúde, etc.\n*   **Ordenação Flexível:** Ordene por volume, preço, market cap ou nome.\n*   **Paginação:** Controle o número de resultados com `limit` e `page`.\n\n### Autenticação:\nRequer token Bearer. Obtenha seu token em [brapi.dev/dashboard](https://brapi.dev/dashboard).\n\n### Exemplos de Requisição:\n```bash\n# Listar todos os ativos (primeiros 100)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/quote/list\"\n\n# Buscar por nome ou ticker\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/quote/list?search=petrobras\"\n\n# Filtrar por tipo e ordenar por volume\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/quote/list?type=stock&sortBy=volume&sortOrder=desc&limit=10\"\n\n# Listar apenas FIIs de um setor específico\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/quote/list?type=fund&sector=Logística&limit=20\"\n```\n\n### Parâmetros de Ordenação:\n*   `volume` — Volume de negociação do dia\n*   `close` — Preço de fechamento\n*   `market_cap_basic` — Capitalização de mercado\n*   `name` — Nome da empresa (alfabético)\n\n### Tipos de Ativo:\n*   `stock` — Ações (Ações ordinárias e preferenciais)\n*   `fund` — Fundos Imobiliários (FIIs) e ETFs\n*   `bdr` — BDRs (Brazilian Depositary Receipts)\n\n**Plano Mínimo:** Gratuito\n**Autenticação:** Necessária (Bearer Token)\n",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Termo de busca para filtrar ativos"
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "close",
                "change",
                "change_abs",
                "volume",
                "market_cap_basic"
              ],
              "description": "Campo para ordenação"
            },
            "required": false,
            "name": "sortBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Ordem de classificação"
            },
            "required": false,
            "name": "sortOrder",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Número máximo de resultados"
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Número da página (paginação)"
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Filtrar por setor"
            },
            "required": false,
            "name": "sector",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "stock",
                "fund",
                "bdr"
              ],
              "description": "Filtrar por tipo de ativo"
            },
            "required": false,
            "name": "type",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Token de autenticação (alternativa ao header Authorization)"
            },
            "required": false,
            "name": "token",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de ativos retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteListResponse"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/quote/{tickers}": {
      "get": {
        "tags": [
          "Cotações"
        ],
        "operationId": "getQuote",
        "summary": "Consultar Cotação e Dados de Ativos",
        "description": "\n**O ENDPOINT MAIS IMPORTANTE DA API.** Obtém dados detalhados e abrangentes de um ou múltiplos ativos (ações, FIIs, BDRs) em uma única requisição. Combine cotações em tempo real, dados históricos, fundamentos e dividendos conforme necessário.\n\n### Funcionalidades:\n*   **Cotação em Tempo Real:** Preço atual, variação absoluta e percentual, volume, máxima/mínima do dia, range de 52 semanas.\n*   **Dados Históricos:** Preços OHLCV (Open, High, Low, Close, Volume) com intervalos flexíveis (1d, 5d, 1wk, 1mo, 3mo) e períodos (1d até max).\n*   **Fundamentos:** Balanço Patrimonial, DRE, Fluxo de Caixa, DVA, Indicadores-chave (P/L, P/VP, ROE, etc) via parâmetro `modules`.\n*   **Dividendos:** Histórico completo de proventos em dinheiro (dividendos, JCP) e bonificações.\n\n### Autenticação:\nRequer token Bearer no header ou como query param. Tickers de teste **PETR4** e **VALE3** funcionam sem autenticação.\n\n```bash\n# Via header (recomendado)\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/quote/PETR4\"\n\n# Via query param\ncurl \"https://brapi.dev/api/quote/PETR4?token=SEU_TOKEN\"\n```\n\n### Exemplos de Requisição:\n```bash\n# Simples: apenas cotação atual\ncurl \"https://brapi.dev/api/quote/PETR4?token=SEU_TOKEN\"\n\n# Múltiplos tickers em uma requisição\ncurl \"https://brapi.dev/api/quote/PETR4,VALE3,ITUB4?token=SEU_TOKEN\"\n\n# Com dados históricos (últimos 12 meses, diário)\ncurl \"https://brapi.dev/api/quote/PETR4?range=1y&interval=1d&token=SEU_TOKEN\"\n\n# Com módulos de fundamentos (balanço e DRE)\ncurl \"https://brapi.dev/api/quote/PETR4?modules=balanceSheetHistory,incomeStatementHistory&token=SEU_TOKEN\"\n\n# Completo: histórico + dividendos + estatísticas-chave\ncurl \"https://brapi.dev/api/quote/PETR4?range=6mo&interval=1d&dividends=true&modules=balanceSheetHistory,defaultKeyStatistics&token=SEU_TOKEN\"\n```\n\n### Módulos Disponíveis:\n*   `summaryProfile` — Perfil da empresa (CNPJ, setor, descrição, website, funcionários)\n*   `balanceSheetHistory` — Balanço Patrimonial anual\n*   `balanceSheetHistoryQuarterly` — Balanço Patrimonial trimestral\n*   `incomeStatementHistory` — DRE anual (Demonstração de Resultado do Exercício)\n*   `incomeStatementHistoryQuarterly` — DRE trimestral\n*   `financialData` — Indicadores financeiros atuais (TTM - Trailing Twelve Months)\n*   `financialDataHistory` — Histórico anual de indicadores financeiros\n*   `financialDataHistoryQuarterly` — Histórico trimestral de indicadores financeiros\n*   `defaultKeyStatistics` — Estatísticas-chave (P/L, P/VP, ROE, Dividend Yield, etc)\n*   `defaultKeyStatisticsHistory` — Histórico anual de estatísticas-chave\n*   `defaultKeyStatisticsHistoryQuarterly` — Histórico trimestral de estatísticas-chave\n*   `cashflowHistory` — Fluxo de Caixa anual\n*   `cashflowHistoryQuarterly` — Fluxo de Caixa trimestral\n*   `valueAddedHistory` — DVA anual (Demonstração de Valor Adicionado)\n*   `valueAddedHistoryQuarterly` — DVA trimestral\n\n### Intervalos Válidos (histórico):\n*   `1d` — Diário\n*   `5d` — 5 dias\n*   `1wk` — Semanal\n*   `1mo` — Mensal\n*   `3mo` — Trimestral\n\n### Períodos Válidos (range):\n*   `1d` — Último dia\n*   `5d` — Últimos 5 dias\n*   `1mo` — Último mês\n*   `3mo` — Últimos 3 meses\n*   `6mo` — Últimos 6 meses\n*   `1y` — Último ano\n*   `2y` — Últimos 2 anos\n*   `5y` — Últimos 5 anos\n*   `10y` — Últimos 10 anos\n*   `ytd` — Ano até hoje\n*   `max` — Máximo disponível\n\n### Campos Principais da Resposta:\n*   `symbol` — Ticker do ativo (ex: PETR4)\n*   `shortName` — Nome curto da empresa\n*   `currency` — Moeda (BRL)\n*   `regularMarketPrice` — Preço atual em BRL\n*   `regularMarketChange` — Variação absoluta\n*   `regularMarketChangePercent` — Variação percentual (%)\n*   `regularMarketVolume` — Volume de negociação do dia\n*   `regularMarketDayHigh` — Máxima do dia\n*   `regularMarketDayLow` — Mínima do dia\n*   `fiftyTwoWeekHigh` — Máxima de 52 semanas\n*   `fiftyTwoWeekLow` — Mínima de 52 semanas\n*   `marketCap` — Capitalização de mercado\n*   `historicalDataPrice` — Array de dados OHLCV (quando `range`/`interval` fornecidos)\n*   `dividendsData` — Histórico de dividendos (quando `dividends=true`)\n\n### Tickers Populares (Teste):\n*   `PETR4` — Petrobras (Energia)\n*   `VALE3` — Vale (Mineração)\n*   `ITUB4` — Itaú Unibanco (Financeiro)\n*   `BBDC4` — Bradesco (Financeiro)\n*   `ABEV3` — Ambev (Consumo)\n*   `WEGE3` — WEG (Indústria)\n*   `RENT3` — Localiza (Transporte)\n*   `BBAS3` — Banco do Brasil (Financeiro)\n*   `MGLU3` — Magazine Luiza (Varejo)\n\n### Fonte dos Dados:\nB3 (Bolsa de Valores do Brasil), CVM (Comissão de Valores Mobiliários)\n\n**Plano Mínimo:** Gratuito (limitado a 1 ticker/requisição e módulos básicos)\n**Autenticação:** Necessária para produção (tickers de teste PETR4 e VALE3 funcionam sem token)\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Ticker(s) de ativos separados por vírgula (ex: PETR4 ou PETR4,VALE3,ITUB4)",
              "example": "PETR4,VALE3"
            },
            "required": true,
            "name": "tickers",
            "in": "path"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "1d",
                "2d",
                "5d",
                "7d",
                "1mo",
                "3mo",
                "6mo",
                "1y",
                "2y",
                "5y",
                "10y",
                "ytd",
                "max"
              ],
              "description": "Período para dados históricos de preço"
            },
            "required": false,
            "name": "range",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "1m",
                "2m",
                "5m",
                "15m",
                "30m",
                "60m",
                "90m",
                "1h",
                "1d",
                "5d",
                "1wk",
                "1mo",
                "3mo"
              ],
              "description": "Intervalo/granularidade dos dados históricos"
            },
            "required": false,
            "name": "interval",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data inicial para dados históricos (formato YYYY-MM-DD)",
              "example": "2024-01-01"
            },
            "required": false,
            "name": "startDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Data final para dados históricos (formato YYYY-MM-DD)",
              "example": "2024-12-31"
            },
            "required": false,
            "name": "endDate",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "description": "Incluir histórico de dividendos e JCP"
            },
            "required": false,
            "name": "dividends",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Módulos de dados adicionais separados por vírgula",
              "example": "summaryProfile,balanceSheetHistory,financialData"
            },
            "required": false,
            "name": "modules",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "description": "Token de autenticação (alternativa ao header Authorization)"
            },
            "required": false,
            "name": "token",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Dados dos ativos recuperados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteTickersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Requisição inválida - parâmetros incorretos ou ausentes",
                      "example": {
                        "error": true,
                        "message": "Parâmetros inválidos",
                        "code": "BAD_REQUEST"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Não autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Acesso negado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Acesso negado - permissões insuficientes para este recurso",
                      "example": {
                        "error": true,
                        "message": "Você não tem permissão para acessar este recurso",
                        "code": "FORBIDDEN"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Limite de requisições excedido",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Limite de requisições excedido",
                      "example": {
                        "error": true,
                        "message": "Limite de requisições excedido. Tente novamente mais tarde.",
                        "code": "RATE_LIMIT_EXCEEDED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sdks": {
      "get": {
        "tags": [
          "Utilitários"
        ],
        "operationId": "getSdks",
        "summary": "Listar SDKs Oficiais",
        "description": "Retorna página com informações sobre as SDKs oficiais da brapi para integração rápida.\n\n### SDKs Disponíveis\n\n*   **TypeScript/JavaScript:** `npm install brapi` — GitHub: https://github.com/brapi-dev/brapi-typescript\n*   **Python:** `pip install brapi` — GitHub: https://github.com/brapi-dev/brapi-python\n\n### Nota\n\nRecomendamos o uso das SDKs para autenticação automática, tipagem completa e retry inteligente.\n\n**Plano Mínimo:** Gratuito\n**Autenticação:** Não necessária (Público)",
        "responses": {
          "200": {
            "description": "Página HTML de SDKs",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/user/usage": {
      "get": {
        "tags": [
          "Conta"
        ],
        "operationId": "getUserUsage",
        "summary": "Obter uso atual da conta autenticada",
        "description": "\nRetorna o uso atual da conta autenticada com dados frescos do Postgres.\n\n### O que retorna\n\n* `planName` — plano atual da conta (`free`, `startup`, `pro`)\n* `planLimit` — limite de requisições do plano\n* `currentUsage` — uso atual contabilizado no banco\n* `remainingUsage` — saldo restante dentro da janela atual\n* `usageWindow` — janela usada para contagem (`billing-cycle` ou `rolling-30d`)\n* `subscriptionPeriod` — período atual de assinatura salvo no usuário\n\n### Autenticação\n\nBearer token ou query param `token`.\n\n### Exemplo\n\n```bash\ncurl -H \"Authorization: Bearer SEU_TOKEN\" \"https://brapi.dev/api/v2/user/usage\"\n```\n",
        "security": [
          {
            "Bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Uso da conta retornado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserUsageResponse"
                }
              }
            }
          },
          "401": {
            "description": "Token ausente, inválido ou inativo.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Token de autenticação ausente ou inválido",
                      "example": {
                        "error": true,
                        "message": "Token de autenticação inválido ou ausente",
                        "code": "UNAUTHORIZED"
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Usuário associado ao token não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    },
                    {
                      "description": "Recurso não encontrado",
                      "example": {
                        "error": true,
                        "message": "Recurso não encontrado",
                        "code": "NOT_FOUND"
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Erro interno ao buscar o uso da conta.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}