{ "openapi": "3.0.3", "info": { "title": "Backchannel API", "version": "1.0.0", "description": "API for integrating Tilt market intelligence capabilities, including scenarios, topics, company news, company search, and risk analysis." }, "servers": [ { "url": "https://tilt.io", "description": "Production" } ], "security": [ { "apiKeyAuth": [] } ], "components": { "securitySchemes": { "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "X-Api-Key" } }, "schemas": { "ArticleSearchResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "articles_found": { "type": "integer" }, "articles": { "type": "array", "items": { "$ref": "#/components/schemas/ArticleScenarioResponse" } }, "has_more": { "type": "boolean", "default": false }, "next_offset": { "type": "integer", "nullable": true } }, "required": [ "success", "articles_found", "articles" ] }, "ArticleScenarioResponse": { "type": "object", "properties": { "point_id": { "type": "string" }, "headline": { "type": "string" }, "content": { "type": "string", "nullable": true }, "date": { "type": "string" }, "publication_time": { "type": "string", "nullable": true }, "tilt_source": { "type": "string", "default": "" }, "importance_rating": { "type": "integer", "default": 0 }, "importance_rationale": { "type": "string", "default": "" }, "generated_at": { "type": "string", "default": "" }, "article_image_url": { "type": "string", "nullable": true }, "fallback_image_id": { "type": "string", "nullable": true }, "timeline": { "type": "array", "items": { "$ref": "#/components/schemas/TimelineEvent" }, "default": [] }, "scenarios": { "type": "array", "items": { "$ref": "#/components/schemas/Scenario" }, "default": [] }, "subject_codes": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } }, "default": [] }, "subject_codes_original": { "type": "array", "items": { "type": "string" }, "default": [] }, "prediction_markets": { "type": "array", "items": { "$ref": "#/components/schemas/PredictionMarket" }, "default": [] }, "score": { "type": "number", "nullable": true }, "tilt_asset_ids": { "type": "array", "items": { "type": "string" }, "default": [] }, "securities": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityRef" }, "default": [], "description": "Securities mentioned in the article, mapping each tilt_asset_id to its CUSIP when known." }, "portfolio_exposure": { "$ref": "#/components/schemas/PortfolioExposure" }, "warnings": { "type": "array", "nullable": true, "items": { "type": "string" } } }, "required": [ "point_id", "headline", "date" ] }, "TimelineEvent": { "type": "object", "properties": { "date": { "type": "string" }, "summary": { "type": "string" } }, "required": [ "date", "summary" ] }, "Scenario": { "type": "object", "properties": { "probability": { "type": "integer", "minimum": 0, "maximum": 100 }, "title": { "type": "string" }, "description": { "type": "string" }, "sub_scenarios": { "type": "array", "nullable": true, "items": { "type": "object", "additionalProperties": { "nullable": true } }, "description": "Nested sub-scenarios (same shape as Scenario)" }, "macro_shocks": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/MacroShock" } } }, "required": [ "probability", "title", "description" ] }, "MacroShock": { "type": "object", "properties": { "indicator": { "type": "string" }, "impact": { "type": "number" } }, "required": [ "indicator", "impact" ] }, "PredictionMarket": { "type": "object", "properties": { "market_id": { "type": "string" }, "question": { "type": "string" }, "relevance": { "type": "string" }, "reasoning": { "type": "string" }, "top_outcomes": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } } } }, "required": [ "market_id", "question", "relevance", "reasoning", "top_outcomes" ] }, "SecurityRef": { "type": "object", "properties": { "tilt_asset_id": { "type": "string" }, "cusip": { "type": "string", "nullable": true, "description": "CUSIP for this security when SIG can resolve one." } }, "required": [ "tilt_asset_id" ] }, "PortfolioExposure": { "type": "object", "nullable": true, "properties": { "mad_pct": { "type": "number" }, "expected_return_pct": { "type": "number" }, "num_leaf_scenarios": { "type": "integer" }, "leaf_details": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/LeafScenarioDetail" } }, "scenario_level_details": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/ScenarioLevelDetail" } } }, "required": [ "mad_pct", "expected_return_pct", "num_leaf_scenarios" ] }, "LeafScenarioDetail": { "type": "object", "properties": { "path": { "type": "array", "items": { "type": "string" } }, "title": { "type": "string" }, "joint_probability_pct": { "type": "number" }, "portfolio_return_pct": { "type": "number" }, "abs_portfolio_return_pct": { "type": "number" } }, "required": [ "path", "title", "joint_probability_pct", "portfolio_return_pct", "abs_portfolio_return_pct" ] }, "ScenarioLevelDetail": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "probability_pct": { "type": "number" }, "portfolio_return_mean_pct": { "type": "number" }, "portfolio_return_std_pct": { "type": "number" }, "macro_shocks": { "type": "array", "items": { "$ref": "#/components/schemas/MacroShockDistributionDetail" } }, "sub_scenario_count": { "type": "integer" } }, "required": [ "title", "description", "probability_pct", "portfolio_return_mean_pct", "portfolio_return_std_pct", "macro_shocks", "sub_scenario_count" ] }, "MacroShockDistributionDetail": { "type": "object", "properties": { "indicator": { "type": "string" }, "mean": { "type": "number" }, "std": { "type": "number" } }, "required": [ "indicator", "mean", "std" ] }, "ArticleSearchRequest": { "type": "object", "properties": { "queries": { "type": "array", "items": { "$ref": "#/components/schemas/WeightedQuery" }, "minItems": 1, "maxItems": 100 }, "subject_code": { "type": "string", "minLength": 1 }, "limit": { "type": "integer", "minimum": 1, "maximum": 100, "default": 10 }, "offset": { "type": "integer", "minimum": 0, "default": 0 }, "min_score": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.4 }, "include_content": { "type": "boolean", "default": false }, "min_importance": { "type": "integer", "nullable": true, "minimum": 1, "maximum": 10 }, "importance_weight": { "type": "number", "minimum": 0, "maximum": 2, "default": 0 }, "topic": { "type": "string", "minLength": 1 }, "portfolio_weights": { "type": "object", "nullable": true, "additionalProperties": { "type": "number" }, "description": "Portfolio weights keyed by tilt_id or CUSIP. Mixed identifiers are allowed; CUSIPs are resolved to tilt_ids server-side." }, "aggregate_scenarios": { "type": "boolean", "default": false }, "order_by_exposure": { "type": "boolean", "default": false }, "seen_image_ids": { "type": "array", "nullable": true, "items": { "type": "string" } }, "seen_window": { "type": "integer" }, "viewer_user_id": { "type": "string", "minLength": 1 } } }, "WeightedQuery": { "type": "object", "properties": { "weight": { "type": "number", "minimum": 0, "maximum": 1 }, "query": { "type": "string", "minLength": 1 } }, "required": [ "weight", "query" ] }, "ArticleGetRequest": { "type": "object", "properties": { "include_content": { "type": "boolean", "default": true }, "portfolio_weights": { "type": "object", "nullable": true, "additionalProperties": { "type": "number" }, "description": "Portfolio weights keyed by tilt_id or CUSIP. Mixed identifiers are allowed; CUSIPs are resolved to tilt_ids server-side." }, "aggregate_scenarios": { "type": "boolean", "default": false }, "seen_image_ids": { "type": "array", "nullable": true, "items": { "type": "string" } }, "seen_window": { "type": "integer" }, "viewer_user_id": { "type": "string", "minLength": 1 } } }, "CompanyNewsResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "articles": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } } }, "total": { "type": "integer" } }, "required": [ "success", "articles" ] }, "CompanyNewsRequest": { "type": "object", "properties": { "theme_query": { "type": "string", "minLength": 1 }, "as_of_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "isins": { "type": "array", "items": { "type": "string" } }, "lookback_days": { "type": "integer", "minimum": 0, "exclusiveMinimum": true }, "limit": { "type": "integer", "minimum": 0, "exclusiveMinimum": true }, "min_composite_score": { "type": "number", "minimum": 0, "maximum": 1 }, "include_content": { "type": "boolean" } }, "required": [ "theme_query", "as_of_date" ] }, "MacroSensitivitiesResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "type": { "type": "string", "enum": [ "portfolio", "individual" ] }, "portfolio_macro_exposures": { "type": "array", "items": { "$ref": "#/components/schemas/PortfolioMacroExposure" } }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/MacroSensitivityResult" } } }, "required": [ "success", "type" ] }, "PortfolioMacroExposure": { "type": "object", "properties": { "macro_factor": { "type": "string" }, "description": { "type": "string" }, "portfolio_exposure": { "type": "number" }, "top_contributors": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } } } }, "required": [ "macro_factor", "description", "portfolio_exposure", "top_contributors" ] }, "MacroSensitivityResult": { "type": "object", "properties": { "tilt_id": { "type": "string" }, "weight": { "type": "number", "nullable": true }, "sensitivities": { "type": "object", "additionalProperties": { "type": "number" } } }, "required": [ "tilt_id", "sensitivities" ] }, "MacroSensitivityRequest": { "type": "object", "properties": { "portfolio_weights": { "type": "object", "nullable": true, "additionalProperties": { "type": "number" }, "description": "Portfolio weights keyed by tilt_id. CUSIP-keyed weights are supported on scenario and article-exposure endpoints, not on risk sensitivities." }, "tilt_ids": { "type": "array", "nullable": true, "items": { "type": "string" } }, "limit": { "type": "integer", "default": 50 } } }, "MacroScenarioResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "portfolio_expected_return_pct": { "type": "number" }, "security_details": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityScenarioResult" } } }, "required": [ "success", "portfolio_expected_return_pct" ] }, "SecurityScenarioResult": { "type": "object", "properties": { "tilt_id": { "type": "string" }, "cusip": { "type": "string", "nullable": true, "description": "CUSIP for this security when SIG can resolve one." }, "ticker": { "type": "string", "nullable": true }, "company_name": { "type": "string", "nullable": true }, "weight": { "type": "number" }, "expected_return_pct": { "type": "number" }, "contribution_to_portfolio_pct": { "type": "number" }, "factor_contributions": { "type": "object", "additionalProperties": { "type": "number" } } }, "required": [ "tilt_id", "weight", "expected_return_pct", "contribution_to_portfolio_pct", "factor_contributions" ] }, "MacroScenarioRequest": { "type": "object", "properties": { "portfolio_weights": { "type": "object", "additionalProperties": { "type": "number" }, "description": "Portfolio weights keyed by tilt_id or CUSIP. Mixed identifiers are allowed; CUSIPs are resolved to tilt_ids server-side." }, "shocks": { "type": "object", "additionalProperties": { "type": "number" }, "description": "Scenario shocks keyed by macro factor, RBICS sector, ticker, or direct tilt_id asset shock. Direct asset shock keys remain tilt_id-only." }, "include_security_details": { "type": "boolean", "default": true } }, "required": [ "portfolio_weights", "shocks" ] }, "ScenarioPortfolioResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "scenario_description": { "type": "string" }, "as_of_date": { "type": "string" }, "scenario_tree": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } } }, "leaf_scenarios": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/ScenarioPortfolioLeafResult" } }, "scenario_level_results": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/ScenarioPortfolioLevelResult" } }, "expected_portfolio_return_pct": { "type": "number" }, "portfolio_summary": { "type": "object", "additionalProperties": { "nullable": true } }, "context_articles": { "type": "array", "nullable": true, "items": { "type": "string" } }, "context_article_ids": { "type": "array", "nullable": true, "items": { "type": "string" } }, "warnings": { "type": "array", "nullable": true, "items": { "type": "string" } }, "cache_hit": { "type": "boolean" }, "generated_at": { "type": "string" } }, "required": [ "success", "scenario_description", "as_of_date", "scenario_tree", "expected_portfolio_return_pct", "portfolio_summary", "generated_at" ] }, "ScenarioPortfolioLeafResult": { "type": "object", "properties": { "path": { "type": "array", "items": { "type": "string" } }, "joint_probability_pct": { "type": "number" }, "title": { "type": "string" }, "description": { "type": "string" }, "macro_shocks": { "nullable": true }, "portfolio_expected_return_pct": { "type": "number" }, "portfolio_return_pct": { "type": "number", "nullable": true }, "contribution_to_expected_return_pct": { "type": "number" }, "top_movers": { "type": "array", "items": { "$ref": "#/components/schemas/ScenarioPortfolioSecurityDetail" }, "description": "Top security movers for this leaf. Entries include cusip when SIG can resolve one." }, "security_details": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/ScenarioPortfolioSecurityDetail" }, "description": "Per-security breakdown for this leaf when include_security_details is true. Entries include cusip when SIG can resolve one." } }, "additionalProperties": { "nullable": true } }, "ScenarioPortfolioSecurityDetail": { "type": "object", "properties": { "tilt_id": { "type": "string" }, "cusip": { "type": "string", "nullable": true, "description": "CUSIP for this security when SIG can resolve one. Aggregate scenario-level rows may omit this field." }, "ticker": { "type": "string", "nullable": true }, "company_name": { "type": "string", "nullable": true }, "weight": { "type": "number" }, "expected_return_pct": { "type": "number" }, "contribution_to_portfolio_pct": { "type": "number" }, "factor_contributions": { "type": "object", "additionalProperties": { "type": "number" } } }, "required": [ "tilt_id", "weight", "expected_return_pct", "contribution_to_portfolio_pct" ], "additionalProperties": { "nullable": true } }, "ScenarioPortfolioLevelResult": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "probability_pct": { "type": "number" }, "portfolio_return_mean_pct": { "type": "number" }, "portfolio_return_std_pct": { "type": "number" }, "macro_shocks": { "type": "array", "items": { "type": "object", "additionalProperties": { "nullable": true } } }, "sub_scenario_count": { "type": "integer" }, "top_movers": { "type": "array", "items": { "$ref": "#/components/schemas/ScenarioPortfolioSecurityDetail" }, "description": "Top security movers for the aggregate scenario. SIG may omit cusip on aggregate scenario-level rows." }, "security_details": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/ScenarioPortfolioSecurityDetail" }, "description": "Per-security aggregate breakdown when include_security_details and aggregate_scenarios are true. SIG may omit cusip on aggregate scenario-level rows." } }, "additionalProperties": { "nullable": true } }, "ScenarioPortfolioRequest": { "type": "object", "properties": { "scenario_description": { "type": "string" }, "portfolio_weights": { "type": "object", "additionalProperties": { "type": "number" }, "description": "Portfolio weights keyed by tilt_id or CUSIP. Mixed identifiers are allowed; CUSIPs are resolved to tilt_ids server-side." }, "as_of_date": { "type": "string", "nullable": true, "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "search_for_context": { "type": "boolean", "default": true }, "include_security_details": { "type": "boolean", "default": true }, "aggregate_scenarios": { "type": "boolean", "default": false } }, "required": [ "scenario_description", "portfolio_weights" ] }, "CompanySearchResponse": { "type": "object", "properties": { "companies": { "type": "array", "items": { "$ref": "#/components/schemas/CompanySearchResult" } }, "total": { "type": "integer" } }, "required": [ "companies", "total" ] }, "CompanySearchResult": { "type": "object", "properties": { "tilt_asset_id": { "type": "string" }, "name": { "type": "string" }, "ticker": { "type": "string", "nullable": true }, "security_type": { "type": "string", "enum": [ "equity", "etf" ], "default": "equity" }, "score": { "type": "number" }, "sparkline": { "type": "array", "nullable": true, "items": { "type": "number" } }, "news": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/CompanyArticle" } } }, "required": [ "tilt_asset_id", "name", "score" ] }, "CompanyArticle": { "type": "object", "properties": { "headline": { "type": "string" }, "date": { "type": "string", "nullable": true }, "source": { "type": "string", "nullable": true }, "importance_rating": { "type": "integer", "nullable": true }, "article_id": { "type": "string", "nullable": true } }, "required": [ "headline" ] }, "CompanySearchRequest": { "type": "object", "properties": { "query": { "type": "string" }, "tilt_asset_ids": { "type": "array", "items": { "type": "string" } }, "limit": { "type": "integer", "minimum": 1, "maximum": 50, "default": 10 }, "include_news": { "type": "boolean", "default": false } } }, "DowJonesSearchResponse": { "type": "object", "properties": { "success": { "type": "boolean" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/DowJonesSearchResult" } }, "total_results": { "type": "integer" }, "query": { "type": "string" }, "vector_name": { "type": "string" }, "min_score": { "type": "number", "nullable": true }, "scored": { "type": "boolean" } }, "required": [ "success", "results", "total_results", "query", "vector_name" ] }, "DowJonesSearchResult": { "type": "object", "properties": { "id": { "anyOf": [ { "type": "integer" }, { "type": "string" } ] }, "score": { "type": "number" }, "payload": { "type": "object", "additionalProperties": { "nullable": true } }, "vectors": { "type": "object", "nullable": true, "additionalProperties": { "nullable": true } }, "theme_relevance": { "type": "number", "nullable": true }, "impact": { "type": "number", "nullable": true }, "composite_score": { "type": "number", "nullable": true } }, "required": [ "id", "score", "payload" ] }, "DowJonesSearchRequest": { "type": "object", "properties": { "query": { "type": "string", "minLength": 1 }, "vector_name": { "type": "string", "enum": [ "content_vector", "headline_vector" ], "default": "content_vector" }, "filters": { "$ref": "#/components/schemas/DowJonesSearchFilters" }, "limit": { "type": "integer", "minimum": 1, "maximum": 100, "default": 20 }, "min_score": { "type": "number", "nullable": true, "minimum": 0, "maximum": 1 }, "include_vectors": { "type": "boolean", "default": false }, "score": { "type": "boolean", "default": false } }, "required": [ "query" ] }, "DowJonesSearchFilters": { "type": "object", "nullable": true, "properties": { "tickers": { "type": "array", "items": { "type": "string" } }, "isins": { "type": "array", "items": { "type": "string" } }, "tilt_asset_ids": { "type": "array", "items": { "type": "string" } }, "date": { "$ref": "#/components/schemas/DowJonesDateFilter" }, "docdate": { "anyOf": [ { "type": "integer" }, { "type": "string" } ] }, "tilt_source": { "type": "string" }, "publisher": { "type": "string" }, "subject_codes": { "type": "array", "items": { "type": "string" } }, "industry_codes": { "type": "array", "items": { "type": "string" } }, "market_codes": { "type": "array", "items": { "type": "string" } }, "geo_codes": { "type": "array", "items": { "type": "string" } }, "company_codes": { "type": "array", "items": { "type": "string" } } } }, "DowJonesDateFilter": { "type": "object", "properties": { "min": { "type": "string" }, "max": { "type": "string" } } } }, "parameters": {} }, "paths": { "/api/v1/backchannel/scenarios/search": { "post": { "tags": [ "Scenarios" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleSearchRequest" } } } }, "responses": { "200": { "description": "Search article scenarios", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleSearchResponse" } } } } } } }, "/api/v1/backchannel/scenarios/{id}": { "post": { "tags": [ "Scenarios" ], "security": [ { "apiKeyAuth": [] } ], "parameters": [ { "schema": { "type": "string" }, "required": true, "name": "id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleGetRequest" } } } }, "responses": { "200": { "description": "Get single article scenario", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleScenarioResponse" } } } } } } }, "/api/v1/backchannel/news/companies": { "post": { "tags": [ "News" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyNewsRequest" } } } }, "responses": { "200": { "description": "Company news articles by ISIN", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyNewsResponse" } } } } } } }, "/api/v1/backchannel/risk/sensitivities": { "post": { "tags": [ "Risk" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MacroSensitivityRequest" } } } }, "responses": { "200": { "description": "Macro sensitivities for portfolio or individual stocks", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MacroSensitivitiesResponse" } } } } } } }, "/api/v1/backchannel/risk/scenario": { "post": { "tags": [ "Risk" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MacroScenarioRequest" } } } }, "responses": { "200": { "description": "Portfolio impact from macro factor shocks", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MacroScenarioResponse" } } } } } } }, "/api/v1/backchannel/risk/scenario_portfolio_analysis": { "post": { "tags": [ "Risk" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScenarioPortfolioRequest" } } } }, "responses": { "200": { "description": "AI-generated scenario tree with portfolio impact analysis", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScenarioPortfolioResponse" } } } } } } }, "/api/v1/backchannel/companies/search": { "post": { "tags": [ "Companies" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanySearchRequest" } } } }, "responses": { "200": { "description": "Search companies by name or tilt_asset_id", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanySearchResponse" } } } } } } }, "/api/v1/backchannel/dow-jones-archive/search": { "post": { "tags": [ "Dow Jones Archive" ], "security": [ { "apiKeyAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DowJonesSearchRequest" } } } }, "responses": { "200": { "description": "Semantic search over Dow Jones news archive", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DowJonesSearchResponse" } } } } } } } } }