{"openapi":"3.1.0","jsonSchemaDialect":"https://spec.openapis.org/oas/3.1/dialect/base","info":{"title":"sec.gov API — compiled by Unbrowse","version":"2026.09.28","summary":"Call sec.gov's own capabilities over HTTP, without a browser.","description":"The first-party capabilities of sec.gov, compiled from the site's own requests. Each tool is one POST with its inputs as a JSON body; the answer is the run, with the site's result when it is verified. Only verified results bill. The same tools are an MCP server at https://unbrowse.ai/api/v1/sites/sec.gov/mcp. Unofficial: not made or endorsed by sec.gov.","contact":{"name":"Unbrowse","url":"https://unbrowse.ai"}},"externalDocs":{"description":"Calling an indexed website","url":"https://unbrowse.ai/docs/site-apis"},"servers":[{"url":"https://unbrowse.ai","description":"Unbrowse"}],"security":[{"bearer":[]}],"tags":[{"name":"sec.gov","description":"Tools compiled from sec.gov"}],"paths":{"/api/v1/sites/sec.gov/call/sec_gov__get_latest_search_index":{"post":{"operationId":"sec_gov__get_latest_search_index","summary":"Search SEC EDGAR full-text filings","description":"Search SEC EDGAR full-text filings. Compiled from sec.gov's own requests and indexed by Unbrowse. Inputs: entity_name. Also takes the site's own parameters, each optional (left out, the recorded value is sent): startdt (recorded: \"2021-10-02\"); enddt (recorded: \"2026-10-02\"). Returns took, timed_out, hits, aggregations, query. A large answer comes back as its records at hits.hits (as results); pass select for other parts. Read-only on sec.gov.","tags":["sec.gov"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/Deadline"},{"$ref":"#/components/parameters/EndUser"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entity_name":{"type":"string","description":"entity name (typed during “fill Company name, ticker, CIK number or individual's name”)"},"startdt":{"type":"string","format":"date","description":"Optional: the site's own startdt parameter (get_latest_search_index). Left out, \"2021-10-02\" is sent, as recorded.","default":"2021-10-02"},"enddt":{"type":"string","format":"date","description":"Optional: the site's own enddt parameter (get_latest_search_index). Left out, \"2026-10-02\" is sent, as recorded.","default":"2026-10-02"},"select":{"type":"array","items":{"type":"string"},"description":"Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. \"results[].{title,url}\"). Unmatched paths come back in selectMissing. Left out on a large answer, its records at hits.hits come back as results (the rest is named in projection).","examples":[["hits.hits[]"]]},"deadlineMs":{"type":"integer","minimum":5000,"maximum":300000,"default":60000,"description":"Answer within this many ms (5,000–300,000). Past it: 504 run_timeout with a runId to poll; the run keeps going. The x-unbrowse-deadline-ms header wins."}},"required":["entity_name"],"additionalProperties":false}}}},"responses":{"200":{"description":"The run finished: `status` succeeded carries the site's verified `result`; failed carries `error` (never billed).","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{"type":"object","properties":{"took":{"type":"integer"},"timed_out":{"type":"boolean"},"_shards":{"type":"object","properties":{"total":{"type":"integer"},"successful":{"type":"integer"},"skipped":{"type":"integer"},"failed":{"type":"integer"}},"required":["total","successful","skipped","failed"]},"hits":{"type":"object","properties":{"total":{"type":"object","properties":{"value":{"type":"integer"},"relation":{"type":"string"}},"required":["value","relation"]},"max_score":{"type":"null"},"hits":{"type":"array","items":{"type":"object","properties":{"_index":{"type":"string"},"_id":{"type":"string"},"_score":{"type":"null"},"_source":{"type":"object","properties":{"ciks":{"type":"array","items":{"type":"string"}},"period_ending":{"type":["string","null"]},"file_num":{"type":"array","items":{"type":"string"}},"display_names":{"type":"array","items":{"type":"string"}},"xsl":{"type":["null","string"]},"sequence":{"type":"integer"},"root_forms":{"type":"array","items":{"type":"string"}},"file_date":{"type":"string"},"biz_states":{"type":"array","items":{"type":"string"}},"sics":{"type":"array","items":{"type":"string"}},"form":{"type":"string"},"adsh":{"type":"string"},"film_num":{"type":"array","items":{"type":"string"}},"biz_locations":{"type":"array","items":{"type":"string"}},"file_type":{"type":"string"},"ma_i_individual":{"type":"null"},"file_description":{"type":["string","null"]},"inc_states":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"type":"string"}},"schema_version":{"type":"string"}},"required":["ciks","period_ending","file_num","display_names","xsl","sequence","root_forms","file_date","biz_states","sics","form","adsh","film_num","biz_locations","file_type","file_description","inc_states","items"]},"sort":{"type":"array","items":{"type":["integer","string"]}}},"required":["_index","_id","_score","_source","sort"]}}},"required":["total","max_score","hits"]},"aggregations":{"type":"object","properties":{"entity_filter":{"type":"object","properties":{"doc_count_error_upper_bound":{"type":"integer"},"sum_other_doc_count":{"type":"integer"},"buckets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"doc_count":{"type":"integer"}},"required":["key","doc_count"]}}},"required":["doc_count_error_upper_bound","sum_other_doc_count","buckets"]},"sic_filter":{"type":"object","properties":{"doc_count_error_upper_bound":{"type":"integer"},"sum_other_doc_count":{"type":"integer"},"buckets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"doc_count":{"type":"integer"}},"required":["key","doc_count"]}}},"required":["doc_count_error_upper_bound","sum_other_doc_count","buckets"]},"biz_states_filter":{"type":"object","properties":{"doc_count_error_upper_bound":{"type":"integer"},"sum_other_doc_count":{"type":"integer"},"buckets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"doc_count":{"type":"integer"}},"required":["key","doc_count"]}}},"required":["doc_count_error_upper_bound","sum_other_doc_count","buckets"]},"form_filter":{"type":"object","properties":{"doc_count_error_upper_bound":{"type":"integer"},"sum_other_doc_count":{"type":"integer"},"buckets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"doc_count":{"type":"integer"}},"required":["key","doc_count"]}}},"required":["doc_count_error_upper_bound","sum_other_doc_count","buckets"]}},"required":["entity_filter","sic_filter","biz_states_filter","form_filter"]},"query":{"type":"object","properties":{"_source":{"type":"object","properties":{"exclude":{"type":"array","items":{"type":"string"}}},"required":["exclude"]},"query":{"type":"object","properties":{"bool":{"type":"object","properties":{"must":{"type":"array","items":{"type":"object"}},"must_not":{"type":"array"},"should":{"type":"array"},"filter":{"type":"array","items":{"type":"object"}}},"required":["must","must_not","should","filter"]}},"required":["bool"]},"from":{"type":"integer"},"size":{"type":"integer"},"aggregations":{"type":"object","properties":{"form_filter":{"type":"object","properties":{"terms":{"type":"object","properties":{"field":{"type":"string"},"size":{"type":"integer"}},"required":["field","size"]}},"required":["terms"]},"entity_filter":{"type":"object","properties":{"terms":{"type":"object","properties":{"field":{"type":"string"},"size":{"type":"integer"}},"required":["field","size"]}},"required":["terms"]},"sic_filter":{"type":"object","properties":{"terms":{"type":"object","properties":{"field":{"type":"string"},"size":{"type":"integer"}},"required":["field","size"]}},"required":["terms"]},"biz_states_filter":{"type":"object","properties":{"terms":{"type":"object","properties":{"field":{"type":"string"},"size":{"type":"integer"}},"required":["field","size"]}},"required":["terms"]}},"required":["form_filter","entity_filter","sic_filter","biz_states_filter"]},"sort":{"type":"array","items":{"type":"object","properties":{"file_date":{"type":"object","properties":{"order":{"type":"string"}},"required":["order"]},"_id":{"type":"object","properties":{"order":{"type":"string"}},"required":["order"]}},"required":[]}}},"required":["_source","query","from","size","aggregations","sort"]}},"required":["took","timed_out","_shards","hits","aggregations","query"]},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true}}}},"202":{"description":"The run needs input (`status` input_required): answer `requirements` with POST /api/v1/runs/{runId}/responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"The body is not JSON, or a value is malformed (invalid_input, bad_request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"No API key, or an invalid one: send Authorization: Bearer <key>.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Out of verified calls this month (quota_exceeded) or out of paid credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such tool on this site (not_found).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The tool is quarantined (tool_quarantined): it failed its checks and is rechecked automatically; the message says what to use now.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"An input the tool does not take (unknown_argument): the message lists the ones it does.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (by the site or by Unbrowse): retry after the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"run_timeout: the run did not finish within its deadline. It keeps going: poll the given runId. A verified success is billed once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimeout"}}}}},"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -s 'https://unbrowse.ai/api/v1/sites/sec.gov/call/sec_gov__get_latest_search_index' \\\n  -H \"authorization: Bearer $UNBROWSE_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"entity_name\":\"<entity_name>\"}'"},{"lang":"TypeScript","label":"TypeScript","source":"import { Unbrowse } from \"@unbrowse/sdk\";\n\nconst ub = new Unbrowse(); // reads UNBROWSE_API_KEY\nconst run = await ub.callTool(\"sec.gov\", \"sec_gov__get_latest_search_index\", {\n  entity_name: \"<entity_name>\",\n});\nif (run.status === \"succeeded\") console.log(run.result);"},{"lang":"Python","label":"Python","source":"import os, requests\n\nr = requests.post(\n    \"https://unbrowse.ai/api/v1/sites/sec.gov/call/sec_gov__get_latest_search_index\",\n    headers={\"Authorization\": f\"Bearer {os.environ['UNBROWSE_API_KEY']}\"},\n    json={\n        \"entity_name\": \"<entity_name>\",\n    },\n    timeout=120,\n)\nr.raise_for_status()\nrun = r.json()\nif run[\"status\"] == \"succeeded\":\n    print(run[\"result\"])"}],"x-unbrowse-capability":"public.sec_gov.get_latest_search_index","x-unbrowse-read-only":true,"x-unbrowse-version":"2026.09.28"}},"/api/v1/sites/sec.gov/call/data_sec_gov__get_submissions_by_id":{"post":{"operationId":"data_sec_gov__get_submissions_by_id","summary":"Read submissions on data.sec.gov","description":"Read submissions on data.sec.gov. Compiled from data.sec.gov's own requests and shared by an Unbrowse user. No inputs. Returns cik, entityType, sic, sicDescription, ownerOrg, insiderTransactionForOwnerExists, insiderTransactionForIssuerExists, name. A large answer comes back as its records at formerNames (as results); pass select for other parts. Read-only on data.sec.gov.","tags":["sec.gov"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/Deadline"},{"$ref":"#/components/parameters/EndUser"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"select":{"type":"array","items":{"type":"string"},"description":"Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. \"results[].{title,url}\"). Unmatched paths come back in selectMissing. Left out on a large answer, its records at formerNames come back as results (the rest is named in projection).","examples":[["formerNames[]"]]},"deadlineMs":{"type":"integer","minimum":5000,"maximum":300000,"default":60000,"description":"Answer within this many ms (5,000–300,000). Past it: 504 run_timeout with a runId to poll; the run keeps going. The x-unbrowse-deadline-ms header wins."}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"The run finished: `status` succeeded carries the site's verified `result`; failed carries `error` (never billed).","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{"type":"object","properties":{"cik":{"type":"string"},"entityType":{"type":"string"},"sic":{"type":"string"},"sicDescription":{"type":"string"},"ownerOrg":{"type":"string"},"insiderTransactionForOwnerExists":{"type":"integer"},"insiderTransactionForIssuerExists":{"type":"integer"},"name":{"type":"string"},"tickers":{"type":"array","items":{"type":"string"}},"exchanges":{"type":"array","items":{"type":"string"}},"ein":{"type":"string"},"lei":{"type":"null"},"description":{"type":"string"},"website":{"type":"string"},"investorWebsite":{"type":"string"},"category":{"type":"string"},"fiscalYearEnd":{"type":"string"},"stateOfIncorporation":{"type":"string"},"stateOfIncorporationDescription":{"type":"string"},"addresses":{"type":"object","properties":{"mailing":{"type":"object","properties":{"street1":{"type":"string"},"street2":{"type":"null"},"city":{"type":"string"},"stateOrCountry":{"type":"string"},"zipCode":{"type":"string"},"stateOrCountryDescription":{"type":"string"},"isForeignLocation":{"type":"integer"},"foreignStateTerritory":{"type":"null"},"country":{"type":"null"},"countryCode":{"type":"null"}},"required":["street1","street2","city","stateOrCountry","zipCode","stateOrCountryDescription","isForeignLocation","foreignStateTerritory","country","countryCode"]},"business":{"type":"object","properties":{"street1":{"type":"string"},"street2":{"type":"null"},"city":{"type":"string"},"stateOrCountry":{"type":"string"},"zipCode":{"type":"string"},"stateOrCountryDescription":{"type":"string"},"isForeignLocation":{"type":"null"},"foreignStateTerritory":{"type":"null"},"country":{"type":"null"},"countryCode":{"type":"null"}},"required":["street1","street2","city","stateOrCountry","zipCode","stateOrCountryDescription","isForeignLocation","foreignStateTerritory","country","countryCode"]}},"required":["mailing","business"]},"phone":{"type":"string"},"flags":{"type":"string"},"formerNames":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["name","from","to"]}},"filings":{"type":"object","properties":{"recent":{"type":"object","properties":{"accessionNumber":{"type":"array","items":{"type":"string"}},"filingDate":{"type":"array","items":{"type":"string"}},"reportDate":{"type":"array","items":{"type":"string"}},"acceptanceDateTime":{"type":"array","items":{"type":"string"}},"act":{"type":"array","items":{"type":"string"}},"form":{"type":"array","items":{"type":"string"}},"fileNumber":{"type":"array","items":{"type":"string"}},"filmNumber":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"type":"string"}},"core_type":{"type":"array","items":{"type":"string"}},"size":{"type":"array","items":{"type":"integer"}},"isXBRL":{"type":"array","items":{"type":"integer"}},"isInlineXBRL":{"type":"array","items":{"type":"integer"}},"isXBRLNumeric":{"type":"array","items":{"type":"integer"}},"primaryDocument":{"type":"array","items":{"type":"string"}},"primaryDocDescription":{"type":"array","items":{"type":"string"}}},"required":["accessionNumber","filingDate","reportDate","acceptanceDateTime","act","form","fileNumber","filmNumber","items","core_type","size","isXBRL","isInlineXBRL","isXBRLNumeric","primaryDocument","primaryDocDescription"]},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"filingCount":{"type":"integer"},"filingFrom":{"type":"string"},"filingTo":{"type":"string"}},"required":["name","filingCount","filingFrom","filingTo"]}}},"required":["recent","files"]}},"required":["cik","entityType","sic","sicDescription","ownerOrg","insiderTransactionForOwnerExists","insiderTransactionForIssuerExists","name","tickers","exchanges","ein","lei","description","website","investorWebsite","category","fiscalYearEnd","stateOfIncorporation","stateOfIncorporationDescription","addresses","phone","flags","formerNames","filings"]},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true}}}},"202":{"description":"The run needs input (`status` input_required): answer `requirements` with POST /api/v1/runs/{runId}/responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"The body is not JSON, or a value is malformed (invalid_input, bad_request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"No API key, or an invalid one: send Authorization: Bearer <key>.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Out of verified calls this month (quota_exceeded) or out of paid credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such tool on this site (not_found).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The tool is quarantined (tool_quarantined): it failed its checks and is rechecked automatically; the message says what to use now.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"An input the tool does not take (unknown_argument): the message lists the ones it does.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (by the site or by Unbrowse): retry after the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"run_timeout: the run did not finish within its deadline. It keeps going: poll the given runId. A verified success is billed once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimeout"}}}}},"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -s 'https://unbrowse.ai/api/v1/sites/sec.gov/call/data_sec_gov__get_submissions_by_id' \\\n  -H \"authorization: Bearer $UNBROWSE_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{}'"},{"lang":"TypeScript","label":"TypeScript","source":"import { Unbrowse } from \"@unbrowse/sdk\";\n\nconst ub = new Unbrowse(); // reads UNBROWSE_API_KEY\nconst run = await ub.callTool(\"sec.gov\", \"data_sec_gov__get_submissions_by_id\", {});\nif (run.status === \"succeeded\") console.log(run.result);"},{"lang":"Python","label":"Python","source":"import os, requests\n\nr = requests.post(\n    \"https://unbrowse.ai/api/v1/sites/sec.gov/call/data_sec_gov__get_submissions_by_id\",\n    headers={\"Authorization\": f\"Bearer {os.environ['UNBROWSE_API_KEY']}\"},\n    json={},\n    timeout=120,\n)\nr.raise_for_status()\nrun = r.json()\nif run[\"status\"] == \"succeeded\":\n    print(run[\"result\"])"}],"x-unbrowse-capability":"public.data_sec_gov.get_submissions_by_id","x-unbrowse-read-only":true,"x-unbrowse-version":"2026.09.28"}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"An Unbrowse API key (ub_live_…, from https://unbrowse.ai/app/keys) or an OAuth access token."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Makes a retry safe: a repeat with the same key returns the same run instead of starting another."},"Deadline":{"name":"x-unbrowse-deadline-ms","in":"header","required":false,"schema":{"type":"integer","minimum":5000,"maximum":300000,"default":60000},"description":"Answer within this many ms; past it 504 run_timeout (the run keeps going). Same as deadlineMs in the body."},"EndUser":{"name":"X-Unbrowse-End-User","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"With an org key: run as this end user, in their own workspace with their own logins."}},"schemas":{"Run":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, e.g. not_found, unknown_argument, quota_exceeded, run_timeout"},"message":{"type":"string","description":"What happened and what to do, in plain words"}},"additionalProperties":true}},"additionalProperties":true},"RunTimeout":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","runId","poll"],"properties":{"code":{"type":"string","const":"run_timeout"},"message":{"type":"string"},"runId":{"type":"string"},"deadlineMs":{"type":"integer"},"poll":{"type":"string","description":"GET this to read the run's answer when it lands"}},"additionalProperties":true}},"additionalProperties":true}}}}