Finding records
Search by name, place or industry, or look a record up by an identifier you already hold.
Use /v1/search when you know a name, an area or an industry. Use /v1/resolve when you hold an identifier, such as a permit number or an EIN.
Search: GET /v1/search
| Parameter | What it does |
|---|---|
q | Text search on the record name. Every word must match; case does not matter. |
label | Record types to return: organization, site, project, permit. Repeatable. Default: organization, site and project. |
state | Two-letter state code. |
naics | NAICS prefix, 2 to 6 digits. naics=325 returns all chemical manufacturing. |
permit | The Permit and its Site, as AUTHORITY:PERMIT_NO. |
lat, lon, radius_km | Sites within the radius (up to 200 km), nearest first, with distance_km. |
cursor, limit | Paging. limit is 1 to 100, default 25. |
Filters combine with AND, and at least one is required. Each result carries a summary (NAICS, address, operating status, project status, first and last event dates), so you can sort results without opening each record.
Paging
/search, /edges and /timeline return next_cursor. Pass it back as cursor with the same filters until it is null. Paging stops at 10,000 results, so narrow large queries with state, a longer naics prefix or a radius.
Resolve: GET /v1/resolve
Pass kind and key. Dashes, case and padding in the key do not matter. If the record was merged, you get the surviving ID, and redirected_from names the old one.
| Returns | Example kinds |
|---|---|
| Site | Facility identifiers |
| Permit | permit (AUTHORITY:PERMIT_NO) |
| Organization | ein, duns, sam_uei |
| Event | Event identifiers |
The full list of kind values is in GET /openapi.json.
A key no record holds returns 404 {"detail": "no entity holds this key"}.