Read the governed EEOC data programmatically over plain HTTP. Every endpoint returns JSON (or CSV where noted) and needs no key. The base URL for this site is https://eeocdev.dev. Back to the data catalog.
Append any path below to the base URL and request it with your tool of choice. Responses are UTF-8 JSON unless the path ends in .csv. Numbers are rounded to two decimals and missing values are returned as null.
OpenAPI document (/openapi.json)DCAT-US 3 catalog (/data.json)
| Method | Path | Description |
|---|---|---|
| GET | /datasets | List the published datasets with their table inventories. |
| GET | /datasets/{slug} | Describe one dataset by its stable slug. |
| GET | /datasets/{slug}/data?table=&limit=&offset= | Page through one dataset's rows; table is required when a dataset has more than one. |
| GET | /governed/tables.json | List the governed tables for the active backend. |
| GET | /governed/{table}.json?limit=&offset= | Read a page of rows from one governed table. |
| GET | /data/{cid}.json | Download one dataset's tables as a single JSON document. |
| GET | /catalog/table/{table}.csv | Stream one governed table's full data as CSV. |
| GET | /catalog/table/{table}.json | Stream one governed table's full data as JSON. |
| GET | /openapi.json | The OpenAPI 3 description of the read API. |
| GET | /data.json | The DCAT-US 3 open-data catalog. |
The row endpoints accept limit (how many rows to return) and offset (which row to start at). To read a table in pages, request offset=0, then offset=limit, then offset=2×limit, and so on until a page comes back with fewer rows than the limit. To download an entire table at once instead, use /catalog/table/{table}.csv or .json, which stream every row.
Copy and run these with curl. They work from any shell.
# List the published datasets curl https://eeocdev.dev/datasets # Describe one dataset curl https://eeocdev.dev/datasets/eeo-1 # Page through a dataset's rows (100 rows, starting at row 0) curl "https://eeocdev.dev/datasets/charge-statistics/data?table=charge_lifecycle.main&limit=100&offset=0" # Read a page from one governed table curl "https://eeocdev.dev/governed/eeo3_puf.json?limit=50&offset=0" # Download a whole governed table as CSV curl -O https://eeocdev.dev/catalog/table/governed.eeo3_puf.csv # Fetch the OpenAPI description curl https://eeocdev.dev/openapi.json
The Swagger UI below loads the OpenAPI description and lets you call each endpoint from the browser. The assets are served from this site, so it works in a closed network with no internet access. You can also load /openapi.json into Postman or any OpenAPI tool.