The scores and cited event facts behind the SafeZone Map, as a structured, PII-free REST API. 15 countries, 21,000+ neighborhoods — without scraping, without building a news pipeline, and without accidental safety verdicts.
Population-normalized and ranked against comparable areas — "red" always means "highest relative to peers," a framing that survives legal and PR scrutiny.
An incident with vague geography is spread across every zone it might belong to.
eventCount credits it to each whole; effectiveEventCount
reports the fraction actually attributed. Null means not measured, never zero.
Zones without sufficient data are explicitly "insufficient data." Your product never tells a customer an unmeasured area is safe.
Event records carry crime type, severity, dates, and a citation URL to the original publisher or official dataset. No black box.
No names, no article text, no personal data — raw text is discarded at extraction. Clean for GDPR-sensitive integrations.
News ingestion runs hourly across all countries; scores refresh daily with a rolling window and recency decay.
15 countries today. New markets are configuration, not engineering — ask about your geography.
JSON over HTTPS, authenticated with an x-api-key header. Keys are
per-customer, optionally country-scoped, with daily rate limits.
| Endpoint | Returns |
|---|---|
GET /api/v1/countries |
Coverage list with unit counts and unit types |
GET /api/v1/countries/{code}/zones |
Paginated zone scores: bucket, percentile, eventCount,
effectiveEventCount, scoring window, cohort
|
GET /api/v1/zones/{unitId} |
Current score plus score history |
GET /api/v1/zones/{unitId}/events |
Cited event facts — type, severity, dates, source URL (up to 100 per zone) |
Unit granularity matches each country's official statistical geography — Electoral Divisions, LSOAs, counties, communes, arrondissements. 15 countries today, and adding a market is a manifest change rather than a rebuild.
Area context on every listing page, with citations instead of vibes.
A defensible, explainable relative-incident signal at neighborhood granularity.
Multi-country coverage from a single integration.
Ranked, cited, population-normalized data for local reporting.
A read-only map for your own page — one iframe, no API key, no cookies, no analytics. It shows the same ratings as the full map, keeps "insufficient data" as its own colour rather than a safety claim, and links back to the view it is showing.
Per country or globally, annual contracts, usage-tiered. Evaluation keys available — tell us your use case and we'll set one up.