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.
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.jsonGET 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.jsonGET 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 Type | Execution Cadence | Use Case | Recommended Endpoint(s) |
|---|---|---|---|
| Metadata | Daily | Validate that your Stream API consumer successfully received all filings published on a specific date. | Ingestion Logs |
| Metadata | Daily | Verify that your Query API–based ingestion pipeline loaded all filing metadata for a specific publication date. | Ingestion Logs |
| Metadata | Daily | Nightly 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 + Content | Daily | Identify 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 |
| Content | Daily | Perform 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 |
| Content | One-time | Backfill multiple years or decades of the complete EDGAR dataset. | Tar Archive |
| Content | One-time | Backfill 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
| Category | Definition | Examples | Sample |
|---|---|---|---|
| Metadata | Descriptive 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", "...": "..."} |
| Content | The 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 artifacts | Text: 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
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
Response Structure
The Ingestion Logs API returns a JSON object with the following keys:
lastUpdatedAt(string) – Timestamp indicating when the ingestion log for a givenYYYY-MM-DDdate 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 formatd{10}-d{2}-d{6}, e.g.0001062993-26-000350.formType(string) - Form type of the filing, e.g.SCHEDULE 13G.filedAt(datestring) - TheAcceptedattribute 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.
| Endpoint | Description | HTTP Method | Response Format |
|---|---|---|---|
/edgar-index/archive/files/index.json | Index 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. | GET | JSON |
/edgar-index/archive/files/YYYY-MM-DD.jsonl.gz | Gzip-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. | GET | JSONL (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 example2025-12-01.jsonl.gz.updatedAt(string) - ISO 8601 (RFC 3339) timestamp indicating when the archive was last updated, for example2026-01-08T05:00:06.000Z. Archives may be updated long after their nominal date. For example, if an SEC comment letter is published on2026-01-16with afiledAtdate of2025-06-17, the filing is appended to2025-06-17.jsonl.gz, and theupdatedAtvalue of that archive is updated to2026-01-16.size(number) - Size of the compressed.jsonl.gzfile 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 example0001493152-26-002304.filedAt(string) – EDGAR acceptance timestamp (Acceptedon the EDGAR filing index page), identical to thefiledAtvalue returned by the Query API, for example2026-01-14T20:57:07-05:00. Format: ISO 8601 (RFC 3339).formType(string) – Form type of the filing, for example10-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 example000-56425.filmNo(string) – SEC film number, for example26534532.
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 correspondingdocumentFormatFilesobject 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 exampleedgardoc.html.type(string) – EDGAR document type, for exampleEX-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.xmlor0001493152-26-002304-index.html).downloadUrl(string) – URL used to download the file via the Download API, for examplehttps://archive.sec-api.io/000197292826000001/xslF345X05/edgardoc.xml. Requests require authentication via?token=YOUR_API_KEYor anAuthorizationheader.
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
}