API documentation
Access structured neighbourhood data for 744 Cape Town suburbs - our pilot city. The API serves pre-built JSON files - no authentication required, no rate limits, and responses are cached at the CDN edge.
Base URL
https://streetsignal.co.za/api/v1Endpoints
Meta
API version, data source descriptions, update cycles, and schema reference.
GET /api/v1/meta.jsonAll suburbs (summary)
Lightweight array of all 744 suburbs with key metrics: safety index, risk profile, median property valuation, school count, healthcare access, civic responsiveness, and taxi route connectivity.
GET /api/v1/suburbs.jsonBulk download (CSV)
The same summary dataset as a CSV file, one row per suburb, for spreadsheet users and bulk analysis. Same licence and attribution terms as the JSON endpoints.
GET /api/v1/suburbs.csvSuburb detail
Full profile for a single suburb including safety, property, education, transport, services, healthcare, and census data.
GET /api/v1/suburbs/{slug}.jsonOpenAPI spec
A machine-readable OpenAPI 3.1 specification is available at /api/openapi.json. It documents all endpoints, request parameters, response schemas, and reserved headers for the upcoming commercial tier. Import it into Swagger UI, Postman, or any OpenAPI-compatible tool.
MCP server
AI assistants can query StreetSignal data directly through our Model Context Protocol server. It exposes the same public data as the static API through five read-only tools:get_suburb_profile, compare_suburbs, rank_suburbs,search_suburbs, and get_methodology.
https://mcp.streetsignal.co.za/mcpThe transport is streamable HTTP with no authentication. Requests are limited to 60 per minute per IP. A machine-readable server card is published at/.well-known/mcp.json. Tool responses carry the same caveats as the site: safety indices are relative to other Cape Town suburbs, not absolute measures.
Example client configuration:
{
"mcpServers": {
"streetsignal": {
"type": "http",
"url": "https://mcp.streetsignal.co.za/mcp"
}
}
}The MCP server is experimental (v0.1.0). The tool surface may change while we learn how assistants use it.
Example
Fetch the full profile for Camps Bay:
curl https://streetsignal.co.za/api/v1/suburbs/camps-bay.jsonResponse structure:
{
"slug": "camps-bay",
"name": "Camps Bay",
"coordinates": { "lat": -33.951, "lng": 18.378 },
"police_station": "Camps Bay",
"is_proxy_precinct": false,
"safety": {
"score": 72,
"risk_profile": "Lower reported crime",
"trend": "Stable",
"is_proxy_precinct": false,
"tourist_paradox": true
},
"property": {
"median_gv": 5500000,
"percentile": 99,
"cagr": 0.054,
"median_band": "R4M – R6M"
},
"education": {
"school_count": 3,
"matric_pass_rate": 92.1
},
"transport": {
"dominant_mode": "car",
"taxi_routes": 2
},
"services": {
"civic_responsiveness_percentile": 85,
"median_resolution_days": 4
},
"healthcare": {
"facilities_within_5km": 12,
"nearest_facility_km": 1.2
},
"census": {
"population": 3890
}
}Values shown are illustrative. Fetch the endpoint for current data.
Schema reference
Summary fields (suburbs.json)
| Field | Type | Description |
|---|---|---|
slug | string | URL-safe suburb identifier |
name | string | Display name |
coordinates | object | Centroid lat/lng |
safety_score | number | null | Composite safety index (1–100, higher is safer) |
risk_profile | string | Lower / Moderate / Higher reported crime, or No data |
median_gv | number | null | Median municipal valuation (GV 2022, ZAR) |
property_percentile | number | null | Property value percentile rank (0–100) |
school_count | number | Schools within suburb boundary |
healthcare_facilities_5km | number | null | Healthcare facilities within 5 km |
civic_responsiveness_percentile | number | null | C3 service delivery responsiveness percentile |
taxi_routes | number | null | Minibus taxi routes serving the suburb |
Detail fields (suburbs/{slug}.json)
Includes all summary fields plus nested objects for safety,property, education, transport,services, healthcare, and census. See the example response above for the full structure.
Data sources
- Safety: SAPS quarterly crime statistics, processed through the CHI composite safety pipeline.
- Property: City of Cape Town General Valuation Roll 2022. Municipal rates valuations, not market transaction prices.
- Education: Department of Basic Education EMIS masterlist, Western Cape Q2 2025.
- Healthcare: City of Cape Town health facility register. Haversine distance to 157 facilities.
- Transport: City of Cape Town minibus taxi route data and MyCiTi stop locations.
- Civic: City of Cape Town C3 service request complaints data (2.5 million records).
- Census: Statistics South Africa Census 2022 sub-place population crosswalk.
Full methodology documentation is available on themethodology page.
Commercial access — coming soon
Validating demandThe free static JSON API above is generous by design. A paid tier with higher volume, an SLA, and direct support is on the roadmap, but we are not shipping it until we know what the market actually wants.
If you have a commercial use case for StreetSignal data — whether you are an estate agency, a property developer, a financial institution, a researcher, or a product team — we want to hear from you. The pricing bands below are hypotheses to validate, not commitments. Helping us price this gets you early-access pilot spot and locked-in launch pricing.
Free
R0 / month
Available today.
- Full static JSON API (all 744 suburbs)
- No authentication, no rate limits
- CDN-cached, regenerated quarterly
- Attribution required
Starter
~R499 / month
Indicative. Validating demand.
- Up to 50,000 authenticated API calls / month
- API key with usage dashboard
- Best-effort email support
- Commercial use permitted with attribution
Pro
~R1,999 / month
Indicative. Validating demand.
- Up to 500,000 authenticated API calls / month
- Historical quarterly snapshots (when published)
- Raw CSV export of any suburb or ranking
- Priority support, 48h response target
Enterprise
Contact sales
Custom pricing and SLA.
- Unlimited API calls, dedicated quota
- Custom data products and integrations
- Signed SLA, named support contact
- Bulk licensing for financial institutions
Join the waitlist
Tell us about your use case. Early registrants get first access and locked-in launch pricing.
We do not share your details or use them for marketing. Privacy policy
Usage terms
The API is free for non-commercial use. Attribution to StreetSignal is required when displaying data publicly. For commercial use, custom integrations, or bulk access, see our data products or contact us at[email protected].
Data is regenerated at each site build. Responses are served as static files via Cloudflare CDN. There are no rate limits, but please cache responses on your end where possible.