{"openapi":"3.1.0","info":{"title":"Visno Data API","description":"API pública de dados financeiros de ações da B3. Autenticação via header `X-API-Key`. O dicionário de dados (nomes, tipos e descrições dos campos) está nos schemas deste OpenAPI. Ver /data-api/docs no portal para exemplos e limites de plano.","version":"1.41.0"},"paths":{"/data/v1/stocks":{"get":{"tags":["public-stocks"],"summary":"List Stocks","description":"Catálogo leve de empresas listadas na B3 (nome e tickers).","operationId":"list_stocks_data_v1_stocks_get","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"accept-language","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicStockSummary"},"title":"Response List Stocks Data V1 Stocks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data/v1/stocks/{ticker}":{"get":{"tags":["public-stocks"],"summary":"Get Stock","description":"Perfil e indicadores fundamentalistas de uma ação.","operationId":"get_stock_data_v1_stocks__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"accept-language","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStock"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data/v1/stocks/{ticker}/quote":{"get":{"tags":["public-stocks"],"summary":"Get Quote","description":"Histórico completo de cotações diárias (OHLC + close ajustado + volume).","operationId":"get_quote_data_v1_stocks__ticker__quote_get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"accept-language","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicQuoteBar"},"title":"Response Get Quote Data V1 Stocks  Ticker  Quote Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data/v1/stocks/{ticker}/history/{metric}":{"get":{"tags":["public-stocks"],"summary":"Get History","description":"Série histórica de um indicador (histórico completo).","operationId":"get_history_data_v1_stocks__ticker__history__metric__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"granularity","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SerieGranularity"},{"type":"null"}],"title":"Granularity"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}},{"name":"accept-language","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicMetricPoint"},"title":"Response Get History Data V1 Stocks  Ticker  History  Metric  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PublicMetricPoint":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Data do ponto na série (ISO 8601)"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"}},"type":"object","required":["date"],"title":"PublicMetricPoint"},"PublicQuoteBar":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Data do pregão (ISO 8601)"},"open":{"type":"number","title":"Open","description":"Abertura"},"high":{"type":"number","title":"High","description":"Máxima"},"low":{"type":"number","title":"Low","description":"Mínima"},"close":{"type":"number","title":"Close","description":"Fechamento"},"adjusted_close":{"type":"number","title":"Adjusted Close","description":"Fechamento ajustado por proventos e eventos corporativos"},"volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume","description":"Volume financeiro"}},"type":"object","required":["date","open","high","low","close","adjusted_close"],"title":"PublicQuoteBar","description":"Barra diária OHLC — item de GET /stocks/{ticker}/quote."},"PublicStock":{"properties":{"ticker":{"type":"string","title":"Ticker"},"company":{"type":"string","title":"Company"},"cnpj":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cnpj"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector","description":"Setor Visno"},"subsector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subsector","description":"Subsetor Visno"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity"},"cvm_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cvm Status","description":"Status do registro na CVM"},"tickers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tickers","description":"Tickers listados da mesma empresa"},"judicial_recovery":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Judicial Recovery"},"free_float":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Free Float"},"years_listed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Listed"},"last_price_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Price Date"},"updated_at":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Updated At"},"last_report_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Report Date","description":"Data do último DFP/ITR"},"next_report_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Report Date","description":"Data prevista do próximo DFP/ITR"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"trading_volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trading Volume"},"market_cap":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Market Cap"},"enterprise_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Enterprise Value"},"dy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dy","description":"Dividend yield"},"vpa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vpa"},"lpa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lpa"},"target_price_graham":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Price Graham"},"net_revenue":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Revenue"},"gross_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Profit"},"net_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Profit"},"ebit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ebit"},"ebitda":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ebitda"},"net_worth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Worth"},"assets":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Assets"},"liabilities":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liabilities"},"cash_and_cash_equivalents":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cash And Cash Equivalents"},"inventories":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Inventories"},"short_term_debt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Short Term Debt"},"long_term_debt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Long Term Debt"},"gross_debt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Debt"},"net_debt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Debt"},"operating_cash_flow":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Operating Cash Flow"},"investing_cash_flow":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Investing Cash Flow"},"financing_cash_flow":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Financing Cash Flow"},"capex":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Capex"},"free_cash_flow":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Free Cash Flow"},"net_revenue_cagr_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Revenue Cagr 5Y"},"net_profit_cagr_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Profit Cagr 5Y"},"ebit_cagr_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ebit Cagr 5Y"},"ebitda_cagr_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ebitda Cagr 5Y"},"ev_ebit_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Ebit Ratio"},"ev_ebitda_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Ebitda Ratio"},"ev_net_revenue_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Net Revenue Ratio"},"ev_assets_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Assets Ratio"},"ev_free_cash_flow_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Free Cash Flow Ratio"},"ev_operating_cash_flow_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ev Operating Cash Flow Ratio"},"price_free_cash_flow_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Free Cash Flow Ratio"},"price_operating_cash_flow_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Operating Cash Flow Ratio"},"price_net_worth_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Net Worth Ratio"},"price_net_profit_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Net Profit Ratio"},"price_net_revenue_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Net Revenue Ratio"},"price_assets_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Assets Ratio"},"price_ebit_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Ebit Ratio"},"gross_margin":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Margin"},"net_margin":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Margin"},"ebit_margin":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ebit Margin"},"roic":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roic"},"roe":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roe"},"roa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roa"},"asset_turnover":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Asset Turnover"},"net_debt_ebit_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Debt Ebit Ratio"},"net_debt_ebitda_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Debt Ebitda Ratio"},"net_debt_net_worth_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Debt Net Worth Ratio"},"gross_debt_net_worth_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Debt Net Worth Ratio"},"net_worth_assets_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Worth Assets Ratio"},"immediate_liquidity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Immediate Liquidity"},"current_liquidity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Liquidity"},"quick_liquidity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quick Liquidity"},"total_liquidity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Liquidity"}},"type":"object","required":["ticker","company"],"title":"PublicStock","description":"Perfil e indicadores de uma ação. Campos tipados para o OpenAPI servir de dicionário de dados."},"PublicStockSummary":{"properties":{"company":{"type":"string","title":"Company"},"tickers":{"items":{"type":"string"},"type":"array","title":"Tickers","description":"Tickers listados da empresa"}},"type":"object","required":["company","tickers"],"title":"PublicStockSummary","description":"Catálogo leve — usado em GET /stocks."},"SerieGranularity":{"type":"string","enum":["daily","monthly","quarterly","quarterly_ltm","yearly"],"title":"SerieGranularity","description":"Defines the granularity of a serie."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}