{"openapi":"3.1.0","info":{"title":"Profundidade - Plataforma de Dados Financeiros e Económicos de Angola","description":"Plataforma comercial de dados de mercado, API RESTful, Livro de Ordens e análise económica de Angola (BODIVA).","version":"2.0.0"},"paths":{"/api/v1/stream/ticker":{"get":{"tags":["Profundidade Financial API"],"summary":"Stream em Tempo Real de Cotações (Server-Sent Events / SSE)","description":"Transmissão contínua em tempo real (Server-Sent Events) de atualizações de preços,\nofertas de compra/venda e volume de mercado para dashboards e terminais de negociação.","operationId":"stream_market_ticker_api_v1_stream_ticker_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/forex/rates":{"get":{"tags":["Profundidade Financial API"],"summary":"Cotações Oficiais de Câmbios do Banco Nacional de Angola (BNA)","description":"Retorna as taxas de câmbio de referência do Banco Nacional de Angola (USD, EUR, ZAR, GBP).","operationId":"get_forex_rates_api_v1_forex_rates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForexRatesResponse"}}}}}}},"/api/v1/analytics/simulate-fx-indexed-bond":{"post":{"tags":["Profundidade Financial API"],"summary":"Simulador de Obrigações do Tesouro Indexadas ao Dólar (OT-ME)","description":"Simula os ganhos em Kwanzas de Obrigações OT-ME considerando a proteção contra a depreciação cambial do Dólar (USD/AOA).","operationId":"simulate_fx_bond_endpoint_api_v1_analytics_simulate_fx_indexed_bond_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FXIndexedBondRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FXIndexedBondResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/market/candlesticks":{"get":{"tags":["Profundidade Financial API"],"summary":"Velas OHLCV para Gráficos Analíticos (TradingView)","operationId":"get_candlesticks_api_v1_market_candlesticks_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","description":"Ticker do ativo (ex: BCGAAAAA, BFAAAAAA, BAIAAAAA, OT-NR)","default":"BCGAAAAA","title":"Symbol"},"description":"Ticker do ativo (ex: BCGAAAAA, BFAAAAAA, BAIAAAAA, OT-NR)"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","description":"Intervalo de tempo: 1D, 1W, 1M","default":"1D","title":"Interval"},"description":"Intervalo de tempo: 1D, 1W, 1M"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CandleResponse"},"title":"Response Get Candlesticks Api V1 Market Candlesticks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/market/movers":{"get":{"tags":["Profundidade Financial API"],"summary":"Maiores Altas, Baixas e Ativos Mais Negociados","operationId":"get_market_movers_api_v1_market_movers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketMoversResponse"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}]}},"/api/v1/export/market-summary":{"get":{"tags":["Profundidade Financial API"],"summary":"Exportar Resumo de Cotações em formato CSV","operationId":"export_market_summary_csv_api_v1_export_market_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/export/orderbook/{symbol}":{"get":{"tags":["Profundidade Financial API"],"summary":"Exportar Livro de Ordens em formato CSV","operationId":"export_orderbook_csv_api_v1_export_orderbook__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/simulate-investment":{"post":{"tags":["Profundidade Financial API"],"summary":"Simulador de Rendimento Líquido com Imposto IAC (Angola)","operationId":"simulate_investment_endpoint_api_v1_analytics_simulate_investment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxSimulatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxSimulatorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/calculator":{"post":{"tags":["Profundidade Financial API"],"summary":"Calculadora de Juros Corridos e Rendimento de Obrigações (OT-NR, OT-ME)","operationId":"calculate_bond_yield_api_v1_analytics_calculator_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BondCalculatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BondCalculatorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/benchmarks":{"get":{"tags":["Profundidade Financial API"],"summary":"Indicadores de Mercado e Curva de Rendimentos de Angola","operationId":"get_market_benchmarks_api_v1_analytics_benchmarks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/portfolio/analyze":{"post":{"tags":["Profundidade Financial API"],"summary":"Análise de Risco de Carteira, Duration e Alocação de Ativos","operationId":"analyze_portfolio_endpoint_api_v1_portfolio_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioAnalysisRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioAnalysisResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/calendar":{"get":{"tags":["Profundidade Financial API"],"summary":"Calendário de Leilões do Tesouro e Pagamento de Cupões","operationId":"get_events_calendar_api_v1_events_calendar_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EventItem"},"type":"array","title":"Response Get Events Calendar Api V1 Events Calendar Get"}}}}}}},"/api/v1/news/announcements":{"get":{"tags":["Profundidade Financial API"],"summary":"Notícias Oficiais e Factos Relevantes da BODIVA","operationId":"get_news_announcements_api_v1_news_announcements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NewsItem"},"type":"array","title":"Response Get News Announcements Api V1 News Announcements Get"}}}}}}},"/api/v1/keys/request":{"post":{"tags":["Profundidade Financial API"],"summary":"Solicitar uma nova Chave de API (API Key)","operationId":"request_api_key_api_v1_keys_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/validate":{"get":{"tags":["Profundidade Financial API"],"summary":"Validar estado e limites de uma Chave de API","operationId":"validate_api_key_api_v1_keys_validate_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/summary":{"get":{"tags":["Profundidade Financial API"],"summary":"Obter resumo actual de todos os títulos no mercado","operationId":"get_market_summary_api_v1_summary_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por tipologia do título","title":"Type"},"description":"Filtrar por tipologia do título"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pesquisar por código/ticker","title":"Search"},"description":"Pesquisar por código/ticker"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketSnapshotSummary"},"title":"Response Get Market Summary Api V1 Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderbook":{"get":{"tags":["Profundidade Financial API"],"summary":"Consultar registos do Livro de Ordens","operationId":"get_orderbook_api_v1_orderbook_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Código do título","title":"Symbol"},"description":"Código do título"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tipologia do título","title":"Type"},"description":"Tipologia do título"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Data específica das ordens","title":"Date"},"description":"Data específica das ordens"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limite máximo de registos","default":200,"title":"Limit"},"description":"Limite máximo de registos"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderBookEntryResponse"},"title":"Response Get Orderbook Api V1 Orderbook Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderbook/summary":{"get":{"tags":["Profundidade Financial API"],"summary":"Resumo do Livro de Ordens agrupado por título","operationId":"get_orderbook_summary_api_v1_orderbook_summary_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por tipologia","title":"Type"},"description":"Filtrar por tipologia"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pesquisar por ticker","title":"Search"},"description":"Pesquisar por ticker"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderBookSummary"},"title":"Response Get Orderbook Summary Api V1 Orderbook Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderbook/{symbol}":{"get":{"tags":["Profundidade Financial API"],"summary":"Obter Livro de Ordens completo de um título","operationId":"get_orderbook_for_symbol_api_v1_orderbook__symbol__get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderBookSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/instruments":{"get":{"tags":["Profundidade Financial API"],"summary":"Listar todos os valores mobiliários catalogados","operationId":"get_instruments_api_v1_instruments_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por tipologia do título","title":"Type"},"description":"Filtrar por tipologia do título"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Buscar por código","title":"Search"},"description":"Buscar por código"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentResponse"},"title":"Response Get Instruments Api V1 Instruments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/instruments/{symbol}":{"get":{"tags":["Profundidade Financial API"],"summary":"Obter detalhes e última cotação de um título específico","operationId":"get_instrument_detail_api_v1_instruments__symbol__get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Instrument Detail Api V1 Instruments  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history":{"get":{"tags":["Profundidade Financial API"],"summary":"Consultar histórico de cotações de títulos","operationId":"get_market_history_api_v1_history_get","security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}],"parameters":[{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Código do título","title":"Symbol"},"description":"Código do título"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por tipologia","title":"Type"},"description":"Filtrar por tipologia"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Data de início (YYYY-MM-DD)","title":"Start Date"},"description":"Data de início (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Data de fim (YYYY-MM-DD)","title":"End Date"},"description":"Data de fim (YYYY-MM-DD)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Número máximo de registos","default":200,"title":"Limit"},"description":"Número máximo de registos"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketSnapshotResponse"},"title":"Response Get Market History Api V1 History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stats":{"get":{"tags":["Profundidade Financial API"],"summary":"Estatísticas gerais do mercado BODIVA","operationId":"get_market_stats_api_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketStatsResponse"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyQuery":[]}]}},"/api/v1/sync":{"post":{"tags":["Profundidade Financial API"],"summary":"Sincronizar manualmente Resumo de Mercado e Livro de Ordens","operationId":"trigger_sync_api_v1_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResult"}}}}}}},"/api/v1/logs":{"get":{"tags":["Profundidade Financial API"],"summary":"Ver registos de sincronização","operationId":"get_sync_logs_api_v1_logs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SyncLogResponse"},"title":"Response Get Sync Logs Api V1 Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"APIKeyRequest":{"properties":{"client_name":{"type":"string","title":"Client Name","description":"Nome da empresa ou cliente"},"email":{"type":"string","title":"Email","description":"E-mail corporativo para contato"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case","description":"Caso de uso / aplicação"},"plan":{"type":"string","title":"Plan","description":"Plano desejado: free, basic, pro, enterprise","default":"free"}},"type":"object","required":["client_name","email"],"title":"APIKeyRequest"},"APIKeyResponse":{"properties":{"key":{"type":"string","title":"Key"},"client_name":{"type":"string","title":"Client Name"},"email":{"type":"string","title":"Email"},"plan":{"type":"string","title":"Plan"},"status":{"type":"string","title":"Status"},"rate_limit_per_minute":{"type":"integer","title":"Rate Limit Per Minute"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"message":{"type":"string","title":"Message"}},"type":"object","required":["key","client_name","email","plan","status","rate_limit_per_minute","created_at","message"],"title":"APIKeyResponse"},"BondCalculatorRequest":{"properties":{"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","description":"Quantidade de obrigações","default":1},"nominal_value":{"type":"number","minimum":1.0,"title":"Nominal Value","description":"Valor nominal de cada título (AOA)","default":100000.0},"clean_price_pct":{"type":"number","minimum":0.0,"title":"Clean Price Pct","description":"Preço limpo (%)","default":100.0},"coupon_rate_pct":{"type":"number","minimum":0.0,"title":"Coupon Rate Pct","description":"Taxa de cupão anual (%)","default":16.5},"issue_date":{"type":"string","title":"Issue Date","description":"Data de emissão (YYYY-MM-DD)","default":"2024-01-15"},"maturity_date":{"type":"string","title":"Maturity Date","description":"Data de vencimento (YYYY-MM-DD)","default":"2029-01-15"},"settlement_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Settlement Date","description":"Data de liquidação (YYYY-MM-DD)"}},"type":"object","title":"BondCalculatorRequest"},"BondCalculatorResponse":{"properties":{"clean_price_pct":{"type":"number","title":"Clean Price Pct"},"accrued_interest_pct":{"type":"number","title":"Accrued Interest Pct"},"dirty_price_pct":{"type":"number","title":"Dirty Price Pct"},"principal_amount_aoa":{"type":"number","title":"Principal Amount Aoa"},"accrued_interest_aoa":{"type":"number","title":"Accrued Interest Aoa"},"total_settlement_amount_aoa":{"type":"number","title":"Total Settlement Amount Aoa"},"days_accrued":{"type":"integer","title":"Days Accrued"},"coupon_rate_pct":{"type":"number","title":"Coupon Rate Pct"},"ytm_estimate_pct":{"type":"number","title":"Ytm Estimate Pct"}},"type":"object","required":["clean_price_pct","accrued_interest_pct","dirty_price_pct","principal_amount_aoa","accrued_interest_aoa","total_settlement_amount_aoa","days_accrued","coupon_rate_pct","ytm_estimate_pct"],"title":"BondCalculatorResponse"},"CandleResponse":{"properties":{"time":{"type":"string","title":"Time"},"open":{"type":"number","title":"Open"},"high":{"type":"number","title":"High"},"low":{"type":"number","title":"Low"},"close":{"type":"number","title":"Close"},"volume":{"type":"number","title":"Volume"}},"type":"object","required":["time","open","high","low","close","volume"],"title":"CandleResponse"},"CashflowPeriod":{"properties":{"period":{"type":"integer","title":"Period"},"payment_date":{"type":"string","title":"Payment Date"},"gross_coupon_aoa":{"type":"number","title":"Gross Coupon Aoa"},"iac_tax_aoa":{"type":"number","title":"Iac Tax Aoa"},"net_coupon_aoa":{"type":"number","title":"Net Coupon Aoa"},"principal_remaining_aoa":{"type":"number","title":"Principal Remaining Aoa"}},"type":"object","required":["period","payment_date","gross_coupon_aoa","iac_tax_aoa","net_coupon_aoa","principal_remaining_aoa"],"title":"CashflowPeriod"},"EventItem":{"properties":{"id":{"type":"integer","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"title":{"type":"string","title":"Title"},"issuer":{"type":"string","title":"Issuer"},"date":{"type":"string","title":"Date"},"description":{"type":"string","title":"Description"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","event_type","title","issuer","date","description","status"],"title":"EventItem"},"FXIndexedBondRequest":{"properties":{"investment_usd":{"type":"number","minimum":100.0,"title":"Investment Usd","description":"Montante investido em USD equivalentes","default":10000.0},"usd_aoa_entry_rate":{"type":"number","minimum":100.0,"title":"Usd Aoa Entry Rate","description":"Taxa de câmbio USD/AOA inicial","default":925.5},"annual_coupon_usd_pct":{"type":"number","minimum":0.0,"title":"Annual Coupon Usd Pct","description":"Taxa de cupão em USD (%)","default":8.5},"years_to_maturity":{"type":"number","minimum":0.5,"title":"Years To Maturity","description":"Anos até ao vencimento da OT-ME","default":3.0},"expected_annual_devaluation_pct":{"type":"number","title":"Expected Annual Devaluation Pct","description":"Depreciação anual estimada do Kwanza vs USD (%)","default":5.0}},"type":"object","title":"FXIndexedBondRequest"},"FXIndexedBondResponse":{"properties":{"investment_usd":{"type":"number","title":"Investment Usd"},"usd_aoa_entry_rate":{"type":"number","title":"Usd Aoa Entry Rate"},"final_usd_aoa_rate":{"type":"number","title":"Final Usd Aoa Rate"},"initial_aoa_spent":{"type":"number","title":"Initial Aoa Spent"},"total_coupons_usd":{"type":"number","title":"Total Coupons Usd"},"final_usd_payout":{"type":"number","title":"Final Usd Payout"},"final_aoa_payout":{"type":"number","title":"Final Aoa Payout"},"total_profit_aoa":{"type":"number","title":"Total Profit Aoa"},"currency_protection_gain_aoa":{"type":"number","title":"Currency Protection Gain Aoa"},"coupon_gain_aoa":{"type":"number","title":"Coupon Gain Aoa"},"annualized_aoa_yield_pct":{"type":"number","title":"Annualized Aoa Yield Pct"}},"type":"object","required":["investment_usd","usd_aoa_entry_rate","final_usd_aoa_rate","initial_aoa_spent","total_coupons_usd","final_usd_payout","final_aoa_payout","total_profit_aoa","currency_protection_gain_aoa","coupon_gain_aoa","annualized_aoa_yield_pct"],"title":"FXIndexedBondResponse"},"ForexRateItem":{"properties":{"currency":{"type":"string","title":"Currency"},"name":{"type":"string","title":"Name"},"bna_reference_rate":{"type":"number","title":"Bna Reference Rate"},"buy_rate":{"type":"number","title":"Buy Rate"},"sell_rate":{"type":"number","title":"Sell Rate"},"change_24h_pct":{"type":"number","title":"Change 24H Pct"}},"type":"object","required":["currency","name","bna_reference_rate","buy_rate","sell_rate","change_24h_pct"],"title":"ForexRateItem"},"ForexRatesResponse":{"properties":{"reference_date":{"type":"string","title":"Reference Date"},"source":{"type":"string","title":"Source"},"rates":{"items":{"$ref":"#/components/schemas/ForexRateItem"},"type":"array","title":"Rates"}},"type":"object","required":["reference_date","source","rates"],"title":"ForexRatesResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstrumentResponse":{"properties":{"symbol":{"type":"string","title":"Symbol"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","default":"Valor Mobiliário"},"instrument_type":{"type":"string","title":"Instrument Type"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer"},"currency":{"type":"string","title":"Currency","default":"AOA"},"nominal_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nominal Value"},"coupon_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coupon Rate"},"maturity_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Maturity Date"}},"type":"object","required":["symbol","instrument_type"],"title":"InstrumentResponse"},"MarketMover":{"properties":{"symbol":{"type":"string","title":"Symbol"},"instrument_type":{"type":"string","title":"Instrument Type"},"price":{"type":"number","title":"Price"},"change_percent":{"type":"number","title":"Change Percent"},"amount":{"type":"number","title":"Amount"}},"type":"object","required":["symbol","instrument_type","price","change_percent","amount"],"title":"MarketMover"},"MarketMoversResponse":{"properties":{"top_gainers":{"items":{"$ref":"#/components/schemas/MarketMover"},"type":"array","title":"Top Gainers"},"top_losers":{"items":{"$ref":"#/components/schemas/MarketMover"},"type":"array","title":"Top Losers"},"most_active_by_volume":{"items":{"$ref":"#/components/schemas/MarketMover"},"type":"array","title":"Most Active By Volume"}},"type":"object","required":["top_gainers","top_losers","most_active_by_volume"],"title":"MarketMoversResponse"},"MarketSnapshotResponse":{"properties":{"symbol":{"type":"string","title":"Symbol"},"date":{"type":"string","format":"date","title":"Date"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"price":{"type":"number","title":"Price"},"change_percent":{"type":"number","title":"Change Percent"},"trades_count":{"type":"integer","title":"Trades Count"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"},"id":{"type":"integer","title":"Id"}},"type":"object","required":["symbol","date","timestamp","price","change_percent","trades_count","quantity","amount","id"],"title":"MarketSnapshotResponse"},"MarketSnapshotSummary":{"properties":{"symbol":{"type":"string","title":"Symbol"},"instrument_type":{"type":"string","title":"Instrument Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","default":"Valor Mobiliário"},"date":{"type":"string","format":"date","title":"Date"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"price":{"type":"number","title":"Price"},"change_percent":{"type":"number","title":"Change Percent"},"trades_count":{"type":"integer","title":"Trades Count"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"}},"type":"object","required":["symbol","instrument_type","date","timestamp","price","change_percent","trades_count","quantity","amount"],"title":"MarketSnapshotSummary"},"MarketStatsResponse":{"properties":{"total_instruments":{"type":"integer","title":"Total Instruments"},"total_trades_today":{"type":"integer","title":"Total Trades Today"},"total_volume_today":{"type":"number","title":"Total Volume Today"},"total_orderbook_entries_today":{"type":"integer","title":"Total Orderbook Entries Today"},"market_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Market Date"},"last_sync_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sync Timestamp"},"instrument_types_breakdown":{"additionalProperties":{"type":"integer"},"type":"object","title":"Instrument Types Breakdown","default":{}}},"type":"object","required":["total_instruments","total_trades_today","total_volume_today","total_orderbook_entries_today"],"title":"MarketStatsResponse"},"NewsItem":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"publisher":{"type":"string","title":"Publisher"},"date":{"type":"string","title":"Date"},"category":{"type":"string","title":"Category"},"summary":{"type":"string","title":"Summary"},"url":{"type":"string","title":"Url"}},"type":"object","required":["id","title","publisher","date","category","summary","url"],"title":"NewsItem"},"OrderBookEntryResponse":{"properties":{"symbol":{"type":"string","title":"Symbol"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"date":{"type":"string","format":"date","title":"Date"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"last_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Price"},"buy_quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buy Quantity"},"buy_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buy Price"},"buy_yield":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buy Yield"},"sell_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sell Price"},"sell_quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sell Quantity"},"sell_yield":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sell Yield"},"id":{"type":"integer","title":"Id"}},"type":"object","required":["symbol","date","timestamp","id"],"title":"OrderBookEntryResponse"},"OrderBookSummary":{"properties":{"symbol":{"type":"string","title":"Symbol"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"instrument_type":{"type":"string","title":"Instrument Type"},"date":{"type":"string","format":"date","title":"Date"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"last_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Price"},"bids":{"items":{"$ref":"#/components/schemas/OrderLevel"},"type":"array","title":"Bids","default":[]},"asks":{"items":{"$ref":"#/components/schemas/OrderLevel"},"type":"array","title":"Asks","default":[]}},"type":"object","required":["symbol","instrument_type","date","timestamp"],"title":"OrderBookSummary"},"OrderLevel":{"properties":{"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"yield_val":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Yield Val"}},"type":"object","title":"OrderLevel"},"PortfolioAnalysisRequest":{"properties":{"holdings":{"items":{"$ref":"#/components/schemas/PortfolioItem"},"type":"array","title":"Holdings"}},"type":"object","required":["holdings"],"title":"PortfolioAnalysisRequest"},"PortfolioAnalysisResponse":{"properties":{"total_portfolio_value_aoa":{"type":"number","title":"Total Portfolio Value Aoa"},"weighted_yield_pct":{"type":"number","title":"Weighted Yield Pct"},"macaulay_duration_years":{"type":"number","title":"Macaulay Duration Years"},"modified_duration_years":{"type":"number","title":"Modified Duration Years"},"estimated_annualized_volatility_pct":{"type":"number","title":"Estimated Annualized Volatility Pct"},"asset_allocation_pct":{"additionalProperties":{"type":"number"},"type":"object","title":"Asset Allocation Pct"}},"type":"object","required":["total_portfolio_value_aoa","weighted_yield_pct","macaulay_duration_years","modified_duration_years","estimated_annualized_volatility_pct","asset_allocation_pct"],"title":"PortfolioAnalysisResponse"},"PortfolioItem":{"properties":{"symbol":{"type":"string","title":"Symbol"},"instrument_type":{"type":"string","title":"Instrument Type","default":"OT-NR"},"quantity":{"type":"integer","title":"Quantity","default":1},"unit_price_aoa":{"type":"number","title":"Unit Price Aoa","default":100000.0},"yield_pct":{"type":"number","title":"Yield Pct","default":16.5},"maturity_years":{"type":"number","title":"Maturity Years","default":3.0}},"type":"object","required":["symbol"],"title":"PortfolioItem"},"SyncLogResponse":{"properties":{"id":{"type":"integer","title":"Id"},"data_type":{"type":"string","title":"Data Type"},"status":{"type":"string","title":"Status"},"records_ingested":{"type":"integer","title":"Records Ingested"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"}},"type":"object","required":["id","data_type","status","records_ingested","timestamp"],"title":"SyncLogResponse"},"SyncResult":{"properties":{"status":{"type":"string","title":"Status"},"records_ingested":{"type":"integer","title":"Records Ingested"},"market_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Date"},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","records_ingested","message"],"title":"SyncResult"},"TaxSimulatorRequest":{"properties":{"investment_amount_aoa":{"type":"number","minimum":1000.0,"title":"Investment Amount Aoa","description":"Montante a investir em AOA","default":1000000.0},"instrument_type":{"type":"string","title":"Instrument Type","description":"Tipologia do ativo: OT-NR, OT-ME, BT, Acções, Obrigações","default":"OT-NR"},"annual_yield_pct":{"type":"number","title":"Annual Yield Pct","description":"Taxa de rendimento / cupão anual (%)","default":16.5},"years_to_maturity":{"type":"number","minimum":0.1,"title":"Years To Maturity","description":"Anos até à maturidade do título","default":5.0}},"type":"object","title":"TaxSimulatorRequest"},"TaxSimulatorResponse":{"properties":{"investment_amount_aoa":{"type":"number","title":"Investment Amount Aoa"},"instrument_type":{"type":"string","title":"Instrument Type"},"annual_yield_pct":{"type":"number","title":"Annual Yield Pct"},"years_to_maturity":{"type":"number","title":"Years To Maturity"},"tax_info":{"additionalProperties":true,"type":"object","title":"Tax Info"},"total_gross_interest_aoa":{"type":"number","title":"Total Gross Interest Aoa"},"total_iac_tax_withheld_aoa":{"type":"number","title":"Total Iac Tax Withheld Aoa"},"total_net_interest_aoa":{"type":"number","title":"Total Net Interest Aoa"},"total_net_payout_aoa":{"type":"number","title":"Total Net Payout Aoa"},"net_annualized_yield_pct":{"type":"number","title":"Net Annualized Yield Pct"},"cashflow_schedule":{"items":{"$ref":"#/components/schemas/CashflowPeriod"},"type":"array","title":"Cashflow Schedule"}},"type":"object","required":["investment_amount_aoa","instrument_type","annual_yield_pct","years_to_maturity","tax_info","total_gross_interest_aoa","total_iac_tax_withheld_aoa","total_net_interest_aoa","total_net_payout_aoa","net_annualized_yield_pct","cashflow_schedule"],"title":"TaxSimulatorResponse"},"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"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"APIKeyQuery":{"type":"apiKey","in":"query","name":"api_key"}}}}