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.

Live

Base URL

https://api.crimate.net/v1/crime

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/categories

Endpoints

GET/v1/crime/stations

List 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
GET/v1/crime/stations/{stationID}

Get details for a specific police station

Parameters: stationID (path parameter)

Example

GET /v1/crime/stations/42
GET/v1/crime/stations/{stationID}/stats

Crime 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
GET/v1/crime/categories

List all crime categories with parent/subcategory hierarchy

Parameters: None

Example

GET /v1/crime/categories
GET/v1/crime/stats

Overall dataset statistics (total stations, records, periods)

Parameters: None

Example

GET /v1/crime/stats

Response 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

GET
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

TierPriceRate LimitDaily QuotaMonthly Quota
FreeR0/mo10 req/min1001,000
StarterR299/mo60 req/min5,00050,000

Error Codes

All error responses follow a consistent JSON format:

{
  "error": "error_code",
  "message": "Human-readable description."
}
StatusError CodeDescription
400invalid_requestThe request body or query parameters are malformed.
401unauthorizedMissing or invalid API key.
403no_subscriptionNo active subscription for this API product.
403quota_exceededDaily or monthly quota exceeded.
404not_foundThe requested resource does not exist.
429rate_limit_exceededToo many requests. Check X-RateLimit-Remaining header.
500internal_errorAn unexpected server error occurred.