{"openapi":"3.0.3","info":{"title":"Relativity Business Data API","description":"SEC-derived business overview, ownership, insider, similarity, media, and workforce data, served as JSON over HTTPS. Read-only: every endpoint is a `GET`.\n\n## Quickstart\n\n**1. Get a key.** Self-serve, and it does not need a browser — one call\ncreates the account, issues the key and grants free credits to start:\n\n```bash\ncurl -X POST https://api.relativityinvest.ai/v1/business/agents/sign-up \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@firm.com\",\"name\":\"Research agent\",\"company_name\":\"Your Firm\"}'\n```\n\nThe `token` in the response is your key. It is shown once. Keys look\nlike `cen_…`; issue a named key per integration — rate limits apply to\nthe account, so extra keys let you attribute traffic, not raise it.\n\nThat opens a **pay-as-you-go** account: no monthly fee, a prepaid\nbalance, one credit per request. Buying more needs no verified email —\ncheckout is completed by a person. Verifying the address pays a further\nfree grant and lets the saved card be charged unattended — `GET\nhttps://api.relativityinvest.ai/v1/business/credits` reports the balance, the\nprice and the current grants. Subscription tiers with monthly quotas are\nat https://www.relativityinvest.ai/pricing/api, and either kind of account is managed at\nhttps://www.relativityinvest.ai/developer.\n\n**2. Call the API.** Send the key as a bearer token:\n\n```bash\ncurl -H \"Authorization: Bearer $RELATIVITY_API_KEY\" \\\n  \"https://data.relativityinvest.ai/v1/meta/companies?limit=5\"\n```\n\n**3. Check your coverage and usage.** `GET /v1/meta/coverage` reports how\nmany companies each dataset covers and how fresh it is;\n`GET /v1/meta/usage` reports your own consumption. Neither is billed\nagainst a dataset scope, so both are safe first calls.\n\nTreat a key like a password: it grants access to paid data, it is shown\nonce at creation, and it belongs on a server rather than in a browser or\nmobile app.\n\n## Build the integration with AI\n\nYou do not have to read this reference to use the API. Copy the prompt\nbelow into Claude, ChatGPT, or any coding assistant, add one sentence\nabout what you want, and it will write the client for you.\n\n```text\nI am integrating the Relativity Business Data API. Facts you need:\n\n- Base URL: https://data.relativityinvest.ai\n- Auth: every request sends `Authorization: Bearer <key>`, where the key\n  looks like `cen_…`. No other auth, no cookies.\n- If I do not have a key yet, one call gets one, no browser needed:\n  POST https://api.relativityinvest.ai/v1/business/agents/sign-up with\n  `{email, name, company_name}`. The `token` in the response is the key,\n  returned once, on a pay-as-you-go account with free credits to start.\n- Pay-as-you-go spends one prepaid credit per request and reports\n  `X-Credits-Remaining` on every response. A `402\n  business.credits_insufficient` means the balance is empty: buy more at\n  POST https://api.relativityinvest.ai/v1/business/credits/top-up (same bearer\n  key) and retry. Better: watch the header and top up before zero.\n- All endpoints are GET and return JSON.\n- Success responses are wrapped: `{ \"success\": true, \"data\": { … } }`.\n- Error responses are `{ \"success\": false, \"message\": \"…\",\n  \"code\": \"business.…\" }`. Branch on `code`, never on `message`.\n- Retry 429 and 503 with exponential backoff, honouring `Retry-After`.\n  Never retry a 401 or 403 — those are configuration errors.\n- List endpoints are cursor-paginated: read `data.meta.cursor` and pass\n  it back as `?cursor=`; stop when `data.meta.has_more` is false.\n- The full OpenAPI 3.1 spec is at https://data.relativityinvest.ai/openapi.json — fetch it and\n  use it as the source of truth for paths, parameters, and fields.\n\nRead the spec, then write me a small, typed client with retry handling\nand pagination already dealt with. Ask me which language if unclear.\n```\n\nA plain-text version of the same briefing is served at [`/llms.txt`](https://data.relativityinvest.ai/llms.txt),\nwhich is the file to point an AI agent or IDE assistant at directly.\n\n## Response shape\n\nEvery response is wrapped, so a client checks one field:\n\n```json\n{ \"success\": true, \"data\": { \"…\": \"…\" } }\n```\n\n```json\n{ \"success\": false, \"message\": \"Human-readable explanation.\",\n  \"code\": \"business.scope_missing\" }\n```\n\n`code` is the stable contract and is what your error handling should\nswitch on. `message` is written for a human reading a log and may be\nreworded without notice.\n\n## Error codes\n\n| Status | `code` | What to do |\n| --- | --- | --- |\n| 400 | `business.invalid_request` | A parameter failed validation; the response lists the offending fields. |\n| 400 | `business.invalid_cursor` | The `cursor` was not one this API issued. Restart the listing without it. |\n| 401 | `business.key_invalid` | Missing, malformed, or unknown key. Check the `Authorization` header, or get one from `POST https://api.relativityinvest.ai/v1/business/agents/sign-up`. |\n| 401 | `business.key_expired` | The key passed its expiry. Issue a new one. |\n| 401 | `business.key_revoked` | The key was revoked. Issue a new one. |\n| 403 | `business.account_suspended` | Billing or contract issue — contact us. |\n| 403 | `business.scope_missing` | The key lacks the scope this endpoint needs. |\n| 403 | `business.plan_required` | Your plan does not include this feature. |\n| 404 | `business.company_not_found` | No company matches that CIK or ticker. |\n| 404 | `business.similarity_pair_not_found` | No similarity relationship exists between those two companies. |\n| 402 | `business.credits_insufficient` | Pay-as-you-go balance is empty. Buy credits at `POST https://api.relativityinvest.ai/v1/business/credits/top-up`, then retry. |\n| 429 | `business.rate_limited` | Slow down; honour `Retry-After`. |\n| 503 | `business.disabled` | The data surface is temporarily off. Retry later. |\n| 503 | `business.rate_limit_unavailable` | Limits cannot be enforced right now, so requests are refused. Retry later. |\n| 500 | `business.internal_error` | Our fault. Retry once, then contact us with the timestamp. |\n\nA resolvable company that simply has no data for a dataset is a `200`\nwith nulls, not a `404` — absence of data and absence of a company are\ndifferent answers.\n\n## Rate limits\n\nLimits come from your plan, not from this document. Every response\ncarries the current window:\n\n| Header | Meaning |\n| --- | --- |\n| `X-RateLimit-Limit` | Requests allowed in the window. |\n| `X-RateLimit-Remaining` | Requests left in the window. |\n| `X-RateLimit-Window` | Window length in seconds. |\n| `Retry-After` | On a `429`, seconds to wait. |\n\nThere is also a per-IP limit applied before your key is even read, so\ncredential-guessing traffic never reaches the database. Liveness and\nthese docs are exempt from it.\n\n### Pay-as-you-go accounts\n\nOn the pay-as-you-go plan every successful request also spends credits\n(one per request at the standard rate) from a prepaid balance, reported\non each response as `X-Credits-Remaining`. An empty balance answers `402\nbusiness.credits_insufficient`. Only a successful response is charged:\nrate-limited and rejected requests cost nothing, and any request that\ndoes not return `2xx` is refunded before the response is sent, so the\nheader always reports the balance after that refund. An MCP tool call\nthat answers with `isError` is refunded the same way.\n\nBalance and purchases live on the management API\n(`https://api.relativityinvest.ai/v1/business/credits`), which accepts the same\nkey as a bearer token — so an agent can refill itself. Watch\n`X-Credits-Remaining` and top up before it reaches zero rather than\nwaiting for the 402; or turn on auto-refill once\n(`PUT /v1/business/credits/auto-refill`) and stop thinking about it.\nUnattended purchases share a rolling daily spend cap, reported in the\ncredits summary.\n\n## Pagination\n\nList endpoints are cursor-based, not offset-based, so a listing stays\nstable while the underlying data changes:\n\n```bash\ncurl -H \"Authorization: Bearer $RELATIVITY_API_KEY\" \\\n  \"…?limit=100&cursor=eyJrIjoiMDAwMDAwMTgwMCJ9\"\n```\n\nRead `data.meta.cursor` from a response and pass it back as `cursor`.\nStop when `data.meta.has_more` is `false`. Cursors are opaque — do not\nconstruct or parse them. `limit` is capped by your plan.\n\n## Scopes\n\nA key carries scopes, and a plan allows a set of scopes. What a key can\nactually reach is the intersection of the two — so a plan change narrows\nexisting keys without reissuing them. Each endpoint's required scope is\nlisted with it below. `GET /v1/meta/usage` needs `usage:read`.\n\nPay-as-you-go carries the full read set — every request is paid for\nindividually, so no dataset is withheld. The subscription tiers differ\nfrom it on per-request cost, rate limits, page size, concurrency and\nwebhooks rather than on which data exists.","version":"1.0.0"},"components":{"securitySchemes":{"businessApiKey":{"type":"http","scheme":"bearer","description":"API key presented as `Authorization: Bearer cen_...`. Issue as many named keys as you need; limits apply to the account, not the key."}},"schemas":{}},"paths":{"/health":{"get":{"summary":"Liveness probe","tags":["Health"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"status":{"type":"string"},"timestamp":{"type":"string"}},"required":["status","timestamp"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/meta/coverage":{"get":{"summary":"Per-dataset company counts and freshness","tags":["Meta"],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"datasets":{"type":"array","items":{"type":"object","properties":{"dataset":{"type":"string"},"company_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"last_updated_at":{"type":["string","null"]}},"required":["dataset","company_count","last_updated_at"],"additionalProperties":false}}},"required":["datasets"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/meta/companies":{"get":{"summary":"The company universe, cursor-paginated","tags":["Meta"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false},{"schema":{"type":"string","minLength":1,"maxLength":120},"in":"query","name":"q","required":false,"description":"Filter by company name, ticker, or CIK."}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object","properties":{"cik":{"type":"string"},"company_name":{"type":"string"},"ticker":{"type":["string","null"]},"exchange":{"type":["string","null"]}},"required":["cik","company_name","ticker","exchange"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["companies","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/meta/usage":{"get":{"summary":"This account's daily API usage","tags":["Meta"],"parameters":[{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"from","required":false},{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"to","required":false}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"account_id":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"totals":{"type":"object","properties":{"request_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bytes_out":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["request_count","error_count","bytes_out"],"additionalProperties":false},"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string"},"request_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bytes_out":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["day","request_count","error_count","bytes_out"],"additionalProperties":false}}},"required":["account_id","from","to","totals","days"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}":{"get":{"summary":"Everything we hold on a company's business, in one call","tags":["Business Overview"],"description":"Narrative, industry classification, workforce, competitors, suppliers, customers, SEC filings and disclosed risk factors for one company. Each list section is capped and carries `has_more` plus the sub-endpoint that pages the rest. A section that cannot be read comes back `unavailable` — the rest of the response still answers. Competitors and suppliers are high-confidence rows only.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"as_of":{"anyOf":[{"type":"object","properties":{"accession_number":{"type":"string"},"form_type":{"type":["string","null"]},"filing_date":{"type":"string"}},"required":["accession_number","form_type","filing_date"],"additionalProperties":false},{"nullable":true,"enum":[null]}],"description":"The filing the narrative, classification, workforce and risk factors were extracted from."},"profile":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"business_summary":{"type":["string","null"]},"business_model":{"type":["string","null"]},"products_services":{"type":"array","items":{"type":"string"}},"markets_served":{"type":"array","items":{"type":"string"}},"sector":{"type":["string","null"]},"industry_group":{"type":["string","null"]},"industry":{"type":["string","null"]},"sub_industry":{"type":["string","null"]},"sub_industry_rationale":{"type":["string","null"]}},"required":["status","business_summary","business_model","products_services","markets_served","sector","industry_group","industry","sub_industry","sub_industry_rationale"],"additionalProperties":false},"workforce":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"employee_count":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"breakdown":{"anyOf":[{"type":"object","properties":{"total_employees":{"type":["number","null"]},"full_time_employees":{"type":["number","null"]},"part_time_employees":{"type":["number","null"]},"contract_employees":{"type":["number","null"]},"seasonal_employees":{"type":["number","null"]},"unionized_employees":{"type":["number","null"]},"international_employees":{"type":["number","null"]},"workforce_notes":{"type":["string","null"]}},"required":["total_employees","full_time_employees","part_time_employees","contract_employees","seasonal_employees","unionized_employees","international_employees","workforce_notes"],"additionalProperties":false},{"nullable":true,"enum":[null]}]}},"required":["status","employee_count","breakdown"],"additionalProperties":false},"competitors":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"cik":{"type":["string","null"]},"ticker":{"type":["string","null"]},"context":{"type":"string"},"business_segment":{"type":["string","null"]},"confidence":{"type":"string"},"source":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["name","cik","ticker","context","business_segment","confidence","source","is_verified"],"additionalProperties":false}},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"has_more":{"type":"boolean"},"next":{"description":"Sub-endpoint that pages the full set; null when complete.","type":["string","null"]}},"required":["status","items","count","has_more","next"],"additionalProperties":false},"suppliers":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"cik":{"type":["string","null"]},"context":{"type":"string"},"category":{"type":["string","null"]},"products_supplied":{"type":["string","null"]},"is_critical":{"type":"boolean"},"confidence":{"type":["string","null"]},"source":{"type":["string","null"]}},"required":["name","cik","context","category","products_supplied","is_critical","confidence","source"],"additionalProperties":false}},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"has_more":{"type":"boolean"},"next":{"description":"Sub-endpoint that pages the full set; null when complete.","type":["string","null"]}},"required":["status","items","count","has_more","next"],"additionalProperties":false},"customers":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"items":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Null on an end-market row, where `industry` is the label.","type":["string","null"]},"cik":{"type":["string","null"]},"industry":{"type":["string","null"]},"context":{"type":"string"},"confidence":{"type":["string","null"]},"source":{"type":["string","null"]}},"required":["name","cik","industry","context","confidence","source"],"additionalProperties":false}},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"has_more":{"type":"boolean"},"next":{"description":"Sub-endpoint that pages the full set; null when complete.","type":["string","null"]}},"required":["status","items","count","has_more","next"],"additionalProperties":false},"filings":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"items":{"type":"array","items":{"type":"object","properties":{"form_type":{"type":"string"},"accession_number":{"type":"string"},"filing_date":{"type":["string","null"]},"report_date":{"type":["string","null"]},"accepted_at":{"type":["string","null"]},"primary_document":{"type":["string","null"]},"sec_url":{"type":["string","null"]}},"required":["form_type","accession_number","filing_date","report_date","accepted_at","primary_document","sec_url"],"additionalProperties":false}},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"has_more":{"type":"boolean"},"next":{"description":"Sub-endpoint that pages the full set; null when complete.","type":["string","null"]}},"required":["status","items","count","has_more","next"],"additionalProperties":false},"risk_factors":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"severity":{"type":"string"},"context":{"type":"string"},"quantitative_evidence":{"type":"array","items":{"type":"string"}},"has_hard_data":{"type":"boolean"},"source_section_key":{"type":"string"},"source_section_label":{"type":"string"},"source_accession_number":{"type":["string","null"]},"source_url":{"type":["string","null"]}},"required":["title","category","description","severity","context","quantitative_evidence","has_hard_data","source_section_key","source_section_label","source_accession_number","source_url"],"additionalProperties":false}},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"has_more":{"type":"boolean"},"next":{"description":"Sub-endpoint that pages the full set; null when complete.","type":["string","null"]}},"required":["status","items","count","has_more","next"],"additionalProperties":false}},"required":["company","as_of","profile","workforce","competitors","suppliers","customers","filings","risk_factors"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/workforce":{"get":{"summary":"Headcount and workforce composition for one company","tags":["Business Overview"],"description":"Total employees plus the breakdown the filing disclosed — full and part time, contract, seasonal, unionized, international, and any note. A single object, never paged. Every figure is nullable: companies disclose these inconsistently, and a missing split is reported rather than inferred.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"as_of":{"anyOf":[{"type":"object","properties":{"accession_number":{"type":"string"},"form_type":{"type":["string","null"]},"filing_date":{"type":"string"}},"required":["accession_number","form_type","filing_date"],"additionalProperties":false},{"nullable":true,"enum":[null]}],"description":"The filing the narrative, classification, workforce and risk factors were extracted from."},"workforce":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"],"description":"`unavailable` means this section could not be read; the rest of the response still answers."},"employee_count":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"breakdown":{"anyOf":[{"type":"object","properties":{"total_employees":{"type":["number","null"]},"full_time_employees":{"type":["number","null"]},"part_time_employees":{"type":["number","null"]},"contract_employees":{"type":["number","null"]},"seasonal_employees":{"type":["number","null"]},"unionized_employees":{"type":["number","null"]},"international_employees":{"type":["number","null"]},"workforce_notes":{"type":["string","null"]}},"required":["total_employees","full_time_employees","part_time_employees","contract_employees","seasonal_employees","unionized_employees","international_employees","workforce_notes"],"additionalProperties":false},{"nullable":true,"enum":[null]}]}},"required":["status","employee_count","breakdown"],"additionalProperties":false}},"required":["company","as_of","workforce"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/competitors":{"get":{"summary":"Competitors named in a company's filings","tags":["Business Overview"],"description":"High-confidence competitors only, one row per competitor per business segment. Each carries the filing context it was drawn from, its `source` and whether a human verified it. Pass `meta.cursor` back as `cursor` for the next page.","parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque keyset cursor from the previous page's `meta.cursor`."},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false,"description":"Page size. Silently capped at your plan's maximum."},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"cik":{"type":["string","null"]},"ticker":{"type":["string","null"]},"context":{"type":"string"},"business_segment":{"type":["string","null"]},"confidence":{"type":"string"},"source":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["name","cik","ticker","context","business_segment","confidence","source","is_verified"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["company","data","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/suppliers":{"get":{"summary":"Suppliers named in a company's filings","tags":["Business Overview"],"description":"High-confidence suppliers only, critical ones first. Carries the category, what is supplied where the filing said, and the context it came from. Pass `meta.cursor` back as `cursor` for the next page.","parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque keyset cursor from the previous page's `meta.cursor`."},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false,"description":"Page size. Silently capped at your plan's maximum."},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"cik":{"type":["string","null"]},"context":{"type":"string"},"category":{"type":["string","null"]},"products_supplied":{"type":["string","null"]},"is_critical":{"type":"boolean"},"confidence":{"type":["string","null"]},"source":{"type":["string","null"]}},"required":["name","cik","context","category","products_supplied","is_critical","confidence","source"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["company","data","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/customers":{"get":{"summary":"Customers and end markets for one company","tags":["Business Overview"],"description":"Two kinds of row: an end market the company sells into (`name` null, `industry` carries the label) and a named counterparty. End markets come first. `source` says how direct the evidence is — `explicit` was named in the filing, `inferred` is the model's industry knowledge — so you can apply your own floor. Pass `meta.cursor` back as `cursor` for the next page.","parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque keyset cursor from the previous page's `meta.cursor`."},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false,"description":"Page size. Silently capped at your plan's maximum."},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"data":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Null on an end-market row, where `industry` is the label.","type":["string","null"]},"cik":{"type":["string","null"]},"industry":{"type":["string","null"]},"context":{"type":"string"},"confidence":{"type":["string","null"]},"source":{"type":["string","null"]}},"required":["name","cik","industry","context","confidence","source"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["company","data","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/filings":{"get":{"summary":"A company's SEC filings, newest first","tags":["Business Overview"],"description":"Every filing we hold for the company, with its accession number and the SEC URL. `form_type` matches exactly — an amendment is its own type, so `10-K` does not return `10-K/A`. Combine `form_type` and `since` to avoid paging through a decade of Form 4s. Pass `meta.cursor` back as `cursor` for the next page.","parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque keyset cursor from the previous page's `meta.cursor`."},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false,"description":"Page size. Silently capped at your plan's maximum."},{"schema":{"type":"string","minLength":1,"maxLength":20},"in":"query","name":"form_type","required":false,"description":"Exact SEC form type, e.g. `10-K`. An amendment is its own type (`10-K/A`) and does not match."},{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"since","required":false,"description":"Inclusive lower bound on the filing date, `YYYY-MM-DD`."},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"data":{"type":"array","items":{"type":"object","properties":{"form_type":{"type":"string"},"accession_number":{"type":"string"},"filing_date":{"type":["string","null"]},"report_date":{"type":["string","null"]},"accepted_at":{"type":["string","null"]},"primary_document":{"type":["string","null"]},"sec_url":{"type":["string","null"]}},"required":["form_type","accession_number","filing_date","report_date","accepted_at","primary_document","sec_url"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["company","data","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/business-overview/companies/{cik}/risk-factors":{"get":{"summary":"Risk factors a company disclosed in Item 1A","tags":["Business Overview"],"description":"Extracted from the same annual report the rest of the overview is dated against, most severe first. Every severity is returned — `severity` and `has_hard_data` ship in the payload so you can set your own floor, and `?severity=high` narrows to the ones we surface in our own product. A company whose only filing is a registration statement has none: a prospectus carries no Item 1A.","parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque keyset cursor from the previous page's `meta.cursor`."},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false,"description":"Page size. Silently capped at your plan's maximum."},{"schema":{"type":"string","enum":["high","medium","low"]},"in":"query","name":"severity","required":false,"description":"Narrow to one severity. All severities are returned by default, most severe first."},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]}},"required":["cik","ticker","company_name"],"additionalProperties":false},"data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"severity":{"type":"string"},"context":{"type":"string"},"quantitative_evidence":{"type":"array","items":{"type":"string"}},"has_hard_data":{"type":"boolean"},"source_section_key":{"type":"string"},"source_section_label":{"type":"string"},"source_accession_number":{"type":["string","null"]},"source_url":{"type":["string","null"]}},"required":["title","category","description","severity","context","quantitative_evidence","has_hard_data","source_section_key","source_section_label","source_accession_number","source_url"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["company","data","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/company-reviews/companies/{cik}":{"get":{"summary":"Company Culture ratings and sentiment for a company","tags":["Company Culture"],"description":"Latest successful capture. `as_of` is when it was taken — this is a periodic snapshot, not a live feed. A company we have never measured is a 404 rather than a payload of nulls.","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":20},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"cik":{"type":"string"},"company_name":{"type":"string"},"ticker":{"type":["string","null"]},"as_of":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"review_count":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"ratings":{"type":"object","properties":{"overall":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"culture_and_values":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"work_life_balance":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"compensation_and_benefits":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"career_opportunities":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"senior_management":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"diversity_and_inclusion":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]},"industry_average":{"anyOf":[{"type":"number","minimum":1,"maximum":5},{"nullable":true,"enum":[null]}]}},"required":["overall","culture_and_values","work_life_balance","compensation_and_benefits","career_opportunities","senior_management","diversity_and_inclusion","industry_average"],"additionalProperties":false},"sentiment":{"type":"object","properties":{"ceo_name":{"type":["string","null"]},"ceo_approval_percent":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"nullable":true,"enum":[null]}]},"recommend_to_friend_percent":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"nullable":true,"enum":[null]}]},"business_outlook_positive_percent":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"nullable":true,"enum":[null]}]}},"required":["ceo_name","ceo_approval_percent","recommend_to_friend_percent","business_outlook_positive_percent"],"additionalProperties":false},"employer":{"type":"object","properties":{"industry":{"type":["string","null"]},"employee_count":{"type":["string","null"]},"headquarters":{"type":["string","null"]},"founded_year":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"is_best_place_to_work":{"type":["boolean","null"]}},"required":["industry","employee_count","headquarters","founded_year","is_best_place_to_work"],"additionalProperties":false}},"required":["cik","company_name","ticker","as_of","review_count","ratings","sentiment","employer"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/media/":{"get":{"summary":"Media appearances with verified company matches, newest first","tags":["Media"],"description":"Only `status = 'verified'` matches are exposed — unreviewed LLM associations never leave the building. Each match carries its relevance, stance, confidence, grounding quote and the model plus prompt version that produced it, so you can audit and threshold yourself.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"in":"query","name":"since","required":false},{"schema":{"type":"string","enum":["taddy","youtube"]},"in":"query","name":"source","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"media":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"external_id":{"type":"string"},"url":{"type":["string","null"]},"audio_url":{"type":["string","null"]},"image_url":{"type":["string","null"]},"title":{"type":"string"},"description":{"type":["string","null"]},"published_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]},"duration_seconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"channel":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"image_url":{"type":["string","null"]}},"required":["id","name","image_url"],"additionalProperties":false},"discovered_via":{"type":"string"},"has_transcript":{"type":"boolean"},"transcript_source":{"type":"string"},"matches":{"type":"array","items":{"type":"object","properties":{"company_cik":{"type":"string"},"company_name":{"type":["string","null"]},"relevance":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"stance":{"type":["string","null"]},"confidence":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"grounding_quote":{"type":["string","null"]},"association_method":{"type":["string","null"]},"llm_model":{"type":["string","null"]},"prompt_version":{"type":["string","null"]},"verified_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]}},"required":["company_cik","company_name","relevance","stance","confidence","grounding_quote","association_method","llm_model","prompt_version","verified_at"],"additionalProperties":false}}},"required":["id","source","external_id","url","audio_url","image_url","title","description","published_at","duration_seconds","channel","discovered_via","has_transcript","transcript_source","matches"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["media","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/media/companies/{cik}":{"get":{"summary":"Media appearances for one company","tags":["Media"],"parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"in":"query","name":"since","required":false},{"schema":{"type":"string","enum":["taddy","youtube"]},"in":"query","name":"source","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false},{"schema":{"type":"string","minLength":1,"maxLength":20},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"media":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"external_id":{"type":"string"},"url":{"type":["string","null"]},"audio_url":{"type":["string","null"]},"image_url":{"type":["string","null"]},"title":{"type":"string"},"description":{"type":["string","null"]},"published_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]},"duration_seconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"channel":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"image_url":{"type":["string","null"]}},"required":["id","name","image_url"],"additionalProperties":false},"discovered_via":{"type":"string"},"has_transcript":{"type":"boolean"},"transcript_source":{"type":"string"},"matches":{"type":"array","items":{"type":"object","properties":{"company_cik":{"type":"string"},"company_name":{"type":["string","null"]},"relevance":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"stance":{"type":["string","null"]},"confidence":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"grounding_quote":{"type":["string","null"]},"association_method":{"type":["string","null"]},"llm_model":{"type":["string","null"]},"prompt_version":{"type":["string","null"]},"verified_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]}},"required":["company_cik","company_name","relevance","stance","confidence","grounding_quote","association_method","llm_model","prompt_version","verified_at"],"additionalProperties":false}}},"required":["id","source","external_id","url","audio_url","image_url","title","description","published_at","duration_seconds","channel","discovered_via","has_transcript","transcript_source","matches"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["media","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/media/{mediaItemId}":{"get":{"summary":"One media appearance and its verified matches","tags":["Media"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"mediaItemId","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"external_id":{"type":"string"},"url":{"type":["string","null"]},"audio_url":{"type":["string","null"]},"image_url":{"type":["string","null"]},"title":{"type":"string"},"description":{"type":["string","null"]},"published_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]},"duration_seconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"channel":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"image_url":{"type":["string","null"]}},"required":["id","name","image_url"],"additionalProperties":false},"discovered_via":{"type":"string"},"has_transcript":{"type":"boolean"},"transcript_source":{"type":"string"},"matches":{"type":"array","items":{"type":"object","properties":{"company_cik":{"type":"string"},"company_name":{"type":["string","null"]},"relevance":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"stance":{"type":["string","null"]},"confidence":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"grounding_quote":{"type":["string","null"]},"association_method":{"type":["string","null"]},"llm_model":{"type":["string","null"]},"prompt_version":{"type":["string","null"]},"verified_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]}},"required":["company_cik","company_name","relevance","stance","confidence","grounding_quote","association_method","llm_model","prompt_version","verified_at"],"additionalProperties":false}}},"required":["id","source","external_id","url","audio_url","image_url","title","description","published_at","duration_seconds","channel","discovered_via","has_transcript","transcript_source","matches"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/movements/":{"get":{"summary":"Insider movements across all covered companies, newest first","tags":["Movements"],"description":"Only resolved identities are served: `cik_match_status = 'matched'` with identity confidence at or above 0.70, which excludes about 1% of matched events as bad matches. `confidence` is returned so you can apply a stricter floor yourself.","parameters":[{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"since","required":false},{"schema":{"type":"string","enum":["new_hire","departure","role_change","current_exec_def14","retirement","merger_departure","non_reelection","termination","re_election","administrative_leave","death","removal"]},"in":"query","name":"event_type","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"movements":{"type":"array","items":{"type":"object","properties":{"movement_id":{"type":"string"},"company_cik":{"type":"string"},"insider_cik":{"type":["string","null"]},"insider_name":{"type":"string"},"event_type":{"type":"string"},"event_origin":{"type":["string","null"]},"previous_title":{"type":["string","null"]},"new_title":{"type":["string","null"]},"event_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"effective_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"announcement_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"end_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"departure_reason":{"type":["string","null"]},"transition_kind":{"type":["string","null"]},"roles":{"type":"object","properties":{"is_executive_officer":{"type":["boolean","null"]},"is_director":{"type":["boolean","null"]},"is_ceo_appointment":{"type":["boolean","null"]},"is_cfo_appointment":{"type":["boolean","null"]}},"required":["is_executive_officer","is_director","is_ceo_appointment","is_cfo_appointment"],"additionalProperties":false},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["movement_id","company_cik","insider_cik","insider_name","event_type","event_origin","previous_title","new_title","event_date","effective_date","announcement_date","end_date","departure_reason","transition_kind","roles","confidence"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["movements","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/movements/companies/{cik}":{"get":{"summary":"Insider movements for one company","tags":["Movements"],"parameters":[{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"since","required":false},{"schema":{"type":"string","enum":["new_hire","departure","role_change","current_exec_def14","retirement","merger_departure","non_reelection","termination","re_election","administrative_leave","death","removal"]},"in":"query","name":"event_type","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false},{"schema":{"type":"string","minLength":1,"maxLength":20},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"movements":{"type":"array","items":{"type":"object","properties":{"movement_id":{"type":"string"},"company_cik":{"type":"string"},"insider_cik":{"type":["string","null"]},"insider_name":{"type":"string"},"event_type":{"type":"string"},"event_origin":{"type":["string","null"]},"previous_title":{"type":["string","null"]},"new_title":{"type":["string","null"]},"event_date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"effective_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"announcement_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"end_date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"nullable":true,"enum":[null]}]},"departure_reason":{"type":["string","null"]},"transition_kind":{"type":["string","null"]},"roles":{"type":"object","properties":{"is_executive_officer":{"type":["boolean","null"]},"is_director":{"type":["boolean","null"]},"is_ceo_appointment":{"type":["boolean","null"]},"is_cfo_appointment":{"type":["boolean","null"]}},"required":["is_executive_officer","is_director","is_ceo_appointment","is_cfo_appointment"],"additionalProperties":false},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["movement_id","company_cik","insider_cik","insider_name","event_type","event_origin","previous_title","new_title","event_date","effective_date","announcement_date","end_date","departure_reason","transition_kind","roles","confidence"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["movements","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/ownership/companies/{cik}":{"get":{"summary":"Company-level insider ownership percentage","tags":["Ownership"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":["string","null"]},"company_name":{"type":["string","null"]},"ownership_percentage":{"type":["number","null"]},"total_insider_shares":{"type":["number","null"]},"shares_outstanding_used":{"type":["number","null"]},"ownership_source":{"type":["string","null"]},"proxy_cutoff_date":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"nullable":true,"enum":[null]}]},"flagged_fields":{"type":"array","items":{"type":"string"}}},"required":["cik","ticker","company_name","ownership_percentage","total_insider_shares","shares_outstanding_used","ownership_source","proxy_cutoff_date","flagged_fields"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/similarity/companies/{cik}/peers":{"get":{"summary":"Ranked peers with component sub-scores","tags":["Similarity"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"in":"query","name":"limit","required":false},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"cik":{"type":"string"},"peers":{"type":"array","items":{"type":"object","properties":{"peer_cik":{"type":"string"},"peer_ticker":{"type":["string","null"]},"peer_company_name":{"type":["string","null"]},"similarity_score":{"type":"number"},"match_score":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mutual_competitor_mention":{"type":["boolean","null"]},"shared_competitors":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"similarity_reasons":{"type":"array","items":{"type":"string"}},"components":{"type":"object","properties":{"base":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"competitor":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"overlap":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"business_model":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"revenue_driver":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"revenue_segment":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"penalty":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]}},"required":["base","competitor","overlap","business_model","revenue_driver","revenue_segment","penalty"],"additionalProperties":false},"embedding_model":{"type":"string"},"computed_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["peer_cik","peer_ticker","peer_company_name","similarity_score","match_score","mutual_competitor_mention","shared_competitors","similarity_reasons","components","embedding_model","computed_at"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["cursor","has_more","count"],"additionalProperties":false}},"required":["cik","peers","meta"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/v1/similarity/pairs/{cik1}/{cik2}":{"get":{"summary":"The similarity relationship between two specific companies","tags":["Similarity"],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik1","required":true},{"schema":{"type":"string","minLength":1,"maxLength":16},"in":"path","name":"cik2","required":true}],"security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"cik":{"type":"string"},"peer":{"type":"object","properties":{"peer_cik":{"type":"string"},"peer_ticker":{"type":["string","null"]},"peer_company_name":{"type":["string","null"]},"similarity_score":{"type":"number"},"match_score":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mutual_competitor_mention":{"type":["boolean","null"]},"shared_competitors":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"similarity_reasons":{"type":"array","items":{"type":"string"}},"components":{"type":"object","properties":{"base":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"competitor":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"overlap":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"business_model":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"revenue_driver":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"revenue_segment":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]},"penalty":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"nullable":true,"enum":[null]}]}},"required":["base","competitor","overlap","business_model","revenue_driver","revenue_segment","penalty"],"additionalProperties":false},"embedding_model":{"type":"string"},"computed_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["peer_cik","peer_ticker","peer_company_name","similarity_score","match_score","mutual_competitor_mention","shared_competitors","similarity_reasons","components","embedding_model","computed_at"],"additionalProperties":false}},"required":["cik","peer"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}}}},"/mcp":{"post":{"summary":"MCP endpoint (JSON-RPC)","tags":["MCP"],"description":"Model Context Protocol endpoint. Serves protocol revision 2026-07-28 and, for clients that have not migrated, the 2025-11-25 initialize handshake. Authenticate with the same `cen_` key as the REST surface.","security":[{"businessApiKey":[]}],"responses":{"200":{"description":"Default Response"}}},"get":{"summary":"Not allowed — MCP is POST only","tags":["MCP"],"responses":{"200":{"description":"Default Response"}}},"delete":{"summary":"Not allowed — MCP is POST only","tags":["MCP"],"responses":{"200":{"description":"Default Response"}}}}},"servers":[{"url":"https://data.relativityinvest.ai","description":"Production"}]}