Toronto open data, normalized
Every building permit, one clean API.
Toronto publishes 202,779 active building permits with 31 inconsistent fields. citysignal normalizes them into 8 documented fields and serves them live, with the provenance of every record stated up front.
Search above to query the live API.
Every result below comes from Toronto Open Data at request time, not from fixtures.
How it works
The normalization is the product.
01
Fetch
The API queries the city's CKAN datastore live: 202,779 active permits, 31 raw fields, inconsistent naming and casing throughout.
02
Normalize
Street number, name, type and direction become one address. Statuses collapse into a documented filter. 31 fields become 8, with values verbatim from the source.
03
Serve
A documented REST API with OpenAPI 3.1, a 10-minute server cache, and provenance metadata on every response so agents can cite the source.
API
Two endpoints. Full provenance.
GET /api/v1/permits
Search normalized permits by postal code prefix, status, or full-text query.
curl "https://city.nshipyard.com/api/v1/permits?postal_code=M5V&status=active&limit=5"Try it live →
GET /api/v1/permits/{id}
One normalized permit by city permit number.
curl "https://city.nshipyard.com/api/v1/permits/11%20249370%20BLD"Try it live →