Intake API Documentation
This documentation describes the verified rate data intake API for government and utility partners.
Base URL
All endpoints are relative to:
{PUBLIC_API_BASE_URL}/api/v1/intake Authentication
Use a bearer token issued to your organization. Keys can be rotated on request.
Authorization: Bearer <api_key> Optional request signing (HMAC)
If enabled, include the following headers:
X-CHC-Timestamp: 1700000000
X-CHC-Signature: v1=<hex> Signature base string:
timestamp.body Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /submissions | Submit a new data payload |
| GET | /submissions | List submissions |
| GET | /submissions/{id} | Fetch submission details |
| GET | /schemas/{type} | Retrieve a schema definition |
Warning
Do not include personal information in submissions.
Submission envelope
Requests to POST /submissions must follow this envelope.
When a rate basis is percent, use decimals (0.01 = 1%).
{
"submission_type": "property_tax|land_transfer_tax|electricity_rates",
"jurisdiction_key": "on-toronto",
"effective_date": "YYYY-MM-DD",
"payload": { ... },
"sources": ["https://..."],
"supporting_docs": [{ "name": "Rate table PDF", "url": "https://..." }]
} Examples
Property tax submission
curl -X POST "{PUBLIC_API_BASE_URL}/api/v1/intake/submissions" \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{
"submission_type": "property_tax",
"jurisdiction_key": "on-hamilton",
"effective_date": "2025-01-01",
"payload": {
"tax_year": 2025,
"property_class": "residential",
"scenario": {
"scenario_key": "urban_ft_fire",
"scenario_label": "Urban (Full-Time Fire)",
"coverage": "complete_total",
"requires_zone_selector": false,
"zone_selector_label": null,
"zone_selector_options": null
},
"components": [
{
"component_key": "municipal_general",
"component_label": "Municipal",
"authority_type": "municipal",
"published_rate_value": 0.0105,
"published_rate_basis": "per_dollar"
},
{
"component_key": "education",
"component_label": "Education",
"authority_type": "provincial_education",
"published_rate_value": 0.003225297,
"published_rate_basis": "per_dollar"
}
]
},
"sources": ["https://example.com/source.pdf"],
"supporting_docs": [{ "name": "Rate table PDF", "url": "https://example.com/source.pdf" }]
}' Land transfer tax submission
curl -X POST "{PUBLIC_API_BASE_URL}/api/v1/intake/submissions" \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{
"submission_type": "land_transfer_tax",
"jurisdiction_key": "on",
"effective_date": "2026-01-01",
"payload": {
"province_code": "ON",
"tax_name": "Land Transfer Tax",
"brackets": [
{"up_to": 55000, "rate_percent": 0.005},
{"up_to": 250000, "rate_percent": 0.01},
{"up_to": 400000, "rate_percent": 0.015},
{"up_to": 2000000, "rate_percent": 0.02},
{"greater_than": 2000000, "rate_percent": 0.025}
],
"rebates": [
{"type": "first_time_buyer", "max_amount_cad": 4000, "phase_out": null}
]
},
"sources": ["https://example.gov/ltt"],
"supporting_docs": [{ "name": "Tax schedule", "url": "https://example.gov/ltt" }]
}' Schemas
Schemas are available at {PUBLIC_API_BASE_URL}/api/v1/intake/schemas/{type}.
See schema reference pages for
details and examples.
Last updated: February 9, 2026