Getting Started
Our Research API provides programmatic access to civil rights incident data for researchers, journalists, and advocacy organizations.
Rate Limits
- 100 requests per hour per IP address
- Maximum 100 results per request
- CSV exports count as 1 request
Base URL
https://justicewatch.app/api/researchGET
/api/research
Query incidents with filtering, pagination, and field selection
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
limit | integer | Results per page (max: 100, default: 50) |
state | string | Two-letter state code (e.g., CA, TX) |
city | string | City name (partial match) |
type | string | Incident type: police_killing, excessive_force, wrongful_arrest, etc. |
from | date | Start date (YYYY-MM-DD) |
to | date | End date (YYYY-MM-DD) |
verification | string | unverified, single_source, multi_source, officially_confirmed |
fatalities | boolean | Filter by fatal/non-fatal (true/false) |
q | string | Search in summary and description |
fields | string | Comma-separated list of fields to return |
sort | string | Sort by: incident_date, created_at, fatalities, city, state |
order | string | Sort order: asc or desc (default: desc) |
format | string | Response format: json (default) or csv |
Available Fields
id
incident_date
incident_time
incident_type
sub_types
city
county
state
latitude
longitude
summary
detailed_description
fatalities
injuries
victim_status
victim_race
victim_gender
victim_age_range
agency_name
verification_status
source_name
source_url
Example Request
curl "https://justicewatch.app/api/research?state=CA&type=police_killing&from=2025-01-01&limit=10"
Example Response
{
"meta": {
"total": 127,
"page": 1,
"limit": 10,
"total_pages": 13,
"fields": ["id", "incident_date", "incident_type", ...],
"filters": {
"state": "CA",
"type": "police_killing",
"from": "2025-01-01"
}
},
"data": [
{
"id": "abc123...",
"incident_date": "2025-03-15",
"incident_type": "police_killing",
"city": "Los Angeles",
"state": "CA",
"summary": "...",
...
}
],
"links": {
"self": "/api/research?page=1&limit=10",
"next": "/api/research?page=2&limit=10",
...
}
}GET
/api/research/stats
Get aggregated statistics and trends
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state | string | Filter by state |
from | date | Start date |
to | date | End date |
Response Includes
- Total incidents and fatalities
- Breakdown by incident type
- Top 10 states by incident count
- Verification status distribution
- Monthly trend (last 12 months)
GET
/api/research/cases
Query legal cases and settlement data
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page, limit | integer | Pagination |
state | string | Court state |
status | string | pending, active, settled, verdict, dismissed, appealed, closed |
jurisdiction | string | federal, state, county, municipal |
min_amount | number | Minimum settlement/verdict amount |
from, to | date | Filing date range |
q | string | Search in case name and summary |
GET
Widget APIs
Lightweight endpoints for embeddable widgets
/api/widgets/count
Get incident count for a time period
?state=CA&type=police_killing&from=2025-01-01&to=2025-12-31/api/widgets/feed
Get recent incidents for a feed
?state=CA&type=police_killing&limit=10Want embeddable widgets? Check out our widget builder
Usage Guidelines
Attribution
When using our data in publications or applications, please include attribution:
Data from JusticeWatch (https://justicewatch.app)Terms of Use
- Data is provided for research, journalism, and advocacy purposes
- Do not use data to identify or target individuals
- Respect rate limits to ensure fair access for all users
- Contact us for bulk data access or commercial use
Contact
For API support, bulk data requests, or questions about data methodology, please reach out through our GitHub repository