EDGAR Index APIs

The EDGAR Index APIs provide access to SEC EDGAR filings and their attached files (exhibits, images, headers, etc.) from 1994 to present, and include the Ingestion Logs API, File Index Archive APIs, and Tar Archive APIs.

The APIs enable incremental synchronization, historical backfills, and full-content bulk downloads.

JSON Response Example from the Ingestion Logs API
1 {
2 "lastUpdatedAt": "2026-01-16T21:54:18-05:00",
3 "total": { "value": 2709, "relation": "eq" },
4 "data": [
5 {
6 "accessionNo": "0001214659-26-000611",
7 "formType": "4",
8 "filedAt": "2026-01-16T21:53:50-05:00"
9 },
10 // ... more entries
11 {
12 "accessionNo": "0000000000-25-005071",
13 "formType": "LETTER",
14 "filedAt": "2025-05-13T11:36:12-04:00"
15 }
16 // ... more entries
17 ]
18 }

Overview of Endpoints

Ingestion Logs (Daily Publication Index)

Track filings that were published and indexed by our systems on a specific day, providing accession number, form type, and filedAt timestamp.

  • GET https://api.sec-api.io/edgar-index/ingestion-log/YYYY-MM-DD

The date YYYY-MM-DD refers to the indexing/publication date of filings, not the filedAt timestamp (EDGAR acceptance). For example, SEC comment letters are often published weeks or months after acceptance.

Refer to the Ingestion Logs API section for full details.

File Index Archives (Metadata Only)

Retrieve URLs and metadata for all EDGAR files, not just filings.

  • GET https://api.sec-api.io/edgar-index/archive/files/index.json
  • GET https://api.sec-api.io/edgar-index/archive/files/YYYY-MM-DD.jsonl.gz

Includes: filing documents, headers, index pages, exhibits, XML/XBRL files, images, submission text files, and all other published artifacts.

Refer to the File Index Archive APIs section for full details.

Tar Archives (Full Content)

Download the entire EDGAR directory tree for a given filedAt date, including file contents.

  • GET https://api.sec-api.io/edgar-index/archive/tar/index.json
  • GET https://api.sec-api.io/edgar-index/archive/tar/YYYY-MM-DD.tar

All files inside a tar archive are individually gzip-compressed, and comprise the complete set of EDGAR filings and attached files for that date.

Which Endpoint Should You Use?

The table below summarizes the recommended endpoint combinations based on data type, execution cadence, and operational intent.

Data TypeExecution CadenceUse CaseRecommended Endpoint(s)
MetadataDailyValidate that your Stream API consumer successfully received all filings published on a specific date.Ingestion Logs
MetadataDailyVerify that your Query API–based ingestion pipeline loaded all filing metadata for a specific publication date.Ingestion Logs
MetadataDailyNightly batch job that first retrieves all accession numbers published that day, then loads the complete metadata for each filing via the Query API.Ingestion Logs + Query API
Metadata + ContentDailyIdentify specific form types published on a given date (e.g., all 424B2 prospectuses for selected entities) and download their full filing content to meet regulatory or exchange requirements.Ingestion Logs + Download API
ContentDailyPerform full daily replication of the EDGAR file tree—including filings, exhibits, index pages, header files, and XML/XBRL—typically for AI/ML/LLM training, fine-tuning, or inference workloads.Tar Archive
ContentOne-timeBackfill multiple years or decades of the complete EDGAR dataset.Tar Archive
ContentOne-timeBackfill specific form types (e.g., all 10-K and 10-Q filings over the past 15 years) without downloading unrelated files.File Index Archives (or Query API) + Download API

Practical Guidance

  • Use Ingestion Logs for completeness guarantees and daily reconciliation. Avoid using Ingestion Logs for historical backfills. They are optimized for daily recurring synchronizations, not bulk history retrieval.
  • Use File Index Archives when you need fine-grained, historical file selection without downloading unnecessary content.
  • Use Tar Archives for high-throughput historical ingestion or full-content replication at scale.

Filing Metadata vs Filing Content

CategoryDefinitionExamplesSample
MetadataDescriptive and structural information that identifies/classifies a filing and its associated files, without including the file contents themselves.Accession number, form type, filing and acceptance timestamps (filedAt), reporting entity CIKs, file paths, document types, and URLs to filings and exhibits, etc.{"accessionNo": "0001628280-25-045968", "formType": "10-Q", "...": "..."}
ContentThe actual content data of a file, such as the entire text and tables in a filing, or the binary content of an image or PDF.Filings (HTML, XML, TXT), extracted structured data (JSON), XBRL instance and taxonomy files, images, PDFs, Excel files, and other attached artifactsText: Our mission is to accelerate the world’s transition to sustainable energy. We design, develop, ...

Ingestion Logs API

