EDGAR Entities Database API
The EDGAR Entities API provides search access to a database of all entities that have filed with the SEC through the EDGAR system since 1994. The database includes all filing entity types, also known as registrants, including operating companies (e.g., publicly listed companies), investment managers, business development companies, and more. The API provides various data points about each entity, including their respective update timestamps, such as:
- Central Index Key (CIK)
- Entity Name
- Business and Mailing Address
- State of Incorporation
- Standard Industrial Classification (SIC)
- Fiscal Year-End
- Phone Number
- IRS/EIN Number
- Auditor Details: Name, firm ID, and location
- Latest ICFR Auditor Attestation Date and Source Filing
- Filer Category: Large accelerated filer, non-accelerated filer, etc.
- Extended Categories: Small business, emerging growth company, well-known seasoned issuer, etc.
- And more
1
{
2
"cik": "1318605",
3
"cikUpdatedAt": "2005-02-23T11:38:36-05:00",
4
"name": "Tesla, Inc.",
5
"nameUpdatedAt": "2024-01-26T21:00:20-05:00",
6
"businessAddress": {
7
"street1": "3500 DEER CREEK RD",
8
"street2": null,
9
"city": "PALO ALTO",
10
"state": "CA",
11
"zip": "94304",
12
"country": ""
13
},
14
"businessAddressUpdatedAt": "2018-02-20T21:18:42-05:00",
15
"mailingAddress": {
16
"street1": "3500 DEER CREEK RD",
17
"street2": null,
18
"city": "PALO ALTO",
19
"state": "CA",
20
"zip": "94304",
21
"country": ""
22
},
23
"mailingAddressUpdatedAt": "2018-02-20T21:18:42-05:00",
24
"irsNo": "912197729",
25
"irsNoUpdatedAt": "2009-04-09T15:30:06-04:00",
26
"stateOfIncorporation": "DE",
27
"stateOfIncorporationUpdatedAt": "2009-04-09T15:30:06-04:00",
28
"phone": "650-681-5000",
29
"phoneUpdatedAt": "2010-10-29T12:35:46-04:00",
30
"sic": "3711",
31
"sicUpdatedAt": "2010-01-29T16:16:56-05:00",
32
"sicLabel": "3711 Motor Vehicles & Passenger Car Bodies",
33
"sicLabelUpdatedAt": "2024-01-02T16:29:17-05:00",
34
"cfOffice": "04 Manufacturing",
35
"cfOfficeUpdatedAt": "2024-04-01T18:57:33-04:00",
36
"currentReportingStatus": true,
37
"currentReportingStatusUpdatedAt": "2024-10-23T20:42:47-04:00",
38
"interactiveDataCurrent": true,
39
"interactiveDataCurrentUpdatedAt": "2024-10-23T20:42:47-04:00",
40
"wellKnownSeasonedIssuer": false,
41
"wellKnownSeasonedIssuerUpdatedAt": "2024-04-02T16:47:22-04:00",
42
"voluntaryFiler": false,
43
"voluntaryFilerUpdatedAt": "2011-08-12T16:41:17-04:00",
44
"filerCategory": "Large Accelerated Filer",
45
"filerCategoryUpdatedAt": "2012-02-27T17:17:24-05:00",
46
"smallBusiness": false,
47
"smallBusinessUpdatedAt": "2011-08-12T16:41:17-04:00",
48
"emergingGrowthCompany": false,
49
"emergingGrowthCompanyUpdatedAt": "2011-08-12T16:41:17-04:00",
50
"shellCompany": false,
51
"shellCompanyUpdatedAt": "2011-08-12T16:41:17-04:00",
52
"fiscalYearEnd": "1231",
53
"fiscalYearEndUpdatedAt": "2012-06-08T16:25:18-04:00",
54
"latestIcfrAuditFiledAt": "2024-01-26T21:00:20-05:00",
55
"latestIcfrAuditFiledAtUpdatedAt": "2024-01-26T21:00:20-05:00",
56
"latestIcfrAuditSource": "0001628280-24-002390",
57
"latestIcfrAuditSourceUpdatedAt": "2024-01-26T21:00:20-05:00",
58
"auditorName": "PricewaterhouseCoopers LLP",
59
"auditorNameUpdatedAt": "2022-02-04T20:11:27-05:00",
60
"auditorFirmId": "238",
61
"auditorFirmIdUpdatedAt": "2022-02-04T20:11:27-05:00",
62
"auditorLocation": "San Jose, California",
63
"auditorLocationUpdatedAt": "2022-02-04T20:11:27-05:00",
64
"formTypes": {
65
"3": true,
66
"4": true,
67
"5": true,
68
"144": true,
69
"425": true,
70
"10-K": true,
71
"10-K/A": true,
72
"10-Q": true,
73
"3/A": true,
74
"4/A": true,
75
"424B3": true,
76
"424B4": true,
77
"424B5": true,
78
"5/A": true,
79
"8-A12B": true,
80
"8-K": true,
81
"8-K/A": true,
82
"ARS": true,
83
"CERTNAS": true,
84
"CORRESP": true,
85
"CT ORDER": true,
86
"D": true,
87
"DEF 14A": true,
88
"DEFA14A": true,
89
"EFFECT": true,
90
"FWP": true,
91
"LETTER": true,
92
"NO ACT": true,
93
"NT 10-K": true,
94
"POS AM": true,
95
"PRE 14A": true,
96
"PX14A6G": true,
97
"PX14A6N": true,
98
"REDACTED EXHIBIT": true,
99
"REGDEX": true,
100
"REGDEX/A": true,
101
"S-1": true,
102
"S-1/A": true,
103
"S-3ASR": true,
104
"S-4": true,
105
"S-4/A": true,
106
"S-8": true,
107
"S-8 POS": true,
108
"SC 13G": true,
109
"SC 13G/A": true,
110
"SC TO-T": true,
111
"SC TO-T/A": true,
112
"SD": true
113
},
114
"formTypesUpdatedAt": "2024-11-15T10:54:38-05:00"
115
}
API Endpoints
EDGAR entities are searchable through two API endpoints:
GET Endpoint
URL:https://api.sec-api.io/edgar-entities?cik=<cik>- Retrieves detailed information about an entity using its Central Index Key (CIK).
- Response: A JSON object containing the entity's details.
POST Endpoint
URL:https://api.sec-api.io/edgar-entities- Allows searching for entities based on various criteria, such as name, address, auditor details, and more.
- Payload: A JSON object containing the search parameters.
- Response: A JSON array of entities matching the search criteria.
Both endpoints return the same data structure. The GET endpoint provides information about a single entity, while the POST endpoint supports more complex queries and returns information about multiple entities.
Authentication
To authenticate API requests, use the API key available in your user profile. Utilize the API key in one of two ways. Choose the method that best fits your implementation:
- Authorization Header: Set the API key as an
Authorizationheader in theGETorPOSTrequest. For instance, before sending aPOSTrequest tohttps://api.sec-api.io/edgar-entities, ensure the header is set as follows:Authorization: YOUR_API_KEY - Query Parameter: Alternatively, append the API key directly to the URL as a query parameter. For example, when making
GETrequests, use the URLhttps://api.sec-api.io/edgar-entities?cik=<cik>&token=YOUR_API_KEYinstead of the base API endpoint.
Request Parameters
GET Endpoint
The GET endpoint /edgar-entities?cik=<cik> accepts a single query parameter:
cik: The Central Index Key (CIK) of the entity for which information is being requested. The CIK is a unique identifier assigned to each entity filing with the SEC EDGAR system.
POST Endpoint
The POST endpoint /edgar-entities accepts a JSON payload containing search parameters to filter and query EDGAR entities. The payload fields are described below:
query(string): A search query string to filter EDGAR filing entities by fields such ascik,name,address,auditor, or any other response field. The query is written in the Lucene syntax, for examplecik:1318605to search by CIK orformTypes.10-K:true AND shellCompany:trueto search for entities that have filed a 10-K filing and are shell companies. Supported features include: boolean operators (AND,OR,NOT), wildcards (*), nested queries (()), and range queries ([min TO max]).from(string|integer, optional): The starting index of the result set, used for pagination. Default:0. Maximum:10000. For example,"from": 50returns the second page of results,"from": 100retrieves the third page, and so on.size(string|integer, optional): The number of entities to include in each response. Default:50. Maximum:50.sort(array of objects, optional): Specifies the field and order for sorting results in the format[{ "<fieldName>": "<order>"}]. The default order[{ "cikUpdatedAt": "desc" }]sorts by thecikUpdatedAtfield in descending order. Each object in the array includes:<fieldName>(string): The field by which to sort.<order>(string): Sorting order, eitherasc(ascending) ordesc(descending).
Request Examples
GET Request:
GET https://api.sec-api.io/edgar-entities?cik=1318605POST Request:
POST request to search for entities with the auditor "PwC" of firm ID "238", sorted by the latest ICFR audit date:
Response Format
The EDGAR Entities API returns information about filer entities in JSON format. The response object includes the following fields:
total(object): An object with two fields:value(int) andrelation(str). Thevaluefield contains the total number of entities that match the search criteria, while therelationfield indicates the relationship between the total count and the returned entities. Possible values forrelationincludeeq(equal) andgte(greater than or equal).data(array of objects): An array of JSON objects, each representing an entity that matches the search criteria. Each object contains various fields with information about the entity, such as CIK, name, address, auditor details, and more:cik(str): The Central Index Key (CIK) of the entity. Leading zeros are removed, and the CIK is formatted as a string, e.g., "1769624".name(str): The name of the entity.businessAddress(object): An object containing the business address of the entity, with fields such asstreet1,street2,city,state,zip, andcountry.mailingAddress(object): An object containing the mailing address of the entity, with fields such asstreet1,street2,city,state,zip, andcountry.stateOfIncorporation(str): The state of incorporation of the entity, e.g., "DE" for Delaware.phone(str): The phone number of the entity.irsNo(str): The Internal Revenue Service (IRS) tax identification number of the entity, e.g., "981742455".sic(str): The Standard Industrial Classification (SIC) code of the entity, e.g., "3576" for Computer Communications Equipment.sicLabel(str): The label corresponding to the SIC code, e.g., "Computer Communications Equipment".cfOffice(str): The Central Filing Office of the entity, e.g., "06 Technology".fiscalYearEnd(str): Month and day marking the end of the entity's fiscal year inMMDDformat, e.g., "1231" for December 31.filerCategory(str): The filer category of the entity. Possible values include "Large Accelerated Filer", "Accelerated Filer" and "Non-accelerated Filer".wellKnownSeasonedIssuer(bool):trueif the entity is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.falseotherwise.voluntaryFiler(bool):trueif the entity is not required to file.falseotherwise.smallBusiness(bool):trueif the company is a Smaller Reporting Company (SRC).emergingGrowthCompany(bool):trueif the entity is an emerging growth company as defined in the Jumpstart Our Business Startups (JOBS) Act.falseotherwise.shellCompany(bool):trueif the entity is a shell company as defined in Rule 12b-2 of the Exchange Act.falseotherwise.currentReportingStatus(bool):trueif the entity has (1) filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days.falseotherwise.interactiveDataCurrent(bool):trueif the entity has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).latestIcfrAuditFiledAt(date): The date of the latest auditor attestation of the entity's internal control over financial reporting (ICFR). Format:YYYY-MM-DDTHH:MM:SS-04:00, eg2024-09-25T16:21:22-04:00.latestIcfrAuditSource(str): The accession number of the filing that includes the latest ICFR auditor attestation.auditorName(str): The name of the entity's auditor, e.g. "DELOITTE & TOUCHE LLP".auditorFirmId(str): The firm ID of the entity's auditor, e.g. "34".auditorLocation(str): The location of the entity's auditor, e.g. "Seattle, Washington".formTypes(object): An object containing all form types filed by the entity since its registration with the SEC, with fields such as{ "10-K": true, "10-Q": true, ... }.
Each field within a data object has a corresponding<field>UpdatedAt field that indicates the timestamp of the last update to that specific field. For instance, nameUpdatedAt represents the timestamp of the most recent update to the entity's name.
Response Examples
GET Response Example
Response example for the GET request to /edgar-entities?cik=1318605:
1
{
2
"total": {
3
"value": 1,
4
"relation": "eq"
5
},
6
"data": [
7
{
8
"id": "1318605",
9
"cik": "1318605",
10
"cikUpdatedAt": "2005-02-23T11:38:36-05:00",
11
"name": "Tesla, Inc.",
12
"nameUpdatedAt": "2024-01-26T21:00:20-05:00",
13
"businessAddress": {
14
"street1": "3500 DEER CREEK RD",
15
"street2": null,
16
"city": "PALO ALTO",
17
"state": "CA",
18
"zip": "94304",
19
"country": ""
20
},
21
"businessAddressUpdatedAt": "2018-02-20T21:18:42-05:00",
22
"mailingAddress": {
23
"street1": "3500 DEER CREEK RD",
24
"street2": null,
25
"city": "PALO ALTO",
26
"state": "CA",
27
"zip": "94304",
28
"country": ""
29
},
30
"mailingAddressUpdatedAt": "2018-02-20T21:18:42-05:00",
31
"irsNo": "912197729",
32
"irsNoUpdatedAt": "2009-04-09T15:30:06-04:00",
33
"stateOfIncorporation": "DE",
34
"stateOfIncorporationUpdatedAt": "2009-04-09T15:30:06-04:00",
35
"phone": "650-681-5000",
36
"phoneUpdatedAt": "2010-10-29T12:35:46-04:00",
37
"sic": "3711",
38
"sicUpdatedAt": "2010-01-29T16:16:56-05:00",
39
"sicLabel": "3711 Motor Vehicles & Passenger Car Bodies",
40
"sicLabelUpdatedAt": "2024-01-02T16:29:17-05:00",
41
"cfOffice": "04 Manufacturing",
42
"cfOfficeUpdatedAt": "2024-04-01T18:57:33-04:00",
43
"currentReportingStatus": true,
44
"currentReportingStatusUpdatedAt": "2024-10-23T20:42:47-04:00",
45
"interactiveDataCurrent": true,
46
"interactiveDataCurrentUpdatedAt": "2024-10-23T20:42:47-04:00",
47
"wellKnownSeasonedIssuer": false,
48
"wellKnownSeasonedIssuerUpdatedAt": "2024-04-02T16:47:22-04:00",
49
"voluntaryFiler": false,
50
"voluntaryFilerUpdatedAt": "2011-08-12T16:41:17-04:00",
51
"filerCategory": "Large Accelerated Filer",
52
"filerCategoryUpdatedAt": "2012-02-27T17:17:24-05:00",
53
"smallBusiness": false,
54
"smallBusinessUpdatedAt": "2011-08-12T16:41:17-04:00",
55
"emergingGrowthCompany": false,
56
"emergingGrowthCompanyUpdatedAt": "2011-08-12T16:41:17-04:00",
57
"shellCompany": false,
58
"shellCompanyUpdatedAt": "2011-08-12T16:41:17-04:00",
59
"fiscalYearEnd": "1231",
60
"fiscalYearEndUpdatedAt": "2012-06-08T16:25:18-04:00",
61
"latestIcfrAuditFiledAt": "2024-01-26T21:00:20-05:00",
62
"latestIcfrAuditFiledAtUpdatedAt": "2024-01-26T21:00:20-05:00",
63
"latestIcfrAuditSource": "0001628280-24-002390",
64
"latestIcfrAuditSourceUpdatedAt": "2024-01-26T21:00:20-05:00",
65
"auditorName": "PricewaterhouseCoopers LLP",
66
"auditorNameUpdatedAt": "2022-02-04T20:11:27-05:00",
67
"auditorFirmId": "238",
68
"auditorFirmIdUpdatedAt": "2022-02-04T20:11:27-05:00",
69
"auditorLocation": "San Jose, California",
70
"auditorLocationUpdatedAt": "2022-02-04T20:11:27-05:00",
71
"formTypes": {
72
"3": true,
73
"4": true,
74
"5": true,
75
"144": true,
76
"425": true,
77
"10-K": true,
78
"10-K/A": true,
79
"10-Q": true,
80
"3/A": true,
81
"4/A": true,
82
"424B3": true,
83
"424B4": true,
84
"424B5": true,
85
"5/A": true,
86
"8-A12B": true,
87
"8-K": true,
88
"8-K/A": true,
89
"ARS": true,
90
"CERTNAS": true,
91
"CORRESP": true,
92
"CT ORDER": true,
93
"D": true,
94
"DEF 14A": true,
95
"DEFA14A": true,
96
"EFFECT": true,
97
"FWP": true,
98
"LETTER": true,
99
"NO ACT": true,
100
"NT 10-K": true,
101
"POS AM": true,
102
"PRE 14A": true,
103
"PX14A6G": true,
104
"PX14A6N": true,
105
"REDACTED EXHIBIT": true,
106
"REGDEX": true,
107
"REGDEX/A": true,
108
"S-1": true,
109
"S-1/A": true,
110
"S-3ASR": true,
111
"S-4": true,
112
"S-4/A": true,
113
"S-8": true,
114
"S-8 POS": true,
115
"SC 13G": true,
116
"SC 13G/A": true,
117
"SC TO-T": true,
118
"SC TO-T/A": true,
119
"SD": true
120
},
121
"formTypesUpdatedAt": "2024-11-15T10:54:38-05:00"
122
}
123
]
124
}
POST Response Example
Response example for the POST request to search EDGAR registrants that have filed an ICFR audit and have PwC as their auditor, sorted by the latest ICFR audit date:
Response:
1
{
2
"total": {
3
"value": 569,
4
"relation": "eq"
5
},
6
"data": [
7
{
8
"id": "1314727",
9
"cik": "1314727",
10
"cikUpdatedAt": "2005-01-25T15:04:37-05:00",
11
"name": "Sonos Inc",
12
"nameUpdatedAt": "2023-04-04T18:29:22-04:00",
13
"businessAddress": {
14
"street1": "301 COROMAR DRIVE",
15
"street2": null,
16
"city": "SANTA BARBARA",
17
"state": "CA",
18
"zip": "93117",
19
"country": ""
20
},
21
"businessAddressUpdatedAt": "2024-05-06T12:47:24-04:00",
22
"mailingAddress": {
23
"street1": "301 COROMAR DRIVE",
24
"street2": null,
25
"city": "SANTA BARBARA",
26
"state": "CA",
27
"zip": "93117",
28
"country": ""
29
},
30
"mailingAddressUpdatedAt": "2024-05-06T12:47:24-04:00",
31
"irsNo": "030479476",
32
"irsNoUpdatedAt": "2010-03-22T14:48:01-04:00",
33
"stateOfIncorporation": "DE",
34
"stateOfIncorporationUpdatedAt": "2010-03-22T14:48:01-04:00",
35
"phone": "805-965-3001",
36
"phoneUpdatedAt": "2010-03-22T14:48:01-04:00",
37
"sic": "3651",
38
"sicUpdatedAt": "2018-01-18T11:13:55-05:00",
39
"sicLabel": "3651 Household Audio & Video Equipment",
40
"sicLabelUpdatedAt": "2018-01-18T11:13:55-05:00",
41
"cfOffice": "04 Manufacturing",
42
"cfOfficeUpdatedAt": "2024-04-04T11:47:45-04:00",
43
"currentReportingStatus": true,
44
"currentReportingStatusUpdatedAt": "2024-11-15T16:49:12-05:00",
45
"interactiveDataCurrent": true,
46
"interactiveDataCurrentUpdatedAt": "2024-11-15T16:49:12-05:00",
47
"wellKnownSeasonedIssuer": false,
48
"wellKnownSeasonedIssuerUpdatedAt": "2018-09-11T14:14:55-04:00",
49
"voluntaryFiler": false,
50
"voluntaryFilerUpdatedAt": "2018-09-11T14:14:55-04:00",
51
"filerCategory": "Large Accelerated Filer",
52
"filerCategoryUpdatedAt": "2019-11-25T17:51:18-05:00",
53
"smallBusiness": false,
54
"smallBusinessUpdatedAt": "2018-09-11T14:14:55-04:00",
55
"emergingGrowthCompany": false,
56
"emergingGrowthCompanyUpdatedAt": "2018-09-11T14:14:55-04:00",
57
"shellCompany": false,
58
"shellCompanyUpdatedAt": "2018-09-11T14:14:55-04:00",
59
"latestIcfrAuditFiledAt": "2024-11-15T16:49:12-05:00",
60
"latestIcfrAuditFiledAtUpdatedAt": "2024-11-15T16:49:12-05:00",
61
"latestIcfrAuditSource": "0001314727-24-000026",
62
"latestIcfrAuditSourceUpdatedAt": "2024-11-15T16:49:12-05:00",
63
"auditorName": "PricewaterhouseCoopers LLP",
64
"auditorNameUpdatedAt": "2022-11-23T16:02:39-05:00",
65
"auditorFirmId": "238",
66
"auditorFirmIdUpdatedAt": "2022-11-23T16:02:39-05:00",
67
"auditorLocation": "Los Angeles, California",
68
"auditorLocationUpdatedAt": "2022-11-23T16:02:39-05:00",
69
"formTypes": {
70
"3": true,
71
"4": true,
72
"144": true,
73
"10-K": true,
74
"10-Q": true,
75
"144/A": true,
76
"3/A": true,
77
"424B4": true,
78
"8-A12B": true,
79
"8-K": true,
80
"8-K/A": true,
81
"CERT": true,
82
"CORRESP": true,
83
"CT ORDER": true,
84
"D": true,
85
"DEF 14A": true,
86
"DEFA14A": true,
87
"DRS": true,
88
"DRS/A": true,
89
"DRSLTR": true,
90
"EFFECT": true,
91
"LETTER": true,
92
"REGDEX": true,
93
"S-1": true,
94
"S-1/A": true,
95
"S-8": true,
96
"SC 13G": true,
97
"SC 13G/A": true,
98
"SD": true
99
},
100
"formTypesUpdatedAt": "2024-11-15T16:49:12-05:00"
101
}
102
// ...
103
]
104
}
FAQ
Common questions about querying the EDGAR Entities Database API, the response shape, and the bulk archives.
How do I look up the full profile of a single company that files with the SEC when I only know its CIK number?
To retrieve the full EDGAR profile for one entity by its CIK, use the GET form of the /edgar-entities endpoint and supply the CIK as the lookup key (cik). For example, calling /edgar-entities?cik=1318605 returns Tesla's record with leading zeros stripped from the CIK.
The response is a JSON object with a total object and a data array containing a single entity. That entity carries the company's name (name), business and mailing addresses (businessAddress, mailingAddress), state of incorporation (stateOfIncorporation), SIC code and label (sic, sicLabel), filer category (filerCategory), auditor details (auditorName, auditorFirmId, auditorLocation), and the full list of form types ever filed (formTypes). Each business attribute is paired with a corresponding <field>UpdatedAt timestamp so you can see when each piece of information last changed.
How do I find a company's SEC profile by its legal name when I don't know its CIK?
Use the POST form of the /edgar-entities endpoint and filter on the entity name field (name). For an exact match, the value of name should equal the legal name as it appears in EDGAR, for example Tesla, Inc. or Sonos Inc. Wildcards are supported, so a partial match such as Tesla* will catch variations and abbreviations.
The response includes a total.value count of matches and a data array. Each match contains the entity's CIK (cik), which you can then reuse against the GET endpoint or in further queries. Because name changes are tracked separately, the nameUpdatedAt timestamp on each record tells you when the company last updated its registered name.
How do I retrieve all companies that have the same auditor by firm ID?
To list every entity audited by a particular PCAOB-registered firm, use the POST /edgar-entities endpoint and filter on the auditor firm identifier (auditorFirmId). For example, the value 238 corresponds to PricewaterhouseCoopers LLP, so setting auditorFirmId to 238 returns every filer whose latest ICFR auditor attestation lists that firm.
The total.value field in the response tells you how many entities the firm audits across EDGAR, and each entry in data includes the audit firm name (auditorName), the office location (auditorLocation), and the accession number of the source filing (latestIcfrAuditSource). Sorting by latestIcfrAuditFiledAtUpdatedAt in descending order surfaces the most recently confirmed engagements first.
How do I list every public company audited by a specific accounting firm such as Deloitte or PwC?
Use the POST /edgar-entities endpoint and filter on the auditor name field (auditorName). The value should match how the firm appears in the auditor attestation, such as PricewaterhouseCoopers LLP or Deloitte & Touche LLP. Filtering by the exact string ensures you do not pick up unrelated affiliates.
The total.value in the response tells you the count of audited entities, and each data entry carries the firm identifier (auditorFirmId) and the auditor office location (auditorLocation). If you prefer a more stable identifier that does not depend on firm-name spelling, filter on auditorFirmId instead — for example, 238 for PwC.
How do I find all SEC filers headquartered in a particular U.S. state?
To locate every filer with a business address in a given U.S. state, use the POST /edgar-entities endpoint and filter on the state code on the business address object (businessAddress.state). The value should be the two-letter postal abbreviation, such as CA for California or NY for New York.
The total.value field shows how many entities match, and each data entry includes the full business address (businessAddress.street1, businessAddress.city, businessAddress.zip) along with the corresponding mailing address (mailingAddress). Note that the business address reflects the operating headquarters reported to EDGAR, which may differ from the state of incorporation (stateOfIncorporation).
How do I find SEC-registered entities located in a specific city such as San Francisco?
Use the POST /edgar-entities endpoint and filter on the city portion of the business address (businessAddress.city). City names in EDGAR are stored in uppercase, so the value should look like SAN FRANCISCO or NEW YORK.
The data array returned contains the entity name (name), the full street address (businessAddress.street1, businessAddress.street2), state (businessAddress.state), and ZIP code (businessAddress.zip). If you need to disambiguate cities with the same name in different states — for example, Springfield — combine the city filter with businessAddress.state set to the appropriate two-letter postal code.
How do I search for companies incorporated in a specific state like Delaware?
To find companies that are legally incorporated in a particular jurisdiction, use the POST /edgar-entities endpoint and filter on the state of incorporation field (stateOfIncorporation). The value should be the two-letter postal code such as DE for Delaware, NV for Nevada, or MD for Maryland.
This is distinct from the headquarters location: many companies are incorporated in Delaware but operate elsewhere, so the response will surface entities whose businessAddress.state differs from stateOfIncorporation. The total.value field in the response gives you the count of incorporated entities, and the stateOfIncorporationUpdatedAt timestamp on each record indicates when that fact was last refreshed in EDGAR.
How do I find all companies operating within a specific industry?
Use the POST /edgar-entities endpoint and filter on the Standard Industrial Classification code (sic). The value is the four-digit SIC code that EDGAR assigns to each filer, for example 3711 for Motor Vehicles & Passenger Car Bodies or 7372 for Prepackaged Software.
The response also includes the human-readable label (sicLabel) on each entity, which combines the code and description, for example 3711 Motor Vehicles & Passenger Car Bodies. If you do not know the precise code, you can do a wildcard search on sicLabel to find candidates and then narrow down to the exact sic value once you have it.
How do I retrieve every entity within a broader industry category such as Manufacturing or Technology?
To group filers by the SEC Division of Corporation Finance's broader industry office instead of by individual SIC code, use the POST /edgar-entities endpoint and filter on the Central Filing Office (cfOffice). The value should be the office label as EDGAR records it, such as 04 Manufacturing, 06 Technology, or Office of Trade & Services.
The cfOffice field clusters dozens of related SIC codes under one umbrella, which makes it well-suited for industry-level analysis where the narrow four-digit sic filter would be too restrictive. Each match returned still carries the underlying sic and sicLabel, so you can drill down to a specific sub-industry after the broader filter.
How do I identify which companies are flagged as shell companies in SEC records?
Use the POST /edgar-entities endpoint and filter on the shell company flag (shellCompany). The value of shellCompany should be true to return only entities that are designated as shell companies under Rule 12b-2 of the Exchange Act.
Each matching record in the data array includes the entity name (name), CIK (cik), state of incorporation (stateOfIncorporation), and the timestamp of the last shell-company status change (shellCompanyUpdatedAt). Combining this filter with formTypes.10-K set to true further narrows the result to shell companies that have filed annual reports, which is often the starting point for due-diligence on reverse-merger candidates.
How do I find every entity that qualifies as an emerging growth company under the JOBS Act?
To list entities flagged as emerging growth companies under the Jumpstart Our Business Startups Act, use the POST /edgar-entities endpoint and filter on the emerging growth flag (emergingGrowthCompany). The value of emergingGrowthCompany should be true.
The response returns the count in total.value along with each entity's identifying details. Because EGC status is time-bounded — companies lose it five years after IPO or once they cross certain revenue or float thresholds — the emergingGrowthCompanyUpdatedAt timestamp tells you when the designation was last confirmed in EDGAR, which is useful for filtering out stale flags.
How do I find smaller reporting companies registered with the SEC?
Use the POST /edgar-entities endpoint and filter on the smaller reporting company flag (smallBusiness). The value of smallBusiness should be true to return only entities that meet the Smaller Reporting Company (SRC) thresholds.
Each record contains the entity name (name), CIK (cik), filer category (filerCategory), and the timestamp of the last SRC status update (smallBusinessUpdatedAt). Because SRC and accelerated filer status interact, combining smallBusiness set to true with filerCategory set to Non-accelerated Filer narrows the result to the more common small-cap profile.
How do I find well-known seasoned issuers as defined in Rule 405?
To list well-known seasoned issuers (WKSIs) as defined in Rule 405 of the Securities Act, use the POST /edgar-entities endpoint and filter on the WKSI flag (wellKnownSeasonedIssuer). The value of wellKnownSeasonedIssuer should be true.
The data array returns each WKSI's CIK (cik), name (name), filer category (filerCategory), and the timestamp of the most recent WKSI confirmation (wellKnownSeasonedIssuerUpdatedAt). Because WKSI status is reassessed annually based on public float and reporting history, the update timestamp lets you focus on issuers whose status is freshly confirmed rather than legacy assignments.
How do I filter for entities by their filer category such as Large Accelerated Filer vs Non-accelerated Filer?
Use the POST /edgar-entities endpoint and filter on the filer category field (filerCategory). The value should be the exact category label EDGAR uses, such as Large Accelerated Filer, Accelerated Filer, or Non-accelerated Filer.
Filer category drives many SEC requirements — accelerated filing deadlines, internal-control attestation obligations, and disclosure scope — so this is often combined with other filters. For example, restricting to Large Accelerated Filer and pairing it with wellKnownSeasonedIssuer set to true isolates the most established public companies. Each record's filerCategoryUpdatedAt timestamp shows when EDGAR last reclassified the entity.
How do I find companies that are currently up to date with their SEC reporting obligations?
To find filers in good standing with their Exchange Act reporting obligations, use the POST /edgar-entities endpoint and filter on the current reporting status flag (currentReportingStatus). The value of currentReportingStatus should be true, which indicates the entity has filed all required reports under Section 13 or 15(d) over the preceding twelve months and has been subject to those requirements for at least 90 days.
A related quality signal is interactive data filing compliance (interactiveDataCurrent), which should be true for entities that have submitted all required XBRL files. Combining both flags returns the cleanest set of filers for analytical work. The currentReportingStatusUpdatedAt timestamp tells you when EDGAR last reassessed the status.
How do I find companies that have ever filed an annual report?
Use the POST /edgar-entities endpoint and filter on the form-types map for annual reports (formTypes.10-K). The value of formTypes.10-K should be true to return only entities that have submitted at least one Form 10-K since 1994.
The formTypes object is a flat boolean map of every form type the entity has ever filed, so it captures historical filings even if the company is no longer active. This makes it well-suited for survivorship-bias-free studies. The amendment counterpart formTypes.10-K/A records 10-K/A filings separately, so requiring it as well narrows the result to companies that have filed at least one amended annual report.
How do I find every entity that has filed a particular form, such as Form D or Form 4?
Use the POST /edgar-entities endpoint and filter on the relevant key inside the form-types map (formTypes). For Form D, the value of formTypes.D should be true; for Form 4, the value of formTypes.4 should be true. The same pattern works for any other form: formTypes.8-K, formTypes.S-1, formTypes.SC 13G, and so on.
The formTypes field is a boolean map of every form type the entity has ever submitted, so the filter returns entities that have filed the form at least once, not necessarily recently. Each data entry still carries formTypesUpdatedAt, which is the timestamp when the form-types map for that entity last changed — a useful proxy for filing activity.
How do I find all Business Development Companies?
A Business Development Company (BDC) is a closed-end fund that has formally elected to be regulated as a BDC under §54(a) of the Investment Company Act of 1940 by filing Form N-54A (Notification of Election by Business Development Company). Because only BDCs ever file this notification, the cleanest filter at the POST /edgar-entities endpoint is formTypes.N-54A set to true.
Each result carries the entity's CIK (cik), name (name), business address (businessAddress), and the full form-types map. Note that entities that later revoked their BDC election with Form N-54C are still returned, since the form-types map is a cumulative history — combine with formTypes.N-54C:false if you want only currently electing BDCs.
How do I locate entities that have filed an amendment to a specific filing type?
Use the POST /edgar-entities endpoint and filter on the amended form key inside the form-types map (formTypes). Amendment forms use the original form code followed by /A, so for an amended annual report the value of formTypes.10-K/A should be true, and for an amended Form 4 the value of formTypes.4/A should be true.
Because the formTypes map records each variant separately, you can combine the base form and its amendment in one query — for example requiring both formTypes.10-K and formTypes.10-K/A to be true — to find companies that have filed and later amended an annual report. This pattern is the standard way to surface restatement candidates.
How do I list companies whose most recent internal control audit was filed within a specific date range?
Use the POST /edgar-entities endpoint and filter on the latest ICFR audit filing date (latestIcfrAuditFiledAt). The value of latestIcfrAuditFiledAt should fall between the start and end of the window you want, for example between 2024-01-01 and 2024-12-31 to surface companies whose most recent ICFR attestation was filed during calendar year 2024.
The total.value field tells you how many filers had a fresh ICFR audit in that window, and sorting by latestIcfrAuditFiledAtUpdatedAt in descending order returns the most recently confirmed audits first. Pair the date filter with auditorFirmId to scope the result to a particular accounting firm, or with filerCategory set to Large Accelerated Filer to focus on issuers required to provide auditor attestation.
How do I find filers whose fiscal year ends on a particular calendar date such as June 30?
Use the POST /edgar-entities endpoint and filter on the fiscal year end field (fiscalYearEnd). The value is a four-character string in MMDD format with no separator, so June 30 is 0630, December 31 is 1231, and September 30 is 0930.
This is useful for aligning peer-group analyses to a common reporting cadence — for example, retail companies commonly use January fiscal year ends, while many financial firms and universities use June. The fiscalYearEndUpdatedAt timestamp on each record indicates when the fiscal-year-end was last changed in EDGAR, which can help identify companies that have realigned their reporting calendar.
How do I look up a company by its IRS/EIN tax identification number?
Use the POST /edgar-entities endpoint and filter on the IRS tax identification field (irsNo). The value should be the nine-digit EIN as a string without the hyphen, for example 912197729 for Tesla, Inc. or 030479476 for Sonos Inc.
The response returns the matching entity's name (name), CIK (cik), and full address details (businessAddress, mailingAddress). Because EDGAR allows the EIN to be populated with placeholder zeros for some entities — particularly newly registered partnerships and special-purpose vehicles — a value of 000000000 is not a real EIN and should be treated as missing. The irsNoUpdatedAt timestamp tells you when the EIN was last reported.
How do I retrieve a list of insider individuals who have only ever filed insider-ownership reports?
Use the POST /edgar-entities endpoint and filter on the form-types map (formTypes) so that at least one of the insider-ownership forms is true — formTypes.3, formTypes.4, or formTypes.5 — while the keys for operating-company forms such as formTypes.10-K, formTypes.10-Q, formTypes.8-K, and formTypes.S-1 are all absent or false. This isolates filers whose entire EDGAR history consists of Section 16 ownership reports, which is characteristic of individual insiders rather than corporate issuers.
The matching data entries typically carry a personal name in name (for example a last-name-first format like Kiernan Michael) and a mailing address that often appears as C/O the employer. Because EDGAR does not have an explicit person-versus-company flag, this form-types pattern is the practical proxy. The formTypesUpdatedAt timestamp surfaces the most recently active insiders.
How do I find entities whose corporate name has been updated since a certain date?
Use the POST /edgar-entities endpoint and filter on the name-update timestamp (nameUpdatedAt). The value of nameUpdatedAt should be greater than or equal to the cutoff date — for example, anything on or after 2024-01-01 — to return entities whose registered name has changed within that window.
The data entries returned include the current name (name), the prior CIK assignment date (cikUpdatedAt), and the form-types map (formTypes), which together let you distinguish a routine rebranding from a reverse-merger shell that has taken on a new identity. Sorting by nameUpdatedAt in descending order surfaces the most recent renames first.
How do I page through more than 50 search results when many entities match my criteria?
The POST /edgar-entities endpoint caps each response at 50 entities through the size parameter, whose maximum is also 50. To page through a larger result set, increment the from parameter by the page size on each subsequent call — from of 0 returns the first page, from of 50 returns the second, from of 100 returns the third, and so on, up to a maximum offset of 10000.
The total.value field in every response tells you how many entities match the query in total, so you know when to stop paging. To keep paging stable across calls, always supply an explicit sort order — for instance sorting by cikUpdatedAt in descending order — so the underlying ordering does not shift between pages.
How do I sort search results by when an entity's record was most recently updated?
Use the POST /edgar-entities endpoint and supply the sort parameter pointing at one of the per-field update timestamps. For overall record freshness, sort by the CIK update timestamp (cikUpdatedAt) in descending order; for the most recent corporate-name changes, sort by nameUpdatedAt in descending order.
Because every business attribute carries its own <field>UpdatedAt companion, you can pick the timestamp that matches the dimension you care about — for example latestIcfrAuditFiledAtUpdatedAt to surface recently audited filers, or formTypesUpdatedAt to surface entities with the most recent filing activity. The default sort order if none is specified is cikUpdatedAt in descending order.
How do I combine multiple filters in a single search, such as Delaware-incorporated tech companies that filed a 10-K?
The POST /edgar-entities endpoint accepts compound queries in the query field, so several filters can be combined in one request. For Delaware-incorporated software companies that have filed an annual report, the value of stateOfIncorporation should be DE, the value of sic should be 7372 for Prepackaged Software, and the value of formTypes.10-K should be true, all joined together so every condition must hold.
The total.value field shows the count of entities meeting all conditions simultaneously. Parentheses let you group alternatives — for instance, allowing either 7372 or 7370 as the SIC code while still requiring the other two conditions — and negation lets you exclude unwanted categories, such as filtering out entities whose shellCompany is true to focus on operating businesses.
How do I count how many SEC filers exist in a given industry without retrieving them all?
Use the POST /edgar-entities endpoint with the relevant industry filter — for example sic set to 7372 or cfOffice set to 06 Technology — and set size to 1 so only one record is returned. The count you need is in the total.value field of the response, which reflects how many entities match the query regardless of how many were returned in data.
The accompanying total.relation field is either eq when the count is exact or gte when it is a lower bound, which matters for very large result sets. This pattern is the standard way to do cardinality-only analysis without paying the bandwidth cost of fetching every record.
How do I find companies whose auditor is located in a specific city, to spot potential auditor-concentration risk?
Use the POST /edgar-entities endpoint and filter on the auditor office location field (auditorLocation). The value should be the city-and-state string as EDGAR records it on the auditor attestation, for example San Jose, California or Los Angeles, California.
The total.value field tells you how many issuers rely on auditors based in that city, and pairing the filter with auditorFirmId narrows further to a specific firm's office — useful when one regional office serves a heavy concentration of clients in a single industry. To assess concentration risk across an industry, combine auditorLocation with sic or cfOffice so the result reflects only the relevant peer group.
How do I detect companies that recently switched auditors so I can flag potential audit-quality concerns?
To surface entities whose auditor assignment has changed recently, use the POST /edgar-entities endpoint and lean on the auditor-name update timestamp (auditorNameUpdatedAt). Sorting by auditorNameUpdatedAt in descending order brings the freshest auditor changes to the top of the result set, and filtering so that the value of auditorNameUpdatedAt is on or after a chosen cutoff date — for example, anything from 2024-01-01 onwards — narrows the result to recent switches.
Each data entry returned carries the current auditor name (auditorName), the firm identifier (auditorFirmId), the auditor office location (auditorLocation), and the accession number of the source attestation (latestIcfrAuditSource). The companion timestamps auditorFirmIdUpdatedAt and auditorLocationUpdatedAt change in lockstep with the name when the engagement actually moves to a different firm, which helps you separate genuine auditor changes from routine re-confirmations of the same engagement. Combining the date filter with filerCategory set to Large Accelerated Filer focuses attention on the larger issuers where auditor turnover is most material.
How do I find companies that file with the SEC voluntarily even though they aren't required to?
To list entities that continue to submit Exchange Act reports even though they are not required to do so, use the POST /edgar-entities endpoint and filter on the voluntary filer flag (voluntaryFiler). The value of voluntaryFiler should be true, which on EDGAR indicates the entity is not subject to the reporting requirements of Section 13 or 15(d) but is filing anyway.
Each data entry returns the entity name (name), CIK (cik), filer category (filerCategory), and the timestamp when the voluntary status was last confirmed (voluntaryFilerUpdatedAt). Pairing the filter with currentReportingStatus set to true further restricts the result to voluntary filers that are also up to date on the reports they choose to file, which is a useful subset for investor-relations and credit-analysis work.