{"openapi":"3.1.0","info":{"title":"finlight (BYOK) API","version":"0.1.0","description":"finlight (BYOK) lets an AI assistant read your own finlight data through the finlight API with a key you supply (finlight API key). Read-only: 6 tools (search_articles, search_articles_by_ticker, search_articles_by_category, search_articles_by_source, get_article_by_link, list_sources). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-finlight.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-finlight/docs"},"termsOfService":"https://connectorbay.com/byok-finlight/terms"},"servers":[{"url":"https://byok-finlight.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-finlight/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_articles":{"post":{"operationId":"search_articles","summary":"Search financial news articles by keywords (with AND, OR, NOT) and optional filters for date range and language. Returns","description":"Search financial news articles by keywords (with AND, OR, NOT) and optional filters for date range and language. Returns link, source, title, summary, publish date, sentiment with confidence, categories and countries. Counts against the monthly request quota. Use for \"What is the latest financial news about Nvidia\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Search text; supports simple words and boolean operators, for example 'Nvidia AND earnings'.","title":"Query"},"published_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or after this date (YYYY-MM-DD or ISO 8601).","title":"Published From"},"published_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or before this date (YYYY-MM-DD or ISO 8601).","title":"Published To"},"language":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter language code; the service default is en (English only).","title":"Language"},"order_by":{"anyOf":[{"enum":["publishDate","createdAt","revisedDate"],"type":"string"},{"type":"null"}],"default":"publishDate","description":"Order by publishDate (default), createdAt or revisedDate.","title":"Order By"},"order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"Sort direction by publish date: DESC (newest first) or ASC.","title":"Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many articles per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"search_articlesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_articles_by_ticker":{"post":{"operationId":"search_articles_by_ticker","summary":"List financial news articles that mention one stock ticker, newest first, with sentiment and categories. Use for \"What n","description":"List financial news articles that mention one stock ticker, newest first, with sentiment and categories. Use for \"What news mentions the ticker AAPL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Stock ticker symbol, for example 'AAPL'.","maxLength":15,"title":"Ticker","type":"string"},"published_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or after this date (YYYY-MM-DD or ISO 8601).","title":"Published From"},"published_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or before this date (YYYY-MM-DD or ISO 8601).","title":"Published To"},"language":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter language code; the service default is en (English only).","title":"Language"},"order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"Sort direction by publish date: DESC (newest first) or ASC.","title":"Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many articles per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["ticker"],"title":"search_articles_by_tickerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_articles_by_category":{"post":{"operationId":"search_articles_by_category","summary":"List financial news articles in one category such as markets, economy, crypto, energy or regulation, newest first. Use f","description":"List financial news articles in one category such as markets, economy, crypto, energy or regulation, newest first. Use for \"Show me the latest crypto news\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"One of markets, economy, business, politics, geopolitics, regulation, technology, energy, commodities, crypto, health, climate, security.","enum":["markets","economy","business","politics","geopolitics","regulation","technology","energy","commodities","crypto","health","climate","security"],"title":"Category","type":"string"},"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional extra search text.","title":"Query"},"published_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or after this date (YYYY-MM-DD or ISO 8601).","title":"Published From"},"published_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or before this date (YYYY-MM-DD or ISO 8601).","title":"Published To"},"language":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter language code; the service default is en (English only).","title":"Language"},"order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"Sort direction by publish date: DESC (newest first) or ASC.","title":"Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many articles per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["category"],"title":"search_articles_by_categoryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_articles_by_source":{"post":{"operationId":"search_articles_by_source","summary":"List financial news articles from one publisher domain (see list_sources), newest first. Use for \"What did www.reuters.c","description":"List financial news articles from one publisher domain (see list_sources), newest first. Use for \"What did www.reuters.com publish recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"source":{"description":"Publisher domain exactly as listed by list_sources, for example 'www.reuters.com'.","maxLength":100,"title":"Source","type":"string"},"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional extra search text.","title":"Query"},"published_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or after this date (YYYY-MM-DD or ISO 8601).","title":"Published From"},"published_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles published on or before this date (YYYY-MM-DD or ISO 8601).","title":"Published To"},"language":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter language code; the service default is en (English only).","title":"Language"},"order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"Sort direction by publish date: DESC (newest first) or ASC.","title":"Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many articles per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["source"],"title":"search_articles_by_sourceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_article_by_link":{"post":{"operationId":"get_article_by_link","summary":"Get one indexed financial news article by its URL, with source, title, summary, sentiment, categories and countries. Use","description":"Get one indexed financial news article by its URL, with source, title, summary, sentiment, categories and countries. Use for \"Look up the finlight record for this article URL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"link":{"description":"Full URL of the article, for example 'https://www.example.com/markets/1'.","maxLength":500,"title":"Link","type":"string"}},"required":["link"],"title":"get_article_by_linkArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sources":{"post":{"operationId":"list_sources","summary":"List the publishers finlight supports, with origin country, languages and whether each is in the default source set. Use","description":"List the publishers finlight supports, with origin country, languages and whether each is in the default source set. Use for \"Which news sources does finlight cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sourcesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}