The Ingestion Logs API returns metadata of all EDGAR filings published and indexed by our systems at the specified date in JSON format. The API tracks filings that were published and indexed by our systems on a specific day, providing accession number, form type, and filedAt timestamp.

Coverage & Update Policy

  • Coverage: All filings, from December 1, 2025 to present
  • Update frequency: Once per day
  • Updated by: 10:30 PM ET

Request Structure

Endpoint

https://api.sec-api.io/edgar-index/ingestion-log/YYYY-MM-DD

HTTP Method: GET
Response Format: JSON

Replace YYYY-MM-DD with the date of interest, such as 2026-01-16. The date YYYY-MM-DD refers to the indexing/publication date of filings, not the filedAt timestamp (EDGAR acceptance). For example, SEC comment letters are often published weeks or months after acceptance; accordingly, the Ingestion Log for 2026-01-16 includes comment letters with filedAt dates of 2025-05-13, 2025-06-17, and 2025-08-28.

Example

GET https://api.sec-api.io/edgar-index/ingestion-log/2026-01-16?token=YOUR_API_KEY

Response Structure

The Ingestion Logs API returns a JSON object with the following keys:

  • lastUpdatedAt (string) – Timestamp indicating when the ingestion log for a given YYYY-MM-DD date was last updated, in RFC 3339 / ISO 8601 format (e.g., 2026-01-20T21:56:14-05:00). This value corresponds to the indexing time of the most recently processed filing for that date.
  • total.value (number): Number of filings indexed on that date. Filings are de-duplicated and counted by accession number, e.g. 2861.
  • data (array of objects) - De-duplicated list of filings metadata (one entry per accession number). EDGAR filings that appear multiple times due to multiple reporting entities are normalized into a single entry. Each object has the following keys:
    • accessionNo (string) - Accession number of the filing in the format d{10}-d{2}-d{6}, e.g. 0001062993-26-000350.
    • formType (string) - Form type of the filing, e.g. SCHEDULE 13G.
    • filedAt (datestring) - The Accepted attribute of a filing in ISO 8601 format, showing the date and time the filing was accepted by the EDGAR system, e.g. 2026-01-20T21:55:54-05:00.

Example Response

Request to https://api.sec-api.io/edgar-index/ingestion-log/2026-01-16?token=YOUR_API_KEY:

1 {
2 "lastUpdatedAt": "2026-01-16T21:54:18-05:00",
3 "total": {
4 "value": 2709,
5 "relation": "eq"
6 },
7 "data": [
8 {
9 "accessionNo": "0001214659-26-000611",
10 "formType": "4",
11 "filedAt": "2026-01-16T21:53:50-05:00"
12 },
13 // ... more entries
14 {
15 "accessionNo": "0000000000-25-005071",
16 "formType": "LETTER",
17 "filedAt": "2025-05-13T11:36:12-04:00"
18 }
19 // ... more entries
20 ]
21 }

File Index Archive APIs

The File Index Archive APIs provide access to URLs and metadata for all EDGAR files, not just filings. This includes filing documents, headers, index pages, exhibits, XML/XBRL files, images, submission text files, and all other published artifacts.

EndpointDescriptionHTTP MethodResponse Format
/edgar-index/archive/files/index.jsonIndex file listing all available daily file index archives, including file paths, last update timestamps, file sizes, and object counts for each YYYY-MM-DD.jsonl.gz dataset.GETJSON
/edgar-index/archive/files/YYYY-MM-DD.jsonl.gzGzip-compressed JSON Lines (JSONL) file containing URLs and metadata for all files published on EDGAR with a filedAt date matching the specified YYYY-MM-DD, including filings and all attached exhibits.GETJSONL (gzip-compressed)

Coverage & Update Policy

  • Form types: 100% (all EDGAR form types)
  • Entities: 100% (issuers, filers, reporters; multi-entity filings supported)
  • History: 1993/1994 to present
  • Update frequency: Daily at 10:30 PM ET. At 10:30 PM, the dataset for that date is complete and safe to ingest.

/edgar-index/archive/files/index.json

Returns an index of all available daily file index archives. Each entry describes a gzip-compressed JSON Lines (YYYY-MM-DD.jsonl.gz) file containing metadata for every EDGAR file associated with filings whose filedAt date matches the YYYY-MM-DD date of the filename.

This index enables clients to detect which historical archive files have changed and need to be reprocessed.

The response is an array of objects with the following fields:

  • key (string) - Filename of the archive, for example 2025-12-01.jsonl.gz.
  • updatedAt (string) - ISO 8601 (RFC 3339) timestamp indicating when the archive was last updated, for example 2026-01-08T05:00:06.000Z. Archives may be updated long after their nominal date. For example, if an SEC comment letter is published on 2026-01-16 with a filedAt date of 2025-06-17, the filing is appended to 2025-06-17.jsonl.gz, and the updatedAt value of that archive is updated to 2026-01-16.
  • size (number) - Size of the compressed .jsonl.gz file in bytes.
  • objectCount (number) - Number of JSON objects (i.e., filings) contained in the archive.

