research civic-tech api

No Canadian city has a working 311 API

Ahmed Nadar · · 2 min read

I spent a day testing every major Canadian city’s civic reporting API. I wanted to find one, just one, that would let me submit a service request programmatically and get a reference number back.

The result: zero.

What I tested

City Status What Happened
Toronto Retired Dec 2021 Returns 403. Moved to Salesforce
Ottawa Dead DNS doesn’t resolve. Server deleted
Quebec City Dead SSL certificate expired
Surrey, BC Dead Returns 400 error
Vancouver Never had one Van311 app only
Calgary Never had one 311 app only
Edmonton Never had one Data explorer only
Montreal Never had one Phone/app only
Winnipeg Never had one No public API
Halifax Never had one Cityworks platform, email only

I also tested SeeClickFix, which claimed partnerships with 10+ Canadian cities. Every city returned only “Post to Neighbors”, a generic community board, not a real 311 integration.

What about other countries?

UK, FixMyStreet emails 98% of councils. Custom API integrations exist for maybe 2% of councils, built over 15 years.

Australia, SnapSendSolve emails 850+ councils. Two-way API integration is the rare exception, not the rule.

The global reality

Most if not all of the world’s civic reporting infrastructure seems to be running on email. Not APIs. Not integrations. Email.

So who confirms an issue is actually fixed? Not the city, they don’t report back.

Citizens do.

What this means for SolveTO

I’m not waiting for cities to build APIs. I built my own reference number tracking system. Every SolveTO report gets a unique reference (like STO-A3F7K2) that you can look up anytime.

I email reports to the city’s 311 service and to the ward councillor. When the issue gets fixed, community members verify it, the same way FixMyStreet has worked for 18 years.

Cities can catch up when they’re ready. Until then, citizens don’t have to wait.

Report an issue: solveto.ca

Support SolveTO: solveto.ca/support

Questions: support@solveto.ca