Canadian Municipal Fee Intelligence, Built for AI Agents.
Source-linked municipal fee data in structured JSON. Designed for AI agents, developers, and automated systems that need verifiable answers.
People can use it too: find individual Canadian municipal permit and development fees and run supported calculations below. No made-up national averages.
construction_value_cad=25000
"status": "published_component_only",
"is_total_project_fee": false,
"source_url": "surrey.ca/..."
Built for AI Agents. Readable by people too.
Canada Fee Signal AI returns the same source-linked fee components you can explore on this page as structured JSON, so an AI agent, script, or automated workflow can quote a fee and show where it came from.
Machine-readable JSON
Every calculation returns consistent fields such as fee_id, fee_name, municipality, province, amount_cad, currency, inputs, exclusions and is_total_project_fee.
Official source links
Each fee rule links to the municipality's own published schedule through source_url, with source_effective_from and source_verified_on dates. Independent service; not affiliated with any government.
Predictable responses
Results carry ok and status flags and always state is_total_project_fee: false. Missing or invalid inputs return HTTP 400, unknown fee IDs return 404, and unsupported cities stay unknown, never $0.
Simple HTTP API
Free public endpoints during the pilot: GET /api/v1/fees, GET /api/v1/calculate and POST /api/v1/bulk (up to 25 lookups). Prepaid access uses GET /api/v1/paid/calculate with a private API key.
CA$5 for 100 API lookups
A one-time prepaid pack. No subscription. 100 successful authenticated lookups on a private API key; invalid requests don't use credits. Payment is processed securely by Stripe.
Get 100 lookups for CA$5 →OpenAPI and llms.txt
An OpenAPI 3.1 specification, a plain-text llms.txt with usage guardrails, and JSON function-calling tool definitions are published on this site for developers to wire into their own agents.
Read llms.txt ↗One fee at a time. No false totals.
Fee categories vary by municipality. Pick the exact published fee component you need.
Select a fee
Comparison tray
Collect up to six independent fee components. These are not a combined permit quote, and different scopes are not directly comparable.
Canada is big. Our claims stay specific.
Search the municipalities currently included. Entries with no calculated fee link directly to available official guidance.
Built for the machine customer.
Structured inputs, source URLs and honest uncertainty. Read the public catalog and query the live source-linked JSON API. New rates are not guaranteed to update automatically.
Portable public catalog
A readable JSON snapshot with jurisdictions, fee IDs, accepted inputs, scope and source URLs.
Download catalog.json ↗API schema
OpenAPI description and request examples so agents know exactly what the tool can and cannot calculate.
Download OpenAPI ↗Agent notes (llms.txt)
Plain-text model instructions, supported endpoints and guardrails for incomplete source coverage.
Read llms.txt ↗Serverless JSON API
The public API remains free during the pilot. Prepaid authenticated access (GET /api/v1/paid/calculate) is available through Agent credits: CA$5 for 100 API lookups, no subscription. Check the API test page to confirm that the API responds.
GET /api/v1/catalogGET /api/v1/jurisdictionsGET /api/v1/feesGET /api/v1/calculatePOST /api/v1/bulkGET /api/v1/paid/calculateAn answer isn't useful if nobody can trust where it came from.
Every published amount is a named fee component, linked to the municipality that published it. When the model can't determine a final cost, it says so.
Explore a Canadian fee ↗