SAPS Crime Statistics API
Structured crime statistics from the South African Police Service (SAPS). Query station-level data across 24 crime categories, filter by province, period, and category. Data sourced from quarterly SAPS crime reports.
Base URL
Authentication
Include your Crime Stats API key in the Authorization header.
curl -H "Authorization: Bearer db_crime_stats_live_YOUR_KEY" \
https://api.crimate.net/v1/crime/categoriesEndpoints
/v1/crime/stationsList police stations with optional province filter or search
Parameters: province (optional), q (optional search), page, per_page
Example
GET /v1/crime/stations?province=Gauteng&page=1&per_page=20/v1/crime/stations/{stationID}Get details for a specific police station
Parameters: stationID (path parameter)
Example
GET /v1/crime/stations/42/v1/crime/stations/{stationID}/statsCrime statistics for a station, filterable by period and category
Parameters: stationID (path), period (optional), category (optional)
Example
GET /v1/crime/stations/42/stats?period=2024Q1&category=murder/v1/crime/categoriesList all crime categories with parent/subcategory hierarchy
Parameters: None
Example
GET /v1/crime/categories/v1/crime/statsOverall dataset statistics (total stations, records, periods)
Parameters: None
Example
GET /v1/crime/statsResponse Example
Station stats response:
{
"station_id": "42",
"stats": [
{
"period": "2024Q1",
"category_code": "murder",
"category_name": "Murder",
"count": 12
},
{
"period": "2024Q1",
"category_code": "burglary_residential",
"category_name": "Burglary at Residential Premises",
"count": 87
}
]
}Try It
Enter your Crime Stats API key to make a live request. Generate a key in the dashboard.
Try It
Make a live API call from your browser
curl -H "Authorization: Bearer db_crime_stats_live_YOUR_KEY" \
"https://crimate.net/v1/crime/stats"Crime Categories
24 categories across three groups:
Contact Crimes
- Murder
- Attempted Murder
- Sexual Offences
- Assault GBH
- Common Assault
- Robbery (Aggravating)
- Common Robbery
- Carjacking
Property Crimes
- Burglary (Residential)
- Burglary (Business)
- Theft of Motor Vehicle
- Theft out of Vehicle
- Stock Theft
Other Serious
- Arson
- Malicious Damage
- Commercial Crime
- Shoplifting
- Drug-Related
- Illegal Firearms
Rate Limits
| Tier | Price | Rate Limit | Daily Quota | Monthly Quota |
|---|---|---|---|---|
| Free | R0/mo | 10 req/min | 100 | 1,000 |
| Starter | R299/mo | 60 req/min | 5,000 | 50,000 |
Error Codes
All error responses follow a consistent JSON format:
{
"error": "error_code",
"message": "Human-readable description."
}| Status | Error Code | Description |
|---|---|---|
| 400 | invalid_request | The request body or query parameters are malformed. |
| 401 | unauthorized | Missing or invalid API key. |
| 403 | no_subscription | No active subscription for this API product. |
| 403 | quota_exceeded | Daily or monthly quota exceeded. |
| 404 | not_found | The requested resource does not exist. |
| 429 | rate_limit_exceeded | Too many requests. Check X-RateLimit-Remaining header. |
| 500 | internal_error | An unexpected server error occurred. |