PoliceCensus

Home / Downloads

Downloads & API

Some of the figures on this site are available as a file; most are not. The exports below are keyed by ORI (the FBI’s agency identifier) or by two-letter state code. What an export contains is listed in full on this page, and so is what none of them contains — a figure shown on an agency page is not necessarily in its export, so check the lists before relying on a file being complete. Machine-readable orientation for the whole site is at /llms.txt.

Per-agency

Identity, workforce history, military-surplus receipts, federal oversight matters and officer-assault figures for one agency, looked up by ORI. Crime, arrests, hate crime, Texas racial-profiling filings, the Washington register and deaths are not in these files; see the list further down.

FormatURL patternContains
JSON/api/agencies/{ori}Identity, full workforce history, military-surplus summary and items, federal oversight matters, the officer-assault series (by year and weapon), and the other agencies recorded in the same county. These are the only sections the file carries; it is not the whole agency page.
CSV/api/agencies/{ori}/csvIdentity columns plus one row per year of reported workforce data (officers, civilians, population, and the agency’s own officers-per-1,000 figure). Workforce only: military surplus, federal oversight and officer assaults are in the JSON, not the CSV. An agency with no workforce return still gets one identity row, with those columns blank — it does not vanish from the file.

The ORI for any agency is on its page, in the URL pattern /agencies/{state}/{slug} and in the page’s “Source” section.

Per-state (bulk)

The full agency roster — identity fields only, no workforce or equipment detail — for one state at a time: ORI, name, type, state, county, coordinates, NIBRS status and start date, the site’s data tier and the agency’s page URL. The JSON also carries the state’s agency and NIBRS counts. Where the FBI has no county on file for an agency, the county is null in the JSON and blank in the CSV; it is never filled with a placeholder.

FormatURL pattern
JSON/api/states/{xx}
CSV/api/states/{xx}/csv

There is no single endpoint for all 19,645 agencies at once. Bulk export is bounded to one US state or territory per request on purpose — a request for the whole country still means one request per jurisdiction (up to 51), never one unbounded response. Every state’s roster, however large, comes back complete or not at all: if a read cannot be proven complete, the endpoint returns an error instead of a shorter file that would look like a smaller state.

What no export includes, and why

The files above are the only exports, and each section named above is the whole of what they carry. These datasets, all of which appear on this site’s pages, are in no JSON or CSV file:

The full list of datasets is on Source inventory.

Deaths during police encounters (Mapping Police Violence data) is excluded from every download on this site, as of 2026-08-30. That data is used on this site’s own pages under written permission. Whether that permission covers redistributing derived counts in a downloadable file — as distinct from displaying them on a web page — is an open question that has not been put to the source and answered. Excluding it here is reversible the moment that is settled; shipping it and then having to retract a file that copies may already have been made of is not. This site would rather publish less than publish something it might have to take back.

No export contains a victim name, ever. deaths.victim_name and deaths.agency_text exist in the database only as cross-source matching keys and are excluded from every page and export by construction — not just because the deaths table itself is excluded above. That is enforced by an automated check against the live site, not by convention: scripts/gate-no-name-leak.sh.

No export contains an estimate, a modelled figure, or a ratio this site computed by combining numbers from different sources or different years. A rate reported directly by a source — an agency’s own officers-per-1,000 figure, as it filed with the FBI — is included as-is; a rate this site would have to calculate itself from two mismatched bases is not. See Method & sources.

Reliability

Every endpoint above reads the database at request time and fails closed: if a read does not complete, the response is an HTTP 503 with an explanatory body, never a 200 with fewer rows than the real count. A short file and a genuinely small result would look identical to anyone who saved it, so this site treats that ambiguity as unacceptable rather than convenient.

Believe something in an export is wrong? Tell us at corrections@policecensus.com — every correction is published on Corrections.