Response Example

1 [
2 {
3 "key": "2025-12-01.jsonl.gz",
4 "updatedAt": "2026-01-08T05:00:06.000Z",
5 "size": 74929,
6 "objectCount": 343454
7 },
8 {
9 "key": "2025-12-02.jsonl.gz",
10 "updatedAt": "2026-01-08T11:00:53.000Z",
11 "size": 227586,
12 "objectCount": 343454
13 }
14 // ... more files
15 ]

/edgar-index/archive/files/YYYY-MM-DD.jsonl.gz

Returns a gzip-compressed JSON Lines (JSONL) file. Each line is a self-contained JSON object representing a single EDGAR filing and all files published as part of that filing.

This endpoint provides a complete file-level view of EDGAR publications for filings whose filedAt date matches the specified YYYY-MM-DD of the filename.

File Coverage: Each archive includes metadata for all EDGAR files associated with a filing, including but not limited to:

  • Filing index pages
  • SGML header files
  • Primary filing documents
  • Exhibits (e.g., bylaws, lease agreements, press releases, earnings call transcripts)
  • XML, XBRL files, and XBRL instance documents
  • XBRL ZIP archives
  • Images
  • PDFs
  • Filing summary files
  • Complete submission text files (.txt)
  • Financial statements in Excel format
  • XBRL-to-HTML rendered financial statement tables (R<X>.html)
  • Any other file published as part of the filing

JSONL Record Structure

Each line in a YYYY-MM-DD.jsonl.gz file represents a complete, standalone JSON object with the following structure:

  • accessionNo (string) – Accession number of the filing, for example 0001493152-26-002304.
  • filedAt (string) – EDGAR acceptance timestamp (Accepted on the EDGAR filing index page), identical to the filedAt value returned by the Query API, for example 2026-01-14T20:57:07-05:00. Format: ISO 8601 (RFC 3339).
  • formType (string) – Form type of the filing, for example 10-Q.
  • entities (array of objects) – Array of filer entities associated with the filing. Each object represents one entity and includes its CIK, file number, and film number, for example [{"cik": "1823635", "fileNo": "000-56425", "filmNo": "26534532"}].
    • cik (string) – Central Index Key (CIK) of the entity, with leading zeros removed, e.g. 1823635.
    • fileNo (string) – SEC file number, for example 000-56425.
    • filmNo (string) – SEC film number, for example 26534532.
  • files (array of objects) – Array of all files published as part of the filing. This includes files listed on the EDGAR filing index page as well as additional files present in the filing directory.
    • sequence (string) – Document sequence number (Seq) as shown on the EDGAR filing index page and in the corresponding documentFormatFiles object returned by the Query API. May be empty if the file is not listed on the index page.
    • description (string) – EDGAR document description (e.g., PRIMARY DOCUMENT, Complete submission text file). May be empty if the file is not listed on the index page.
    • document (string) – File name as published by EDGAR, for example edgardoc.html.
    • type (string) – EDGAR document type, for example EX-31.1. May be empty for files without a designated document type. - size (number) – File size in bytes.
    • path (string) – Relative path to the file within the filing directory. For XML-to-HTML rendered files, this may include a subdirectory (e.g., xslF345X05/ownership.xml), whereas raw files appear directly (e.g., ownership.xml or 0001493152-26-002304-index.html).
    • downloadUrl (string) – URL used to download the file via the Download API, for example https://archive.sec-api.io/000197292826000001/xslF345X05/edgardoc.xml. Requests require authentication via ?token=YOUR_API_KEY or an Authorization header.

Example of a decompressed jsonl.gz file

1 {"accessionNo":"0001972928-26-000001","formType": "4","filedAt":"2026-01-12T19:04:08-05:00","entities":[{"cik":"..","fileNo":"..","filmNo":".."}],"files":[]}
2 { ... }
3 { ... }

Examples of pretty-printed single records from a jsonl.gz file

Example: Form 4 Filing

