{"shipped_route_count":22,"shipped_rest_contract_count":30,"shipped_websocket_method_count":17,"identity_policy":{"anonymous":"Works without setup with IP-based request limits.","key":"Email-verified API keys use Authorization: Bearer <api_key> or X-Tvfin-Key.","limits":"When key-tier limits are too low, email sam@tvfin.bluedoor.sh or POST /v1/auth/limits/requests."},"routes":{"symbols_search":{"path":"/v1/symbols/search","endpoint_id":"symbol.search","methods":["GET"],"tag":"Symbols","summary":"Search Symbols","description":"Search TradingView's public symbol catalog by company, ticker, exchange, country, or asset type."},"news_headlines":{"path":"/v1/news/headlines","endpoint_id":"news.headlines.v2","methods":["GET"],"tag":"News","summary":"News Headlines","description":"Return current TradingView news headlines with language, market, provider, and symbol filters."},"news_latest":{"path":"/v1/news/latest","endpoint_id":"news.headlines.latest","methods":["GET"],"tag":"News","summary":"Latest News","description":"Return the latest TradingView news headlines."},"news_flow":{"path":"/v1/news/flow","endpoint_id":"news.flow.v2","methods":["GET"],"tag":"News","summary":"News Flow","description":"Return TradingView's news flow feed. Use version=v1 or version=v2 when a specific feed version is needed."},"symbol_news":{"path":"/v1/symbols/{symbol}/news","endpoint_id":"news.headlines.v2.symbol-view","methods":["GET"],"tag":"News","summary":"Symbol News","description":"Return news for a TradingView symbol such as NASDAQ:AAPL or AAPL with exchange=NASDAQ."},"calendar_economic":{"path":"/v1/calendar/economic","endpoint_id":"calendar.economic","methods":["GET"],"tag":"Calendar","summary":"Economic Calendar","description":"Return upcoming and recent economic calendar events."},"calendar_reuters":{"path":"/v1/calendar/economic/reuters","endpoint_id":"calendar.economic.reuters","methods":["GET"],"tag":"Calendar","summary":"Reuters Economic Calendar","description":"Return the Reuters-backed economic calendar feed exposed in TradingView."},"events_earnings":{"path":"/v1/events/earnings","endpoint_id":"calendar.earnings","methods":["GET","POST"],"tag":"Events","summary":"Earnings Events","description":"Return earnings calendar rows from TradingView scanner data."},"events_dividends":{"path":"/v1/events/dividends","endpoint_id":"calendar.dividends","methods":["GET","POST"],"tag":"Events","summary":"Dividend Events","description":"Return dividend calendar rows from TradingView scanner data."},"screeners_metadata":{"path":"/v1/screeners/{market}/metadata","endpoint_id":"scanner.metainfo","methods":["GET"],"tag":"Screeners","summary":"Screener Metadata","description":"Return available columns and metadata for a TradingView market screener."},"screeners_search":{"path":"/v1/screeners/{market}/search","endpoint_id":"scanner.scan","methods":["GET","POST"],"tag":"Screeners","summary":"Run Screener","description":"Run a TradingView market screener using friendly query parameters or a scanner JSON body."},"screeners_global":{"path":"/v1/screeners/global/search","endpoint_id":"scanner.scan.global","methods":["GET","POST"],"tag":"Screeners","summary":"Run Global Screener","description":"Run a cross-market TradingView scanner query."},"options_chain":{"path":"/v1/options/{symbol}/chain","endpoint_id":"scanner.scan.options","methods":["GET","POST"],"tag":"Options","summary":"Options Chain","description":"Return option contracts for an underlying symbol, including strikes, expirations, prices, volume, Greeks, and IV fields when available."},"options_implied_volatility":{"path":"/v1/options/{symbol}/implied-volatility","endpoint_id":"OptionsCharting.GetInTimeIV","methods":["GET"],"tag":"Options","summary":"Implied Volatility","description":"Return TradingView's in-time implied volatility series for an underlying symbol."},"options_underlying_aggregates":{"path":"/v1/options/{symbol}/underlying-aggregates","endpoint_id":"OptionsCharting.GetUnderlyingAggregates","methods":["GET"],"tag":"Options","summary":"Underlying Aggregates","description":"Return aggregate option-underlying metrics for a symbol."},"options_strategy_chart":{"path":"/v1/options/strategy-chart","endpoint_id":"OptionsCharting.PostStrategiesChart","methods":["GET","POST"],"tag":"Options","summary":"Strategy Chart","description":"Return strategy charting data for an options strategy payload."},"ideas":{"path":"/v1/ideas","endpoint_id":"ideas.list","methods":["GET"],"tag":"Ideas","summary":"Ideas","description":"Return public TradingView ideas, optionally filtered by symbol."},"scripts":{"path":"/v1/scripts","endpoint_id":"scripts.list","methods":["GET"],"tag":"Scripts","summary":"Scripts","description":"Return public TradingView scripts, optionally filtered by symbol."},"pine_builtins":{"path":"/v1/pine/builtins","endpoint_id":"PineFacade.ListBuiltins","methods":["GET"],"tag":"Pine","summary":"Pine Built-ins","description":"Return Pine built-in reference metadata."},"pine_parse_title":{"path":"/v1/pine/title","endpoint_id":"PineFacade.ParseTitle","methods":["GET","POST"],"tag":"Pine","summary":"Parse Pine Title","description":"Parse a Pine source snippet and return the script title metadata."},"pine_translate_source":{"path":"/v1/pine/translate","endpoint_id":"PineFacade.TranslateSource","methods":["GET","POST"],"tag":"Pine","summary":"Translate Pine Source","description":"Translate Pine source between supported Pine versions."},"alerts_status":{"path":"/v1/alerts/status","endpoint_id":"PriceAlerts.IsAlive","methods":["GET"],"tag":"Alerts","summary":"Alerts Status","description":"Return the TradingView price-alert backend health signal."}},"websocket":{"mode":"direct_sdk_connection","hosted_api_policy":"REST is hosted by tvfin; WebSocket opens directly from the SDK to TradingView.","shipped_method_count":17,"methods":[{"method_name":"set_auth_token","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"quote_create_session","quality":"config-method-validated-via-follow-up","mvp_surface":true},{"method_name":"quote_delete_session","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"chart_create_session","quality":"config-method-validated-via-follow-up","mvp_surface":true},{"method_name":"chart_delete_session","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"quote_set_fields","quality":"config-method-validated-via-follow-up","mvp_surface":true},{"method_name":"set_locale","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"switch_timezone","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"quote_add_symbols","quality":"real-data","mvp_surface":true},{"method_name":"quote_fast_symbols","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"quote_remove_symbols","quality":"config-method-no-direct-response","mvp_surface":true},{"method_name":"resolve_symbol","quality":"real-data","mvp_surface":true},{"method_name":"create_series","quality":"real-data","mvp_surface":true},{"method_name":"modify_series","quality":"real-data","mvp_surface":true},{"method_name":"remove_series","quality":"real-data","mvp_surface":true},{"method_name":"remove_study","quality":"real-data","mvp_surface":true},{"method_name":"request_more_data","quality":"real-data","mvp_surface":true}]},"endpoints":[{"name":"symbols_search","path":"/v1/symbols/search","methods":["GET"],"tag":"Symbols","summary":"Search Symbols","description":"Search TradingView's public symbol catalog by company, ticker, exchange, country, or asset type.","source_contract":"symbol.search","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":120,"stale_while_revalidate_seconds":1440}},{"name":"news_headlines","path":"/v1/news/headlines","methods":["GET"],"tag":"News","summary":"News Headlines","description":"Return current TradingView news headlines with language, market, provider, and symbol filters.","source_contract":"news.headlines.v2","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"news_latest","path":"/v1/news/latest","methods":["GET"],"tag":"News","summary":"Latest News","description":"Return the latest TradingView news headlines.","source_contract":"news.headlines.latest","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"news_flow","path":"/v1/news/flow","methods":["GET"],"tag":"News","summary":"News Flow","description":"Return TradingView's news flow feed. Use version=v1 or version=v2 when a specific feed version is needed.","source_contract":"news.flow.v2","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"symbol_news","path":"/v1/symbols/{symbol}/news","methods":["GET"],"tag":"News","summary":"Symbol News","description":"Return news for a TradingView symbol such as NASDAQ:AAPL or AAPL with exchange=NASDAQ.","source_contract":"news.headlines.v2.symbol-view","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"calendar_economic","path":"/v1/calendar/economic","methods":["GET"],"tag":"Calendar","summary":"Economic Calendar","description":"Return upcoming and recent economic calendar events.","source_contract":"calendar.economic","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":3,"stale_while_revalidate_seconds":303}},{"name":"calendar_reuters","path":"/v1/calendar/economic/reuters","methods":["GET"],"tag":"Calendar","summary":"Reuters Economic Calendar","description":"Return the Reuters-backed economic calendar feed exposed in TradingView.","source_contract":"calendar.economic.reuters","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":5,"stale_while_revalidate_seconds":305}},{"name":"events_earnings","path":"/v1/events/earnings","methods":["GET","POST"],"tag":"Events","summary":"Earnings Events","description":"Return earnings calendar rows from TradingView scanner data.","source_contract":"calendar.earnings","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":30,"stale_while_revalidate_seconds":360}},{"name":"events_dividends","path":"/v1/events/dividends","methods":["GET","POST"],"tag":"Events","summary":"Dividend Events","description":"Return dividend calendar rows from TradingView scanner data.","source_contract":"calendar.dividends","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":30,"stale_while_revalidate_seconds":360}},{"name":"screeners_metadata","path":"/v1/screeners/{market}/metadata","methods":["GET"],"tag":"Screeners","summary":"Screener Metadata","description":"Return available columns and metadata for a TradingView market screener.","source_contract":"scanner.metainfo","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"screeners_search","path":"/v1/screeners/{market}/search","methods":["GET","POST"],"tag":"Screeners","summary":"Run Screener","description":"Run a TradingView market screener using friendly query parameters or a scanner JSON body.","source_contract":"scanner.scan","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"screeners_global","path":"/v1/screeners/global/search","methods":["GET","POST"],"tag":"Screeners","summary":"Run Global Screener","description":"Run a cross-market TradingView scanner query.","source_contract":"scanner.scan.global","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"options_chain","path":"/v1/options/{symbol}/chain","methods":["GET","POST"],"tag":"Options","summary":"Options Chain","description":"Return option contracts for an underlying symbol, including strikes, expirations, prices, volume, Greeks, and IV fields when available.","source_contract":"scanner.scan.options","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"options_implied_volatility","path":"/v1/options/{symbol}/implied-volatility","methods":["GET"],"tag":"Options","summary":"Implied Volatility","description":"Return TradingView's in-time implied volatility series for an underlying symbol.","source_contract":"OptionsCharting.GetInTimeIV","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"options_underlying_aggregates","path":"/v1/options/{symbol}/underlying-aggregates","methods":["GET"],"tag":"Options","summary":"Underlying Aggregates","description":"Return aggregate option-underlying metrics for a symbol.","source_contract":"OptionsCharting.GetUnderlyingAggregates","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"options_strategy_chart","path":"/v1/options/strategy-chart","methods":["GET","POST"],"tag":"Options","summary":"Strategy Chart","description":"Return strategy charting data for an options strategy payload.","source_contract":"OptionsCharting.PostStrategiesChart","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":300,"stale_while_revalidate_seconds":3600}},{"name":"ideas","path":"/v1/ideas","methods":["GET"],"tag":"Ideas","summary":"Ideas","description":"Return public TradingView ideas, optionally filtered by symbol.","source_contract":"ideas.list","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":120,"stale_while_revalidate_seconds":1440}},{"name":"scripts","path":"/v1/scripts","methods":["GET"],"tag":"Scripts","summary":"Scripts","description":"Return public TradingView scripts, optionally filtered by symbol.","source_contract":"scripts.list","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":120,"stale_while_revalidate_seconds":1440}},{"name":"pine_builtins","path":"/v1/pine/builtins","methods":["GET"],"tag":"Pine","summary":"Pine Built-ins","description":"Return Pine built-in reference metadata.","source_contract":"PineFacade.ListBuiltins","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"pine_parse_title","path":"/v1/pine/title","methods":["GET","POST"],"tag":"Pine","summary":"Parse Pine Title","description":"Parse a Pine source snippet and return the script title metadata.","source_contract":"PineFacade.ParseTitle","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"pine_translate_source","path":"/v1/pine/translate","methods":["GET","POST"],"tag":"Pine","summary":"Translate Pine Source","description":"Translate Pine source between supported Pine versions.","source_contract":"PineFacade.TranslateSource","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":600,"stale_while_revalidate_seconds":7200}},{"name":"alerts_status","path":"/v1/alerts/status","methods":["GET"],"tag":"Alerts","summary":"Alerts Status","description":"Return the TradingView price-alert backend health signal.","source_contract":"PriceAlerts.IsAlive","auth":"anonymous_or_api_key","freshness":{"max_age_seconds":30,"stale_while_revalidate_seconds":360}}],"advanced":{"raw_route":"/v1/raw/{endpointId}","raw_route_policy":"Advanced compatibility route. Product routes are preferred for new integrations.","source_contract_count":30,"source_contracts":[{"id":"symbol.search","family":"search","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"OptionsCharting.GetInTimeIV","family":"options","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"OptionsCharting.GetUnderlyingAggregates","family":"options","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"OptionsCharting.PostStrategiesChart","family":"options","method":"POST","auth_tier":"open","cost_class":"tiny"},{"id":"PineFacade.IsAuthToGet","family":"pine","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"PineFacade.GetScript","family":"pine","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"PineFacade.IsAuthToWrite","family":"pine","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"PineFacade.ListBuiltins","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"PineFacade.ParseTitle","family":"pine","method":"POST","auth_tier":"open","cost_class":"tiny"},{"id":"PineFacade.TranslateScript","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"PriceAlerts.IsAlive","family":"alerts","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"calendar.dividends","family":"calendar","method":"POST","auth_tier":"open","cost_class":"normal"},{"id":"PineFacade.TranslateSource","family":"pine","method":"POST","auth_tier":"open","cost_class":"tiny"},{"id":"calendar.earnings","family":"calendar","method":"POST","auth_tier":"open","cost_class":"normal"},{"id":"calendar.economic.reuters","family":"calendar","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"ideas.list","family":"social","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"calendar.economic","family":"calendar","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"news.flow.v1","family":"news","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"news.flow.v2","family":"news","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"news.headlines.latest","family":"news","method":"GET","auth_tier":"open","cost_class":"tiny"},{"id":"pine.list","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"news.headlines.v2","family":"news","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"news.headlines.v2.symbol-view","family":"news","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"pine.translate","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"scanner.metainfo","family":"scanner","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"scanner.scan.options","family":"scanner","method":"POST","auth_tier":"open","cost_class":"normal"},{"id":"PineFacade.GetVersions","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"scanner.scan","family":"scanner","method":"POST","auth_tier":"open","cost_class":"normal"},{"id":"scripts.list","family":"pine","method":"GET","auth_tier":"open","cost_class":"normal"},{"id":"scanner.scan.global","family":"scanner","method":"POST","auth_tier":"open","cost_class":"huge"}]}}