U.S. Equal Employment Opportunity Commission seal

Data Catalog API

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.

Getting started

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)

Endpoints

Read API endpoints
MethodPathDescription
GET/datasetsList 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.jsonList 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}.jsonDownload one dataset's tables as a single JSON document.
GET/catalog/table/{table}.csvStream one governed table's full data as CSV.
GET/catalog/table/{table}.jsonStream one governed table's full data as JSON.
GET/openapi.jsonThe OpenAPI 3 description of the read API.
GET/data.jsonThe DCAT-US 3 open-data catalog.

Pagination

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.

Examples

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

Interactive API explorer

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.