1 {
2 "accessionNo": "0001972928-26-000001",
3 "formType": "4",
4 "filedAt": "2026-01-12T19:04:08-05:00",
5 "entities": [
6 { "cik": "1972928", "fileNo": "001-34756", "filmNo": "26528094" },
7 { "cik": "1318605" }
8 ],
9 "files": [
10 // filing index page and headers
11 {
12 "path": "0001972928-26-000001-index.htm",
13 "downloadUrl": "https://archive.sec-api.io/000197292826000001/0001972928-26-000001-index.htm"
14 },
15 {
16 "path": "0001972928-26-000001-index-headers.html",
17 "downloadUrl": "https://archive.sec-api.io/000197292826000001/0001972928-26-000001-index-headers.html"
18 },
19 {
20 "path": "0001972928-26-000001.hdr.sgml",
21 "downloadUrl": "https://archive.sec-api.io/000197292826000001/0001972928-26-000001.hdr.sgml"
22 },
23 // document format files
24 {
25 "sequence": "1",
26 "description": "PRIMARY DOCUMENT",
27 "document": "edgardoc.html",
28 "type": "4",
29 "path": "xslF345X05/edgardoc.xml",
30 "downloadUrl": "https://archive.sec-api.io/000197292826000001/xslF345X05/edgardoc.xml"
31 },
32 {
33 "sequence": "1",
34 "description": "PRIMARY DOCUMENT",
35 "document": "edgardoc.xml",
36 "type": "4",
37 "size": "3954",
38 "path": "edgardoc.xml",
39 "downloadUrl": "https://archive.sec-api.io/000197292826000001/edgardoc.xml"
40 },
41 {
42 "description": "Complete submission text file",
43 "size": "5393",
44 "path": "0001972928-26-000001.txt",
45 "downloadUrl": "https://archive.sec-api.io/000197292826000001/0001972928-26-000001.txt"
46 }
47 ]
48 }

Example: Form 10-Q Filing

1 {
2 "accessionNo": "0001493152-26-002304",
3 "filedAt": "2026-01-14T20:57:07",
4 "formType": "10-Q",
5 "entities": [
6 { "cik": "1823635", "fileNo": "000-56425", "filmNo": "26534532" }
7 ],
8 "files": [
9 // filing index page and headers
10 {
11 "path": "0001493152-26-002304-index.htm",
12 "downloadUrl": "https://archive.sec-api.io/000149315226002304/0001493152-26-002304-index.htm"
13 },
14 {
15 "path": "0001493152-26-002304-index-headers.html",
16 "downloadUrl": "https://archive.sec-api.io/000149315226002304/0001493152-26-002304-index-headers.html"
17 },
18 {
19 "path": "0001493152-26-002304.hdr.sgml",
20 "downloadUrl": "https://archive.sec-api.io/000149315226002304/0001493152-26-002304.hdr.sgml"
21 },
22 // document format files
23 {
24 "sequence": "1",
25 "description": "10-Q",
26 "document": "form10-q.htm",
27 "type": "10-Q",
28 "size": "1302492",
29 "path": "form10-q.htm",
30 "downloadUrl": "https://archive.sec-api.io/000149315226002304/form10-q.htm"
31 },
32 {
33 "sequence": "2",
34 "description": "EX-31.1",
35 "document": "ex31-1.htm",
36 "type": "EX-31.1",
37 "size": "16906",
38 "path": "ex31-1.htm",
39 "downloadUrl": "https://archive.sec-api.io/000149315226002304/ex31-1.htm"
40 },
41 // ... more exhibit files
42 {
43 "sequence": "",
44 "description": "Complete submission text file",
45 "document": "0001493152-26-002304.txt",
46 "type": "",
47 "size": "8230004",
48 "path": "0001493152-26-002304.txt",
49 "downloadUrl": "https://archive.sec-api.io/000149315226002304/0001493152-26-002304.txt"
50 },
51 // data files = XBRL/XML files
52 {
53 "sequence": "6",
54 "description": "XBRL SCHEMA FILE",
55 "document": "ecxj-20251130.xsd",
56 "type": "EX-101.SCH",
57 "size": "66700",
58 "path": "ecxj-20251130.xsd",
59 "downloadUrl": "https://archive.sec-api.io/000149315226002304/ecxj-20251130.xsd"
60 },
61 // ... more XBRL files
62 {
63 "sequence": "104",
64 "description": "EXTRACTED XBRL INSTANCE DOCUMENT",
65 "document": "form10-q_htm.xml",
66 "type": "XML",
67 "size": "1539560",
68 "path": "form10-q_htm.xml",
69 "downloadUrl": "https://archive.sec-api.io/000149315226002304/form10-q_htm.xml"
70 },
71 // all other files in directory listing of filing
72 {
73 "size": "200620",
74 "path": "0001493152-26-002304-xbrl.zip",
75 "downloadUrl": "https://archive.sec-api.io/000149315226002304/0001493152-26-002304-xbrl.zip"
76 },
77 {
78 "size": "51446",
79 "path": "R1.htm",
80 "downloadUrl": "https://archive.sec-api.io/000149315226002304/R1.htm"
81 },
82 {
83 "size": "48818",
84 "path": "FilingSummary.xml",
85 "downloadUrl": "https://archive.sec-api.io/000149315226002304/FilingSummary.xml"
86 }
87 // ...
88 ]
89 }