Documentation · v0.1.0
Endpoint reference
Base URL https://api.hillbase.com. Every response is an envelope with coverage. Examples are real responses captured from the API, shortened for display.
Addresses
POST /v1/addresses/resolve
Resolve a structured Canadian address to a point
| Parameter | In | Type | Notes |
|---|---|---|---|
line1required | body | string | max 300 chars |
line2 | body | string | default "" |
cityrequired | body | string | max 160 chars |
regionrequired | body | string | max 80 chars |
postal_code | body | string | default "" |
country | body | string | default "CA" |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"point": {
"lat": 49.1416582,
"lng": -122.8795092
},
"geocode": {
"provider": "bc-address-geocoder",
"score": 100,
"precision": "civic_number",
"address": {
"line1": "7633 124 St",
"line2": null,
"city": "Surrey",
"region": "BC",
"postal_code": null,
"country": "CA"
}
}
},
"coverage": {
"capability": "address_resolution",
"status": "supported",
"outcome": "resolved",
"geography": "BC",
"period": null,
"message": "Live result from the Province of BC Address Geocoder; hillbase stores nothing."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:10.095247Z"
}POST /v1/address/profile
Everything hillbase knows around one address or point
Composes school assignments, nearby schools, regional crime statistics and nearby places. Each section carries its own coverage and provenance. Give an address (its locality feeds the crime lookup) or a point plus optional region/locality.
| Parameter | In | Type | Notes |
|---|---|---|---|
address | body | AddressInput | – |
point | body | Point | – |
region | body | string | – |
locality | body | string | – |
amenities_radius_km | body | number | default 1 |
schools_radius_km | body | number | default 2 |
include_civic_numbers | body | boolean | default false |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"point": {
"lat": 49.1416582,
"lng": -122.8795092
},
"geocode": null,
"sections": {
"school_assignments": {
"data": [
{
"school": {
"id": "sch_g2nriqq5vei4",
"name": "Strawberry Hill Elementary",
"school_type": "elementary",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
}
},
"catchment": {
"id": "cat_fthhjbggwfj6",
"level": "elementary",
"program": "Regular",
"school_year": "2026-2027",
"grade_start": null,
"grade_end": null,
"boundary_version": "62eb312788d0d5b34c433177cd312678172ddf2a0408677a521aef9b8d9247e2",
"verification_status": "unverified"
},
"match_method": "official_boundary",
"confidence": "high",
"source": {
"id": "ca-bc-surrey-school-catchments",
"record_id": null,
"updated_at": null,
"observed_at": "2026-10-08T23:37:04.966500Z"
}
},
{
"school": {
"id": "sch_xw46knkm4azw",
"name": "Princess Margaret Secondary",
"school_type": "secondary",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
}
},
"catchment": {
"id": "cat_ttoatnlwnxst",
"level": "secondary",
"program": "Regular",
"school_year": "2026-2027",
"grade_start": null,
…GET /v1/addresses/nearby
Civic numbers around a point (national address register, up to 300 m)
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | 41.5–84 |
lngrequired | query | number | -142–-52 |
radius_m | query | number | 0–300 · default 250 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"civic_number": "7633",
"street": "124 ST",
"municipality": "Surrey",
"lat": 49.14166,
"lng": -122.87951
},
{
"civic_number": "7638",
"street": "124 ST",
"municipality": "Surrey",
"lat": 49.141606,
"lng": -122.8791
},
{
"civic_number": "7630",
"street": "124 ST",
"municipality": "Surrey",
"lat": 49.141469,
"lng": -122.878866
}
],
"total": 154
},
"coverage": {
"capability": "address_resolution",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:40.872801Z"
}Schools
GET /v1/schools
Search the school directory
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | Name or city substring · max 100 chars |
region | query | string | Province/territory code or name |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_km | query | number | 0–5 · default 5 |
limit | query | integer | 1–20 · default 20 |
offset | query | integer | 0–10000 · default 0 |
has_catchment | query | boolean | Filter by an accessible current catchment |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "sch_g2nriqq5vei4",
"kind": "school",
"name": "Strawberry Hill Elementary",
"country": "CA",
"region": "BC",
"city": "Surrey",
"school_type": "elementary",
"education_level": "Elementary",
"status": "active",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
},
"location": {
"lat": 49.1416582,
"lng": -122.8795092,
"source": "directory"
},
"address": {
"line1": "7633 124 St",
"line2": null,
"city": "Surrey",
"region": "BC",
"postal_code": "V3W8N2",
"country": "CA"
},
"grades": null,
"website": null,
"school_year": "2025-2026",
"distance": {
"km": 0,
"method": "straight_line"
},
"aliases": [],
"source": {
"id": "ca-bc-school-directory",
"record_id": "03636109",
"updated_at": null,
"observed_at": "2026-10-11T07:09:32.756977Z"
},
"programs": [
{
"source_as_of": null,
"code": "core_french",
"source_label": "Core French",
"source_id": "ca-bc-school-directory",
"source_ids": [
"ca-bc-school-directory",
"ca-bc-school-programs"
],
"school_year": "2025-2026"
},
{
…GET /v1/schools/{school_id}
One school with aliases and results
| Parameter | In | Type | Notes |
|---|---|---|---|
school_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "sch_g2nriqq5vei4",
"kind": "school",
"name": "Strawberry Hill Elementary",
"country": "CA",
"region": "BC",
"city": "Surrey",
"school_type": "elementary",
"education_level": "Elementary",
"status": "active",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
},
"location": {
"lat": 49.1416582,
"lng": -122.8795092,
"source": "directory"
},
"address": {
"line1": "7633 124 St",
"line2": null,
"city": "Surrey",
"region": "BC",
"postal_code": "V3W8N2",
"country": "CA"
},
"grades": null,
"website": null,
"school_year": "2025-2026",
"distance": null,
"aliases": [
{
"namespace": "src:bc-schools-k12-directory",
"external_id": "03636109"
},
{
"namespace": "src:bc-surrey-sd36",
"external_id": "7FEDD7E1-4DD7-4086-9AD3-A1B124610F8F"
},
{
"namespace": "src:ca-bc-school-directory",
"external_id": "03636109"
}
],
"source": {
"id": "ca-bc-school-directory",
"record_id": "03636109",
"updated_at": null,
"observed_at": "2026-10-11T07:09:32.756977Z"
},
"programs": [
{
"source_as_of": null,
"code": "core_french",
"source_label": "Core French",
…GET /v1/schools/{school_id}/catchment
Streets, neighbourhoods and feeders for a school's catchments
| Parameter | In | Type | Notes |
|---|---|---|---|
school_idrequired | path | string | – |
school_year | query | string | max 30 chars |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"school_id": "sch_g2nriqq5vei4",
"school_name": "Strawberry Hill Elementary",
"catchments": [
{
"id": "cat_fthhjbggwfj6",
"level": "elementary",
"grade_start": null,
"grade_end": null,
"program": "Regular",
"school_year": "2026-2027",
"source_id": "ca-bc-surrey-school-catchments",
"address_status": "supported",
"neighbourhood_status": "supported",
"civic_address_count": 833,
"streets": [
{
"municipality": "Surrey",
"street_name": "123",
"street_type": "ST",
"street_direction": null,
"civic_min": 7273,
"civic_max": 7984,
"side": "both",
"civic_address_count": 95,
"unnumbered_address_count": 0,
"part_of_street_only": true
},
{
"municipality": "Surrey",
"street_name": "123A",
"street_type": "ST",
"street_direction": null,
"civic_min": 7517,
"civic_max": 7990,
"side": "both",
"civic_address_count": 60,
"unnumbered_address_count": 0,
"part_of_street_only": true
},
{
"municipality": "Surrey",
"street_name": "124",
"street_type": "ST",
"street_direction": null,
"civic_min": 7234,
"civic_max": 7992,
"side": "both",
"civic_address_count": 101,
"unnumbered_address_count": 0,
"part_of_street_only": true
}
],
"neighbourhoods": [
{
"name": "NEWTON",
"civic_address_count": 833,
"address_share": 1,
…GET /v1/schools/{school_id}/profile
Official school website sections
| Parameter | In | Type | Notes |
|---|---|---|---|
school_idrequired | path | string | – |
category | query | string | School profile category |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"school_id": "sch_2355kiqchie6",
"website": null,
"sections": {}
},
"coverage": {
"capability": "school_profiles",
"status": "unavailable",
"outcome": "no_match",
"geography": "MB",
"period": null,
"message": null
},
"quality": {
"basis": "published",
"effective_date": null,
"last_checked_at": null,
"limitations": [
{
"code": "absence_not_proof",
"message": "No matching record does not prove that none exists."
}
]
},
"provenance": [
{
"source_id": "ca-mb-school-directory",
"source_updated_at": null,
"observed_at": null,
"snapshot": null
}
],
"warnings": [],
"retrieved_at": "2026-10-13T23:40:21.405611Z"
}POST /v1/school-assignments/resolve
Designated schools for an address or point
Give either a structured address (geocoded live by the BC Address Geocoder; BC only) or a point. An empty assignment list with coverage.outcome=no_match is a valid answer; hillbase never infers a school. Boundary geometry is not returned.
| Parameter | In | Type | Notes |
|---|---|---|---|
address | body | AddressInput | – |
point | body | Point | – |
grade | body | string | K or 1–12; boundaries without a grade band are excluded |
program | body | string | Exact program name, e.g. Regular |
school_year | body | string | YYYY-YYYY |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"point": {
"lat": 49.1416582,
"lng": -122.8795092
},
"geocode": null,
"assignments": [
{
"school": {
"id": "sch_g2nriqq5vei4",
"name": "Strawberry Hill Elementary",
"school_type": "elementary",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
}
},
"catchment": {
"id": "cat_fthhjbggwfj6",
"level": "elementary",
"program": "Regular",
"school_year": "2026-2027",
"grade_start": null,
"grade_end": null,
"boundary_version": "62eb312788d0d5b34c433177cd312678172ddf2a0408677a521aef9b8d9247e2",
"verification_status": "unverified"
},
"match_method": "official_boundary",
"confidence": "high",
"source": {
"id": "ca-bc-surrey-school-catchments",
"record_id": null,
"updated_at": null,
"observed_at": "2026-10-08T23:37:04.966500Z"
}
},
{
"school": {
"id": "sch_xw46knkm4azw",
"name": "Princess Margaret Secondary",
"school_type": "secondary",
"authority": {
"id": "aut_3usld4ldzlrt",
"name": "Surrey",
"authority_type": "school_district",
"external_id": "BC36"
}
},
"catchment": {
"id": "cat_ttoatnlwnxst",
"level": "secondary",
"program": "Regular",
"school_year": "2026-2027",
"grade_start": null,
"grade_end": null,
"boundary_version": "d43d656d971288cdbb153345c28c4a057d4dbe349cb51a990dc58b676856fdb9",
…Places & transit
GET /v1/amenities
Nearby places around a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–5 · default 1 |
category | query | string | max 40 chars |
limit | query | integer | 1–20 · default 10 |
per_category_limit | query | integer | 1–20 · default 5 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "poi_fzwv2jpapx3z",
"kind": "place",
"name": "TransLink stop 5876",
"category": "transit",
"region": "BC",
"location": {
"lat": 49.141329,
"lng": -122.879133
},
"distance": {
"km": 0.05,
"method": "straight_line"
},
"source": {
"id": "poi:cpndb:translink-vancouver",
"record_id": "translink_vancouver:5876",
"updated_at": null,
"observed_at": null
}
},
{
"id": "poi_yazmhauygyuj",
"kind": "place",
"name": "50F - Detention Pond",
"category": "park",
"region": "BC",
"location": {
"lat": 49.14015697619214,
"lng": -122.87864623711127
},
"distance": {
"km": 0.18,
"method": "straight_line"
},
"source": {
"id": "poi:odsrf:government-of-british-columbia-0e75dfaa",
"record_id": "10399cbb3ce8f47a906b34c370a29d48",
"updated_at": null,
"observed_at": null
}
},
{
"id": "poi_te5y2t4u3a73",
"kind": "place",
"name": "Strawberry Hill Park - Volleyball Courts",
"category": "recreation",
"region": "BC",
"location": {
"lat": 49.1428355735,
"lng": -122.8840353905
},
"distance": {
"km": 0.35,
"method": "straight_line"
},
…GET /v1/facilities
Facilities around a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–10 · default 1 |
type | query | string | – |
newcomer_services | query | boolean | – |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "poi_dumm74fumsa2",
"kind": "facility",
"facility_type": "school",
"subtype": "standard",
"name": "Strawberry Hill Elementary",
"capacity": null,
"operator": null,
"address": {
"id": "addr_7jcgjg6o3rce",
"parcel_id": null,
"line1": "7633 124 ST, SURREY",
"street_number": "7633",
"street_name": "124 ST, SURREY",
"street_type": null,
"street_direction": null,
"unit": null,
"city": "Surrey",
"region": "BC",
"postal_code": null,
"country": "CA",
"parsed": true,
"text": "7633 124 St, Surrey"
},
"location": {
"lat": 49.141658782958984,
"lng": -122.87950134277344
},
"distance": {
"km": 0.001,
"method": "straight_line"
},
"quality": {
"sites": [],
"vacancy": null,
"record_hash": "b6a5170c23424214c496b4ad3689ec5fb18b2a9141a9d5deba48a3f2ad96922e",
"source_type": "STANDARD",
"name_missing": false,
"missing_point": false,
"address_parsed": true,
"region_missing": false,
"publisher_point": true,
"vacancy_updated_at": null,
"source_facility_type": null,
"privacy_redacted_name": false
},
"source": {
"id": "ca-statcan-odef",
"record_id": "41c6f3dac7a732a9f0f9",
"updated_at": null,
"observed_at": "2026-10-07T22:23:36.974058Z"
}
},
{
"id": "poi_425b65rqtvbe",
"kind": "facility",
…GET /v1/parks
Nearest park polygons and amenities
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–20 · default 2 |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "poi_fdnmxqrx6fpw",
"name": "Strawberry Hill Park",
"park_type": "neighbourhood",
"source_park_type": "Neighbourhood",
"area_m2": 39674.81890743562,
"amenities": [],
"distance": {
"km": 0.05954927798,
"method": "straight_line"
},
"quality": {
"site_count": 1,
"record_hash": "f9006db2bd1c695086292429aec9a7c7872df69bbff4c3d8ac127b923f5c2133",
"source_labels": {
"AMENITY_CLASS": "Active",
"PARK_CLASSIFICATION": "Neighbourhood"
},
"geometry_repaired": false,
"unmapped_park_type": false
},
"source": {
"id": "ca-bc-surrey-parks",
"record_id": "1001487074",
"updated_at": "2026-10-01T22:08:00.314000Z",
"observed_at": "2026-10-07T06:11:03.662509Z"
}
},
{
"id": "poi_svktgyeiseie",
"name": "50F - Detention Pond",
"park_type": "conservation",
"source_park_type": "Biodiversity Preserve and Habitat Corridors",
"area_m2": 467.4826174019836,
"amenities": [],
"distance": {
"km": 0.16580509245,
"method": "straight_line"
},
"quality": {
"site_count": 1,
"record_hash": "b6300c71281342e70b06b7ce7d5883e7f1ab2f90825f7fd98abdf2955ce50164",
"source_labels": {
"AMENITY_CLASS": "Passive",
"PARK_CLASSIFICATION": "Biodiversity Preserve and Habitat Corridors"
},
"geometry_repaired": false,
"unmapped_park_type": false
},
"source": {
"id": "ca-bc-surrey-parks",
"record_id": "1001486653",
"updated_at": "2026-10-01T22:08:00.314000Z",
"observed_at": "2026-10-07T06:11:03.662509Z"
}
},
…GET /v1/transit
Transit stops around a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–1 · default 0.5 |
limit | query | integer | 1–100 · default 50 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "tst_yap7hudxduwr",
"agency": "ca-bc-translink-transit:translink:TL",
"stop_id": "5876",
"stop_code": "55821",
"name": "Southbound 124 St @ 76 Ave",
"location": {
"lat": 49.141329,
"lng": -122.879133
},
"wheelchair_boarding": 1,
"location_type": 0,
"parent_station": null,
"distance": {
"km": 0.046,
"method": "straight_line"
},
"routes": [
{
"route_id": "6710",
"short_name": "329",
"long_name": "Surrey Central Station/Scottsdale",
"route_type": 3,
"weekday_trip_count": 9
}
]
},
{
"id": "tst_hruy2h4nid5g",
"agency": "ca-bc-translink-transit:translink:TL",
"stop_id": "5883",
"stop_code": "55828",
"name": "Northbound 124 St @ 76 Ave",
"location": {
"lat": 49.141345,
"lng": -122.878962
},
"wheelchair_boarding": 1,
"location_type": 0,
"parent_station": null,
"distance": {
"km": 0.053,
"method": "straight_line"
},
"routes": [
{
"route_id": "6710",
"short_name": "329",
"long_name": "Surrey Central Station/Scottsdale",
"route_type": 3,
"weekday_trip_count": 10
}
]
},
{
"id": "tst_mugzo4lqjdyl",
…Property & land
GET /v1/permits
Building permits around a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–2 · default 0.5 |
since | query | string (date) | Only permits issued on or after this date |
work_type | query | string | Canonical code, e.g. new_building · max 80 chars |
status | query | string | Canonical status: applied, issued, closed, cancelled, unknown; default all |
kind | query | string | Permit kind: building or development; default all |
limit | query | integer | 1–50 · default 20 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "pmt_qqrqiey3g33r",
"kind": "permit",
"jurisdiction": "ca/bc/vancouver",
"permit_number": "BP-2021-05588",
"permit_kind": "building",
"status": "issued",
"source_status": null,
"work_type": "addition_alteration",
"source_work_type": "Addition / Alteration",
"project_category": null,
"source_project_category": null,
"issue_date": "2022-03-30",
"created_date": "2021-10-26",
"elapsed_days": 155,
"project_value": {
"amount": 1400000,
"currency": "CAD",
"reported": true
},
"land_uses": [
"service"
],
"source_land_uses": [
"Service Uses"
],
"specific_uses": [
{
"code": "restaurant_class_1",
"label": "Restaurant - Class 1"
}
],
"dwelling_type": null,
"dwelling_units": null,
"description": "High Density Housing / Commercial - Addition / Alteration - First tenant improvement to the new Jollibee on the second floor in this existing 7 storey with 2 levels of underground parking mixed use building. The scope of work includes class 1 cooking operations. Total occupant load is 76(interior 48+ staff 4 + outdoor seating 24). Scope of Work includes construction of new interior partitions, installation of new casework, new equipment, new mechanical, plumbing, electrical and light fixtures, and new floor, wall and ceiling finishes. This permit has been reviewed under the requirements of the VBBL #12511 (2019)",
"contractor_name": null,
"address": {
"id": "addr_eklqc6mzng5k",
"parcel_id": "prc_h4vnxthdoduh",
"line1": "2549 CAMBIE ST",
"street_number": "2549",
"street_name": "CAMBIE",
"street_type": "ST",
"street_direction": null,
"unit": null,
"city": "Vancouver",
"region": "BC",
"postal_code": "V5Z 3Y6",
"country": "CA",
"parsed": true,
"text": "2549 CAMBIE STREET, Vancouver, BC V5Z 3Y6"
},
"neighbourhood": "Fairview",
"location": {
"lat": 49.2627739,
"lng": -123.1150152
…GET /v1/permits/stats
Permit activity statistics
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–5 · default 1 |
since | query | string (date) | – |
until | query | string (date) | – |
work_type | query | string | max 80 chars |
status | query | string | Canonical status: applied, issued, closed, cancelled, unknown; default all |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"radius_km": 1,
"total": 0,
"by_year": [],
"by_work_type": [],
"by_status": [],
"by_jurisdiction": [],
"value": {
"reported_count": 0,
"sum_cad": null,
"median_cad": null
}
},
"coverage": {
"capability": "building_permits",
"status": "supported",
"outcome": "no_match",
"geography": "ca/bc/vancouver",
"period": null,
"message": null
},
"quality": {
"basis": "derived",
"effective_date": null,
"last_checked_at": null,
"limitations": [
{
"code": "absence_not_proof",
"message": "No matching record does not prove that none exists."
}
]
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:54:49.313587Z"
}GET /v1/permits/{permit_id}
One permit by hillbase id or permit number
| Parameter | In | Type | Notes |
|---|---|---|---|
permit_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "pmt_qqrqiey3g33r",
"kind": "permit",
"jurisdiction": "ca/bc/vancouver",
"permit_number": "BP-2021-05588",
"permit_kind": "building",
"status": "issued",
"source_status": null,
"work_type": "addition_alteration",
"source_work_type": "Addition / Alteration",
"project_category": null,
"source_project_category": null,
"issue_date": "2022-03-30",
"created_date": "2021-10-26",
"elapsed_days": 155,
"project_value": {
"amount": 1400000,
"currency": "CAD",
"reported": true
},
"land_uses": [
"service"
],
"source_land_uses": [
"Service Uses"
],
"specific_uses": [
{
"code": "restaurant_class_1",
"label": "Restaurant - Class 1"
}
],
"dwelling_type": null,
"dwelling_units": null,
"description": "High Density Housing / Commercial - Addition / Alteration - First tenant improvement to the new Jollibee on the second floor in this existing 7 storey with 2 levels of underground parking mixed use building. The scope of work includes class 1 cooking operations. Total occupant load is 76(interior 48+ staff 4 + outdoor seating 24). Scope of Work includes construction of new interior partitions, installation of new casework, new equipment, new mechanical, plumbing, electrical and light fixtures, and new floor, wall and ceiling finishes. This permit has been reviewed under the requirements of the VBBL #12511 (2019)",
"contractor_name": null,
"address": {
"id": "addr_eklqc6mzng5k",
"parcel_id": "prc_h4vnxthdoduh",
"line1": "2549 CAMBIE ST",
"street_number": "2549",
"street_name": "CAMBIE",
"street_type": "ST",
"street_direction": null,
"unit": null,
"city": "Vancouver",
"region": "BC",
"postal_code": "V5Z 3Y6",
"country": "CA",
"parsed": true,
"text": "2549 CAMBIE STREET, Vancouver, BC V5Z 3Y6"
},
"neighbourhood": "Fairview",
"location": {
"lat": 49.2627739,
"lng": -123.1150152
},
"distance": null,
…GET /v1/property-tax/estimate
Estimated annual property tax
Use a publisher assessment or supply assessed_value in CAD. Caller values take precedence; publisher_assessed_value is returned separately for comparison. With a caller value, assessment_year selects that year's schedule; when omitted, use the latest published rate year and return assessment_year as null. Only compatible complete component schedules apply. These are estimates, not tax bills.
| Parameter | In | Type | Notes |
|---|---|---|---|
pid | query | string | max 32 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
assessed_value | query | number | Caller-supplied assessed value in CAD. · ≥ 0 |
assessment_year | query | integer | Caller assessment year; omitted uses latest rates. · 1900–2200 |
property_class | query | string | Canonical property class; applies only with a caller assessed value. · max 80 chars · default "residential" |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"status": "supported",
"estimate": true,
"property_id": null,
"jurisdiction": "ca/bc/vancouver",
"property_class": "residential",
"assessed_value": 1000000,
"currency": "CAD",
"annual_amount": 3362.66,
"assessment_year": 2026,
"rate_year": 2026,
"assessment_basis": "annual_assessment_roll",
"components": [
{
"component": "hospital",
"source_component": "Hospital",
"rate": 0,
"denominator": 1000,
"annual_amount": 0,
"source_id": "ca-bc-property-tax-rates",
"source_record_id": "2026:893:4"
},
{
"component": "municipal",
"source_component": "Municipal",
"rate": 1.93406,
"denominator": 1000,
"annual_amount": 1934.06,
"source_id": "ca-bc-property-tax-rates",
"source_record_id": "2026:891:4"
},
{
"component": "other_authorities",
"source_component": "Other",
"rate": 0.3969,
"denominator": 1000,
"annual_amount": 396.9,
"source_id": "ca-bc-property-tax-rates",
"source_record_id": "2026:895:4"
}
],
"exclusions": [
"home_owner_grants",
"local_improvement_levies",
"utility_charges"
],
"assumptions": [
"Residential property class; no class-specific exemptions.",
"The publisher combines some authorities in its Other component.",
"Caller-supplied assessed value takes precedence over publisher assessments."
],
"reason": null,
"assessed_value_source": "caller",
"publisher_assessed_value": null
},
"coverage": {
"capability": "property_tax",
"status": "supported",
…GET /v1/property-values
Assessment values by PID or nearby point
| Parameter | In | Type | Notes |
|---|---|---|---|
pid | query | string | max 32 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"property_tax": {
"status": "unavailable",
"estimate": true,
"property_id": "prop_45l2itmp5rx7",
"jurisdiction": "CA/BC/Vancouver",
"property_class": "residential",
"assessed_value": 2118000,
"currency": "CAD",
"annual_amount": null,
"assessment_year": 2026,
"rate_year": null,
"assessment_basis": null,
"components": [],
"exclusions": [
"home_owner_grants",
"local_improvement_levies",
"utility_charges"
],
"assumptions": [
"Residential property class; no class-specific exemptions."
],
"reason": "Official rate schedules are unavailable."
},
"id": "prop_45l2itmp5rx7",
"jurisdiction": "CA/BC/Vancouver",
"roll_year": 2026,
"pid": "013-838-024",
"folio": "638062580000",
"address": {
"id": "addr_45l2itmp5rx7",
"parcel_id": null,
"line1": "2850 3RD AVE W",
"street_number": "2850",
"street_name": "3RD",
"street_type": "AVE",
"street_direction": "W",
"unit": null,
"city": "Vancouver",
"region": "BC",
"postal_code": "V6K 1M7",
"country": "CA",
"parsed": true,
"text": "2850 3RD AVE W"
},
"address_text": "2850 3RD AVE W",
"land_value": {
"amount": 1882000,
"currency": "CAD",
"reported": true
},
"improvement_value": {
"amount": 236000,
"currency": "CAD",
"reported": true
},
…GET /v1/parcels
ParcelMap parcel at a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "prc_2252xfwr3esa",
"kind": "parcel",
"pid": "013-191-578",
"plan_number": "VAP3082",
"parcel_class": "Subdivision",
"area_m2": 165.5895,
"municipality": "Vancouver, City of",
"source": {
"id": "ca-bc-parcelmap-parcels",
"record_id": "2891138",
"updated_at": null,
"observed_at": "2026-10-07T02:29:56.798248Z"
}
},
{
"id": "prc_6otavuk2n6gn",
"kind": "parcel",
"pid": null,
"plan_number": null,
"parcel_class": null,
"area_m2": 165.58506766799837,
"municipality": "Vancouver",
"source": {
"id": "ca-bc-vancouver-parcels",
"record_id": "bc7e77d3cd0f5fad3e67508e2c1b1ea511fbb1e6",
"updated_at": null,
"observed_at": "2026-10-10T16:01:03.624824Z"
}
}
],
"total": 2
},
"coverage": {
"capability": "parcels",
"status": "supported",
"outcome": "resolved",
"geography": "point",
"period": null,
"message": "Loaded parcel polygons are queried by ST_Covers. A point can match zero, one, or multiple fabric polygons."
},
"provenance": [
{
"source_id": "ca-bc-parcelmap-parcels",
"source_updated_at": null,
"observed_at": null,
"snapshot": "c42a5dfc11b96a44fbced394b926916eb1992453a4260786638986512554f605"
},
{
"source_id": "ca-bc-vancouver-parcels",
"source_updated_at": null,
"observed_at": null,
"snapshot": "235cab59522a8c27aa72fe4fed18a8e98c1020964491316ee8049a633fbb8de8"
}
],
"warnings": [],
…GET /v1/parcels/{parcel_id}
One parcel by hillbase ID or PID
| Parameter | In | Type | Notes |
|---|---|---|---|
parcel_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "prc_2252xfwr3esa",
"kind": "parcel",
"pid": "013-191-578",
"plan_number": "VAP3082",
"parcel_class": "Subdivision",
"area_m2": 165.5895,
"municipality": "Vancouver, City of",
"source": {
"id": "ca-bc-parcelmap-parcels",
"record_id": "2891138",
"updated_at": null,
"observed_at": "2026-10-07T02:29:56.798248Z"
}
},
"coverage": {
"capability": "parcels",
"status": "supported",
"outcome": "resolved",
"geography": "CA/BC/Metro Vancouver+Fraser Valley",
"period": null,
"message": null
},
"provenance": [
{
"source_id": "ca-bc-parcelmap-parcels",
"source_updated_at": null,
"observed_at": null,
"snapshot": "c42a5dfc11b96a44fbced394b926916eb1992453a4260786638986512554f605"
}
],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:48.107661Z"
}GET /v1/zoning
Zoning designation at a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"zone_code": "C-3A",
"zone_description": "Commercial",
"zone_category": "commercial",
"source_category": "C",
"bylaw_ref": null,
"jurisdiction": "ca/bc/vancouver",
"source": {
"id": "ca-bc-vancouver-zoning",
"record_id": "494688",
"updated_at": "2026-06-29T00:00:00Z",
"observed_at": "2026-10-07T00:49:08.110449Z"
}
}
]
},
"coverage": {
"capability": "zoning",
"status": "supported",
"outcome": "resolved",
"geography": "ca/bc/vancouver",
"period": null,
"message": null
},
"provenance": [
{
"source_id": "ca-bc-vancouver-zoning",
"source_updated_at": null,
"observed_at": null,
"snapshot": "a9b18bbb280406f3dacb57efa738ada97ec6d825578a3583d5904c6abedb7065"
}
],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:41.646801Z"
}Safety & environment
GET /v1/crime
Annual crime statistics for a locality
| Parameter | In | Type | Notes |
|---|---|---|---|
region | query | string | Province code or name, e.g. BC |
locality | query | string | Municipality name, e.g. Surrey · max 120 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"geography": {
"id": "crg_4vxobk7btcch",
"geography_type": "policing_cma",
"code": "933",
"name": "Vancouver",
"boundary_label": "Vancouver policing-based Census metropolitan area; this boundary may not match census or municipal boundaries.",
"quality": {}
},
"years": [
{
"reference_year": 2025,
"metrics": [
{
"metric": "crime_rate",
"unit": "per_100k",
"value": 6289.97,
"source_table": "35-10-0177-01",
"release_label": "2026-07-22T08:30",
"source_as_of": "2026-07-22"
},
{
"metric": "crime_severity_index",
"unit": "index",
"value": 83.51,
"source_table": "35-10-0026-01",
"release_label": "2026-07-22T08:30",
"source_as_of": "2026-07-22"
},
{
"metric": "non_violent_crime_severity_index",
"unit": "index",
"value": 85.35,
"source_table": "35-10-0026-01",
"release_label": "2026-07-22T08:30",
"source_as_of": "2026-07-22"
}
]
},
{
"reference_year": 2024,
"metrics": [
{
"metric": "crime_rate",
"unit": "per_100k",
"value": 6050.99,
"source_table": "35-10-0177-01",
"release_label": "2026-07-22T08:30",
"source_as_of": "2026-07-22"
},
{
"metric": "crime_severity_index",
"unit": "index",
"value": 82.29,
"source_table": "35-10-0026-01",
"release_label": "2026-07-22T08:30",
"source_as_of": "2026-07-22"
},
…GET /v1/crime/local
Monthly local crime aggregates
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
months | query | integer | 1–600 · default 24 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"months": 24,
"areas": [
{
"area_type": "neighbourhood",
"area_code": "Fairview",
"name": "Fairview",
"source_id": "ca-bc-vpd-crime",
"first_month": "2024-11-01",
"last_month": "2026-10-01",
"available_first_month": "2003-01-01",
"available_last_month": "2026-10-01",
"offences": [
{
"offence_type": "break_enter_business",
"source_offence_type": "Break and Enter Commercial",
"count": 200,
"monthly": [
{
"period_month": "2024-11-01",
"count": 8
},
{
"period_month": "2024-12-01",
"count": 11
},
{
"period_month": "2025-01-01",
"count": 10
}
],
"trend": {
"method": "complete_month_year_over_year",
"period_month": "2026-09-01",
"comparison_month": "2025-09-01",
"count": 2,
"comparison_count": 10,
"change_percent": -80
}
},
{
"offence_type": "break_enter_residential_other",
"source_offence_type": "Break and Enter Residential/Other",
"count": 59,
"monthly": [
{
"period_month": "2024-11-01",
"count": 3
},
{
"period_month": "2024-12-01",
"count": 5
},
{
"period_month": "2025-01-01",
"count": 0
}
],
…GET /v1/hazards
Mapped hazards and constraints at a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"types": {
"flood": {
"status": "not_in_area",
"coverage_status": "supported",
"regions": [
"CA/BC/Surrey"
],
"source_ids": [
"ca-bc-surrey-floodplain"
],
"items": [],
"notes": [
"Mapped designation only; absence is not a safety assessment."
]
},
"alr": {
"status": "not_in_area",
"coverage_status": "supported",
"regions": [
"CA/BC"
],
"source_ids": [
"ca-bc-alc-alr"
],
"items": [],
"notes": [
"Mapped designation only; absence is not a safety assessment."
]
},
"liquefaction": {
"status": "in_area",
"coverage_status": "supported",
"regions": [
"CA/BC/Metro Vancouver mapped study area"
],
"source_ids": [
"ca-bc-metro-liquefaction",
"ca-bc-metro-liquefaction-2475",
"ca-bc-metro-liquefaction-475"
],
"items": [
{
"entity_id": "haz_dyp76gxgwium",
"hazard_type": "liquefaction",
"level": "very_low",
"source_class": "Very Low",
"label": "Metro Vancouver liquefaction susceptibility (Map 03)",
"quality": {
"class_known": true,
"geometry_repair_method": "method=linework",
"geometry_valid": false,
"raw_geom_valid_reason": "Nested shells[-122.838419327114 49.0599148849103]",
"source_crs": "EPSG:4326"
},
"source": {
"id": "ca-bc-metro-liquefaction",
"record_id": "10",
…Neighbourhood
GET /v1/census
Census 2021 demographics at a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
topic | query | string | max 120 chars |
full | query | boolean | default false |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"geo_code": "59152094",
"geo_level": "dissemination_area",
"name": "59152094",
"csd_code": "5915209",
"cma_code": "933",
"population": 793,
"dwellings": 210,
"area_km2": 0.182,
"demographics": {
"age_groups": [
{
"characteristic_id": 3,
"name": "Population percentage change, 2016 to 2021",
"total": null,
"men": null,
"women": null,
"rate": null
},
{
"characteristic_id": 8,
"name": "Total - Age groups of the population - 100% data",
"total": 795,
"men": 390,
"women": 405,
"rate": 100
},
{
"characteristic_id": 34,
"name": "Total - Distribution (%) of the population by broad age groups - 100% data",
"total": 100,
"men": 100,
"women": 100,
"rate": 100
}
],
"households": [
{
"characteristic_id": 50,
"name": "Total - Private households by household size - 100% data",
"total": 205,
"men": null,
"women": null,
"rate": 100
},
{
"characteristic_id": 56,
"name": "Number of persons in private households",
"total": 795,
"men": 390,
"women": 405,
"rate": 100
},
{
"characteristic_id": 57,
"name": "Average household size",
"total": 3.9,
"men": null,
…Businesses
GET /v1/businesses
Business licences around a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–2 · default 0.5 |
category | query | string | – |
licence_type | query | string | – |
status | query | string | – |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "biz_yn3j4k6pruct",
"kind": "business_licence",
"jurisdiction": "ca/bc/vancouver",
"licence_number": "25-309058",
"licence_revision": "00",
"business_name": "1547994 BC Ltd",
"trade_name": null,
"licence_type": "limited_service_food_establishment",
"source_licence_type": "Limited Service Food Establishment",
"licence_subtype": "Without Liquor",
"category": "food_drink",
"status": "expired",
"source_status": "Issued",
"issued_on": "2025-12-15",
"expires_on": "2025-12-31",
"address": {
"id": "addr_lsbvm36dp3gj",
"parcel_id": null,
"line1": "496 W BROADWAY #10",
"street_number": "496",
"street_name": "BROADWAY",
"street_type": null,
"street_direction": "W",
"unit": "10",
"city": "Vancouver",
"region": "BC",
"postal_code": "V5Y 1R4",
"country": "CA",
"parsed": true,
"text": "496 W BROADWAY #10"
},
"location": {
"lat": 49.2627734560174,
"lng": -123.11478218961
},
"distance": {
"km": 0.03,
"method": "straight_line"
},
"quality": {
"address_present": true,
"category_mapped": true
},
"source": {
"id": "ca-bc-vancouver-business-licences",
"record_id": "4899773",
"updated_at": null,
"observed_at": "2026-10-07T01:44:10.533549Z"
}
},
{
"id": "biz_7s2xke34s32v",
"kind": "business_licence",
"jurisdiction": "ca/bc/vancouver",
"licence_number": "25-120206",
…GET /v1/businesses/{business_id}
One business licence
| Parameter | In | Type | Notes |
|---|---|---|---|
business_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "biz_yn3j4k6pruct",
"kind": "business_licence",
"jurisdiction": "ca/bc/vancouver",
"licence_number": "25-309058",
"licence_revision": "00",
"business_name": "1547994 BC Ltd",
"trade_name": null,
"licence_type": "limited_service_food_establishment",
"source_licence_type": "Limited Service Food Establishment",
"licence_subtype": "Without Liquor",
"category": "food_drink",
"status": "expired",
"source_status": "Issued",
"issued_on": "2025-12-15",
"expires_on": "2025-12-31",
"address": {
"id": "addr_lsbvm36dp3gj",
"parcel_id": null,
"line1": "496 W BROADWAY #10",
"street_number": "496",
"street_name": "BROADWAY",
"street_type": null,
"street_direction": "W",
"unit": "10",
"city": "Vancouver",
"region": "BC",
"postal_code": "V5Y 1R4",
"country": "CA",
"parsed": true,
"text": "496 W BROADWAY #10"
},
"location": {
"lat": 49.2627734560174,
"lng": -123.11478218961
},
"distance": {
"km": 0,
"method": "straight_line"
},
"quality": {
"address_present": true,
"category_mapped": true
},
"source": {
"id": "ca-bc-vancouver-business-licences",
"record_id": "4899773",
"updated_at": null,
"observed_at": "2026-10-07T01:44:10.533549Z"
}
},
"coverage": {
"capability": "business_licences",
"status": "supported",
"outcome": "resolved",
"geography": "ca/bc/vancouver",
"period": null,
"message": null
…GET /v1/business-registrations
Search organizations
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
province | query | string | – |
region | query | string | – |
registry_number | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "biz_uk54curpfzib",
"kind": "business_registration",
"jurisdiction": "ca/federal",
"registry_number": "16036708",
"business_number_root": "731283552",
"legal_name": "12345 Driving School Inc.",
"other_names": [],
"entity_type": "corporation",
"source_entity_type": "Canada Business Corporations Act",
"status": "active",
"source_status": "Active",
"incorporated_on": null,
"dissolved_on": null,
"address_text": "303-3237 Bayview Ave",
"address_entity_id": null,
"municipality": "North York",
"province": "ON",
"postal_code": "M2K 0G1",
"quality": {
"country": "CA",
"address_parsed": true,
"unknown_status": false,
"source_province": "ON",
"civic_components": {
"unit": "303",
"street_name": "BAYVIEW",
"street_type": "AVE",
"street_number": "3237",
"street_direction": null
},
"unknown_province": false,
"unknown_entity_type": false,
"source_status_detail": null,
"dissolution_date_not_published": true,
"incorporation_date_not_published": true
},
"source": {
"id": "ca-corporations-canada-federal-corporations",
"record_id": "16036708",
"updated_at": null,
"observed_at": "2026-10-07T07:25:19.603330Z"
}
},
{
"id": "biz_qgr2a53tx6nl",
"kind": "business_registration",
"jurisdiction": "ca/federal",
"registry_number": "9135995",
"business_number_root": "822906392",
"legal_name": "141schools.org",
"other_names": [],
"entity_type": "nonprofit",
"source_entity_type": "Canada Not-for-profit Corporations Act",
"status": "dissolved",
"source_status": "Dissolved",
…Batches
POST /v1/batches
Submit up to 10000 customer address queries
Accepts {items: [...], sections: [...]} or a JSON array/CSV with ?sections=school_assignments,property_values. CSV columns: line1,city,region (optional postal_code,country), or lat,lng (optional region,locality). Free plan maximum: 100 items. Credits are prepaid at submission; results expire after 7 days.
| Parameter | In | Type | Notes |
|---|---|---|---|
sections | query | string | – |
Example response · HTTP 202
{
"schema_version": "hillbase.v0",
"data": {
"id": "bat_uu7tsnpefhou",
"status": "queued",
"total": 1,
"processed": 0,
"resolved": 0,
"no_match": 0,
"errors": 0,
"progress": 0,
"credits": 3,
"sections": [
"school_assignments",
"property_values"
],
"created_at": "2026-10-12T18:49:50.797639+00:00",
"expires_at": "2026-10-19T18:49:50.797639+00:00"
},
"coverage": {
"capability": "batch_queries",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:50.811464Z"
}GET /v1/batches/{job_id}
Get Batch
| Parameter | In | Type | Notes |
|---|---|---|---|
job_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "bat_uu7tsnpefhou",
"status": "completed",
"total": 1,
"processed": 1,
"resolved": 1,
"no_match": 0,
"errors": 0,
"progress": 1,
"credits": 3,
"sections": [
"school_assignments",
"property_values"
],
"created_at": "2026-10-12T18:49:50.797639+00:00",
"expires_at": "2026-10-19T18:49:50.797639+00:00"
},
"coverage": {
"capability": "batch_queries",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.229096Z"
}DELETE /v1/batches/{job_id}
Cancel Batch
| Parameter | In | Type | Notes |
|---|---|---|---|
job_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "bat_uu7tsnpefhou",
"status": "completed",
"total": 1,
"processed": 1,
"resolved": 1,
"no_match": 0,
"errors": 0,
"progress": 1,
"credits": 3,
"sections": [
"school_assignments",
"property_values"
],
"created_at": "2026-10-12T18:49:50.797639+00:00",
"expires_at": "2026-10-19T18:49:50.797639+00:00"
},
"coverage": {
"capability": "batch_queries",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.270664Z"
}GET /v1/batches/{job_id}/results
Batch Results
| Parameter | In | Type | Notes |
|---|---|---|---|
job_idrequired | path | string | – |
format | query | "jsonl" | "csv" | default "jsonl" |
offset | query | integer | ≥ 0 · default 0 |
limit | query | integer | 1–1000 · default 100 |
Example response · HTTP 200
"{\"index\": 0, \"data\": {\"point\": {\"lat\": 49.1416582, \"lng\": -122.8795092}, \"geocode\": null, \"sections\": {\"property_values\": {\"data\": {\"items\": [], \"total\": 0}, \"quality\": {\"basis\": \"published\", \"limitations\": [{\"code\": \"absence_not_proof\", \"message\": \"No matching record does not prove that none exists.\"}, {\"code\": \"assessment_not_market_value\", \"message\": \"An assessed value is not a sale price or current market value.\"}], \"effective_date\": null, \"last_checked_at\": null}, \"coverage\": {\"period\": null, \"status\": \"unavailable\", \"message\": \"Lake property values are unavailable.\", \"outcome\": \"no_match\", \"geography\": \"point\", \"capability\": \"property_values\"}, \"warnings\": [], \"provenance\": []}, \"school_assignments\": {\"data\": [{\"school\": {\"id\": \"sch_g2nriqq5vei4\", \"name\": \"Strawberry Hill Elementary\", \"authority\": {\"id\": \"aut_3usld4ldzlrt\", \"name\": \"Surrey\", \"external_id\": \"BC36\", \"authority_type\": \"school_district\"}, \"school_type\": \"elementary\"}, \"source\": {\"id\": \"ca-bc-surrey-school-catchments\", \"record_id\": null, \"updated_at\": null, \"observed_at\": \"2026-10-08T23:37:04.966500Z\"}, \"catchment\": {\"id\": \"cat_fthhjbggwfj6\", \"level\": \"elementary\", \"program\": \"Regular\", \"grade_end\": null, \"grade_start\": null, \"school_year\": \"2026-2027\", \"boundary_version\": \"62eb312788d0d5b34c433177cd312678172ddf2a0408677a521aef9b8d9247e2\", \"verification_status\": \"unverified\"}, \"confidence\": \"high\", \"match_method\": \"official_boundary\"}, {\"school\": {\"id\": \"sch_xw46knkm4azw\", \"name\": \"Princess Margaret Secondary\", \"authority\": {\"id\": \"aut_3usld4ldzlrt\", \"name\": \"Surrey\", \"external_id\": \"BC36\", \"authority_type\": \"school_district\"}, \"school_type\": \"secondary\"}, \"source\": {\"id\": \"ca-bc-surrey-school-catchments\", \"record_id\": null, \"updated_at\": null, \"observed_at\": \"2026-10-08T23:37:04.966500Z\"}, \"catchment\": {\"id\": \"cat_ttoatnlwnxst\", \"level\": \"secondary\", \"program\": \"Regular\", \"grade_end\": null, \"grade_start\": null, \"school_year\": \"2026-2027\", \"boundary_version\": \"d43d656d971288cdbb153345c28c4a057d4dbe349cb51a990dc58b676856fdb9\", \"verification_status\": \"unverified\"}, \"confidence\": \"high\", \"match_method\": \"official_boundary\"}], \"quality\": {\"basis\": \"derived\", \"limitations\": [{\"code\": \"assignment_not_admission\", \"message\": \"A school assignment does not guarantee admission.\"}, {\"code\": \"boundary_year_specific\", \"message\": \"Boundaries apply to their stated year and may change.\"}], \"effective_date\": null, \"last_checked_at\": \"2026-10-08T23:37:04.966500Z\"}, \"coverage\": {\"period\": null, \"status\": \"supported\", \"message\": null, \"outcome\": \"resolved\", \"geography\": \"point\", \"capability\": \"school_assignments\"}, \"warnings\": [], \"provenance\": [{\"snapshot\": null, \"source_id\": \"ca-bc-surrey-school-catchments\", \"observed_at\": null, \"source_updated_at\": null}]}}}, \"quality\": {\"basis\": \"mixed\", \"limitations\": [{\"code\": \"absence_not_proof\", \"message\": \"No matching record does not prove that none exists.\"}, {\"code\": \"assessment_not_market_value\", \"message\": \"An assessed value is not a sale price or current market value.\"}, {\"code\": \"assignment_not_admission\", \"message\": \"A school assignment does not guarantee admission.\"}, {\"code\": \"boundary_year_specific\", \"message\": \"Boundaries apply to their stated year and may change.\"}], \"effective_date\": null, \"last_checked_at\": null}, \"coverage\": {\"period\": null, \"status\": \"partial\", \"message\": null, \"outcome\": \"resolved\", \"geography\": \"point\", \"capability\": \"address_profile\"}, \"warnings\": [], \"provenance\": [{\"snapshot\": null, \"source_id\": \"ca-bc-surrey-school-catchments\", \"observed_at\": null, \"source_updated_at\": null}], \"retrieved_at\": \"2026-10-12T18:49:54.189331Z\", \"schema_version\": \"hillbase.v0\"}\n"Signals
GET /v1/signals
List All
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": [
{
"id": "mon_wh2gyl66r5jq",
"name": "Surrey permit activity",
"area": {
"lat": 49.1416582,
"lng": -122.8795092,
"radius_km": 1
},
"filters": {
"permit_kind": null,
"work_type": [],
"project_category": [],
"min_value_cad": null,
"status": null,
"event": null
},
"status": "active",
"created_at": "2026-10-12T18:49:54.443847Z",
"last_evaluated_at": null
}
],
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.459235Z"
}POST /v1/signals
Create
| Parameter | In | Type | Notes |
|---|---|---|---|
capability | body | "building_permits" | "development_applications" | "tenders" | "charities" | "road_restrictions" | default "building_permits" |
namerequired | body | string | max 200 chars |
arearequired | body | RadiusArea | LocalityArea | RegionArea | – |
filters | body | SignalFilters | – |
webhook_url | body | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_wh2gyl66r5jq",
"name": "Surrey permit activity",
"area": {
"lat": 49.1416582,
"lng": -122.8795092,
"radius_km": 1
},
"filters": {
"permit_kind": null,
"work_type": [],
"project_category": [],
"min_value_cad": null,
"status": null,
"event": null
},
"status": "active",
"created_at": "2026-10-12T18:49:54.443847Z",
"last_evaluated_at": null
},
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.450898Z"
}GET /v1/signals/{signal_id}
Get
| Parameter | In | Type | Notes |
|---|---|---|---|
signal_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_wh2gyl66r5jq",
"name": "Surrey permit activity",
"area": {
"lat": 49.1416582,
"lng": -122.8795092,
"radius_km": 1
},
"filters": {
"permit_kind": null,
"work_type": [],
"project_category": [],
"min_value_cad": null,
"status": null,
"event": null
},
"status": "active",
"created_at": "2026-10-12T18:49:54.443847Z",
"last_evaluated_at": null
},
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.466864Z"
}DELETE /v1/signals/{signal_id}
Pause
| Parameter | In | Type | Notes |
|---|---|---|---|
signal_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_wh2gyl66r5jq",
"name": "Surrey permit activity",
"area": {
"lat": 49.1416582,
"lng": -122.8795092,
"radius_km": 1
},
"filters": {
"permit_kind": null,
"work_type": [],
"project_category": [],
"min_value_cad": null,
"status": null,
"event": null
},
"status": "paused",
"created_at": "2026-10-12T18:49:54.443847Z",
"last_evaluated_at": "2026-10-12T18:49:54.477704Z"
},
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.641365Z"
}GET /v1/signals/{signal_id}/matches
Matches
| Parameter | In | Type | Notes |
|---|---|---|---|
signal_idrequired | path | string | – |
since | query | string (date-time) | – |
limit | query | integer | 1–100 · default 50 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"signal_id": "mon_wh2gyl66r5jq",
"items": [],
"total": 0,
"limit": 50,
"offset": 0,
"next_offset": null
},
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "no_match",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.538468Z"
}GET /v1/signals/{signal_id}/digest
Digest
| Parameter | In | Type | Notes |
|---|---|---|---|
signal_idrequired | path | string | – |
daterequired | query | string (date) | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"signal_id": "mon_wh2gyl66r5jq",
"date": "2026-10-12",
"timezone": "UTC",
"count": 0,
"municipalities": []
},
"coverage": {
"capability": "signals",
"status": "supported",
"outcome": "no_match",
"geography": null,
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.632687Z"
}Area statistics
GET /v1/housing-market
Housing Market
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
period | query | string | max 80 chars |
limit | query | integer | 1–1000 · default 500 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": null,
"coverage": {
"capability": "housing_market",
"status": "unavailable",
"outcome": "no_match",
"geography": "Canada published housing-market areas",
"period": null,
"message": "The area-statistics lake release is unavailable."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:34.818520Z"
}GET /v1/postal-areas
Postal Areas
| Parameter | In | Type | Notes |
|---|---|---|---|
fsa | query | string | max 3 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
table | query | string | default "98100019" |
limit | query | integer | 1–1000 · default 500 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"areas": [
{
"area_id": "statcan:fsa:V5Z",
"area_code": "V5Z",
"area_type": "census_forward_sortation_area",
"area_name": "V5Z",
"region": "BC",
"vintage": "2021",
"source_id": "ca-statcan-fsa-boundaries",
"source_record_id": "1557",
"retrieved_at": "2026-10-10T12:27:37.268494-07:00",
"parent_area_id": null
}
],
"statistics": [
{
"area_id": "statcan:fsa:V5Z",
"area_code": "V5Z",
"area_type": "census_forward_sortation_area",
"area_name": "V5Z",
"source_id": "ca-statcan-fsa-98100019",
"source_record_id": "98100019:1561:4",
"retrieved_at": "2026-10-10T11:58:26.310435-07:00",
"vintage": "2021",
"source_table": "98100019",
"characteristic_code": "Population and dwelling counts (3):Population, 2021[1]",
"characteristic_name": "Population, 2021[1]",
"canonical_topic": "population_total",
"period": "2021",
"period_start": "2021-01-01",
"period_end": "2021-12-31",
"unit": "count",
"currency": null,
"value": 24957,
"source_value": "24957",
"source_symbol": "",
"dimensions": {},
"quality": {
"unavailable": false,
"source_symbol": ""
}
},
{
"area_id": "statcan:fsa:V5Z",
"area_code": "V5Z",
"area_type": "census_forward_sortation_area",
"area_name": "V5Z",
"source_id": "ca-statcan-fsa-98100019",
"source_record_id": "98100019:1561:6",
"retrieved_at": "2026-10-10T11:58:26.310435-07:00",
"vintage": "2021",
"source_table": "98100019",
"characteristic_code": "Population and dwelling counts (3):Total private dwellings, 2021[2]",
"characteristic_name": "Total private dwellings, 2021[2]",
"canonical_topic": "dwellings_total",
"period": "2021",
"period_start": "2021-01-01",
…Monitors
GET /v1/monitors
List the caller's monitors
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": [
{
"id": "mon_4oscvgch32uu",
"kind": "permits_near_point",
"params": {
"lat": 49.263,
"lng": -123.115,
"radius_km": 0.5
},
"status": "active",
"cursor_at": "2026-10-12T18:49:54.279021Z",
"created_at": "2026-10-12T18:49:54.279288Z",
"last_evaluated_at": null
}
],
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "resolved",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.290494Z"
}POST /v1/monitors
Create a monitor (webhook secret shown once)
| Parameter | In | Type | Notes |
|---|---|---|---|
kind | body | string | default "permits_near_point" |
paramsrequired | body | object | – |
webhook_url | body | string | – |
since | body | string (date-time) | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_4oscvgch32uu",
"kind": "permits_near_point",
"params": {
"lat": 49.263,
"lng": -123.115,
"radius_km": 0.5
},
"status": "active",
"cursor_at": "2026-10-12T18:49:54.279021Z",
"created_at": "2026-10-12T18:49:54.279288Z",
"last_evaluated_at": null
},
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "resolved",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.282958Z"
}GET /v1/monitors/{monitor_id}
Get One
| Parameter | In | Type | Notes |
|---|---|---|---|
monitor_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_4oscvgch32uu",
"kind": "permits_near_point",
"params": {
"lat": 49.263,
"lng": -123.115,
"radius_km": 0.5
},
"status": "active",
"cursor_at": "2026-10-12T18:49:54.279021Z",
"created_at": "2026-10-12T18:49:54.279288Z",
"last_evaluated_at": null
},
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "resolved",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.297166Z"
}DELETE /v1/monitors/{monitor_id}
Pause a monitor
| Parameter | In | Type | Notes |
|---|---|---|---|
monitor_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "mon_4oscvgch32uu",
"kind": "permits_near_point",
"params": {
"lat": 49.263,
"lng": -123.115,
"radius_km": 0.5
},
"status": "paused",
"cursor_at": "2026-10-12T18:49:54.359456Z",
"created_at": "2026-10-12T18:49:54.279288Z",
"last_evaluated_at": "2026-10-12T18:49:54.359456Z"
},
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "resolved",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.438361Z"
}GET /v1/monitors/{monitor_id}/events
Events (newest first)
| Parameter | In | Type | Notes |
|---|---|---|---|
monitor_idrequired | path | string | – |
limit | query | integer | 1–500 · default 100 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"monitor_id": "mon_4oscvgch32uu",
"items": [],
"created_now": 0
},
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "no_match",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.326924Z"
}POST /v1/monitors/{monitor_id}/evaluate
Evaluate now (or replay from a time); creates events, never delivers
| Parameter | In | Type | Notes |
|---|---|---|---|
monitor_idrequired | path | string | – |
since | query | string (date-time) | Replay from this time instead of the cursor |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"monitor_id": "mon_4oscvgch32uu",
"items": [],
"created_now": 0
},
"coverage": {
"capability": "monitor.permits_near_point",
"status": "partial",
"outcome": "resolved",
"geography": "CA/BC/Vancouver",
"period": null,
"message": "Events come from loaded permit snapshots (Vancouver); evaluation runs when a new snapshot is loaded or on replay. Event ids are idempotent."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:54.424329Z"
}Coverage & sources
GET /v1/coverage
What hillbase can answer, where · no key required
| Parameter | In | Type | Notes |
|---|---|---|---|
include_municipalities | query | boolean | Include observed Canadian municipality names; cold inventory scans may take longer · default false |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"purpose": "api",
"capabilities": [
{
"capability": "representatives",
"status": "restricted",
"geographies": [],
"restricted_source_ids": [],
"source_ids": [],
"note": null,
"fresh_as_of": null
},
{
"capability": "broadband",
"status": "restricted",
"geographies": [],
"restricted_source_ids": [],
"source_ids": [],
"note": null,
"fresh_as_of": null
},
{
"capability": "ev_charging",
"status": "restricted",
"geographies": [],
"restricted_source_ids": [],
"source_ids": [],
"note": null,
"fresh_as_of": null
}
],
"providers": []
},
"coverage": {
"capability": "coverage",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": "Statuses are per capability and geography; delivery rights are per source."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:09.859511Z"
}GET /v1/sources
Publisher, licence and attribution per source_id
Responses elsewhere carry only source_id lineage. Use this list to show the attribution a source requires when you republish.
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "ca-ab-calgary-building-permits",
"publisher": "City of Calgary",
"licence_name": null,
"attribution": null
},
{
"id": "ca-ab-calgary-business-licences",
"publisher": "City of Calgary",
"licence_name": null,
"attribution": null
},
{
"id": "ca-ab-calgary-community-boundaries",
"publisher": "City of Calgary",
"licence_name": null,
"attribution": null
}
],
"total": 2253
},
"coverage": {
"capability": "sources",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": null
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:09.929238Z"
}Other
GET /v1/food-inspections
Food Inspections Search
| Parameter | In | Type | Notes |
|---|---|---|---|
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 500 |
region | query | string | – |
record_number | query | string | max 100 chars |
entity_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [],
"total": 0,
"limit": 3,
"offset": 0
},
"coverage": {
"capability": "food_inspections",
"status": "partial",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Publisher snapshots with differing record scopes; absence is not compliance. Nearby searches exclude records without publisher coordinates. Personal names, addresses, precise coordinates and free-text narratives are withheld."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:42.990532Z"
}GET /v1/food-inspections/at-point
Food Inspections At Point
| Parameter | In | Type | Notes |
|---|---|---|---|
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 50 |
region | query | string | – |
record_number | query | string | max 100 chars |
entity_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [],
"total": 0,
"limit": 3,
"offset": 0
},
"coverage": {
"capability": "food_inspections",
"status": "partial",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Publisher snapshots with differing record scopes; absence is not compliance. Nearby searches exclude records without publisher coordinates. Personal names, addresses, precise coordinates and free-text narratives are withheld."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:43.079222Z"
}GET /v1/enforcement
Enforcement Activity Search
| Parameter | In | Type | Notes |
|---|---|---|---|
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 500 |
region | query | string | – |
record_number | query | string | max 100 chars |
entity_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "enf_ae2hwjtod4gw",
"record_number": null,
"record_type": "property_summary",
"country": "CA",
"region": "BC",
"jurisdiction": "ca/bc/vancouver",
"municipality": "Vancouver",
"status": "open",
"result": null,
"activity_date": null,
"decision_date": null,
"expires_on": null,
"score": null,
"amount": null,
"outstanding_count": 4,
"distance_m": 301.90698225124424,
"quality": {
"unknown_status": false,
"unknown_result": false,
"missing_coordinates": false,
"invalid_coordinates": false,
"address_unparsed": false,
"geocode_method": "publisher_point"
},
"source": {
"id": "ca-bc-vancouver-enforcement",
"record_id": "585fff3d5cd222cce9ce12cc5099b56ffd596f72511d42638849fb6aec437b0a",
"updated_at": null,
"observed_at": "2026-10-10T07:47:11.795792Z"
}
},
{
"id": "enf_oqwzf6ngu5gs",
"record_number": null,
"record_type": "property_summary",
"country": "CA",
"region": "BC",
"jurisdiction": "ca/bc/vancouver",
"municipality": "Vancouver",
"status": "open",
"result": null,
"activity_date": null,
"decision_date": null,
"expires_on": null,
"score": null,
"amount": null,
"outstanding_count": 4,
"distance_m": 323.8076589866824,
"quality": {
"unknown_status": false,
"unknown_result": false,
"missing_coordinates": false,
"invalid_coordinates": false,
"address_unparsed": false,
"geocode_method": "publisher_point"
…GET /v1/short-term-rentals
Short Term Rentals Search
| Parameter | In | Type | Notes |
|---|---|---|---|
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 500 |
region | query | string | – |
record_number | query | string | max 100 chars |
entity_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [],
"total": 0,
"limit": 3,
"offset": 0
},
"coverage": {
"capability": "short_term_rentals",
"status": "partial",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Publisher snapshots with differing record scopes; absence is not compliance. Nearby searches exclude records without publisher coordinates. Personal names, addresses, precise coordinates and free-text narratives are withheld."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:43.473610Z"
}GET /v1/short-term-rentals/at-point
Short Term Rentals At Point
| Parameter | In | Type | Notes |
|---|---|---|---|
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 50 |
region | query | string | – |
record_number | query | string | max 100 chars |
entity_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [],
"total": 0,
"limit": 3,
"offset": 0
},
"coverage": {
"capability": "short_term_rentals",
"status": "partial",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Publisher snapshots with differing record scopes; absence is not compliance. Nearby searches exclude records without publisher coordinates. Personal names, addresses, precise coordinates and free-text narratives are withheld."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:43.548623Z"
}GET /v1/enforcement/at-point
Enforcement Activity At Point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 500 |
region | query | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [],
"total": 0,
"limit": 3,
"offset": 0
},
"coverage": {
"capability": "enforcement_activity",
"status": "partial",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Publisher snapshots with differing record scopes; absence is not compliance. Nearby searches exclude records without publisher coordinates. Personal names, addresses, precise coordinates and free-text narratives are withheld."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:43.396343Z"
}GET /v1/building-energy
Published municipal building energy observations
Requires an existing Hillbase address identity. An exact civic match is required. Historical measurements cover published municipal buildings only; they are not an energy audit or a compliance verdict.
| Parameter | In | Type | Notes |
|---|---|---|---|
address_idrequired | query | string | max 200 chars |
year | query | integer | 1900–2200 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"building_match": {
"source_id": "ca-on-toronto-building-energy",
"source_building_id": "CH",
"name": "City Hall",
"address": "100 QUEEN ST W",
"method": "exact_civic_address"
},
"reporting_year": 2013,
"source_property_use": "Administrative offices and related facilities, including municipal council chambers",
"metrics": [
{
"code": "coal",
"value": null,
"unit": null,
"source_metric": "Coal",
"source_value": "null",
"source_unit": null,
"status": "missing",
"quality": {
"basis": "reported",
"reporting_period_conflict": false
}
},
{
"code": "district_cooling",
"value": 21905.729304251996,
"unit": "GJ",
"source_metric": "District Cooling",
"source_value": "21905.729304251996",
"source_unit": "Giga Joule",
"status": "reported",
"quality": {
"basis": "reported",
"reporting_period_conflict": false
}
},
{
"code": "district_heating",
"value": 23457.755629403095,
"unit": "GJ",
"source_metric": "District Heating",
"source_value": "23457.755629403095",
"source_unit": "Giga Joule",
"status": "reported",
"quality": {
"basis": "reported",
"reporting_period_conflict": false
}
},
{
"code": "electricity",
"value": 12540385.254507,
"unit": "kWh",
"source_metric": "Electricity",
"source_value": "12540385.254507",
…GET /v1/collisions/at-point
Traffic Collisions At Point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 500 |
period | query | "year" | "month" | default "month" |
region | query | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"counts": [
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-01",
"records": 6
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-02",
"records": 3
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-03",
"records": 6
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-04",
"records": 2
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-05",
"records": 4
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-06",
"records": 2
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-07",
"records": 8
},
{
"source_id": "ca-ns-halifax-traffic-collisions",
"jurisdiction": "ca/ns/halifax",
"severity": "unknown",
"period": "2018-08",
"records": 3
},
…GET /.well-known/oauth-protected-resource
Protected Metadata
POST /oauth/register
Register
POST /oauth/token
Token
POST /oauth/revoke
Revoke Token
GET /v1/representatives
Representatives
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "jur_2rwljixertox",
"name": "Vancouver-South Granville",
"level": "provincial",
"locality": null,
"country": "CA",
"region": "BC",
"officials": [],
"quality": {
"current_representative_unknown": true
},
"source": {
"id": "ca-bc-electoral-districts",
"record_id": "341",
"updated_at": null,
"observed_at": "2026-10-10T06:10:08.615452Z"
}
},
{
"id": "jur_t7be2z4c4qge",
"name": "Vancouver Granville",
"level": "federal",
"locality": null,
"country": "CA",
"region": "BC",
"officials": [
{
"name": "Taleeb Noormohamed",
"role": "MP",
"current": true,
"party": "Liberal",
"office_contacts": [],
"source_id": "ca-house-commons-members",
"source_record_id": "72023"
}
],
"quality": {},
"source": {
"id": "ca-elections-canada-electoral-districts",
"record_id": "59038",
"updated_at": null,
"observed_at": "2026-10-10T06:07:20.425119Z"
}
}
]
},
"coverage": {
"capability": "representatives",
"status": "partial",
"outcome": "resolved",
"geography": "point",
"period": null,
"message": "Loaded electoral boundaries; missing office holders mean unknown, not vacant. Provincial and municipal coverage is incomplete."
},
"provenance": [
{
…GET /v1/broadband
Broadband
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"hex_id": "BC49281231",
"country": "CA",
"region": "BC",
"availability_5_1_over_75pct": true,
"availability_50_10": ">75% - 100%",
"quality": {
"speed_fields": {
"Expr1": "5/1 Mbps over 75%",
"Expr2": "50/10 Mbps range"
},
"speed_field_mapping_basis": "export column order and dictionary types"
},
"source": {
"id": "ca-ised-broadband",
"record_id": "BC49281231",
"updated_at": null,
"observed_at": "2026-10-10T06:10:05.873223Z"
}
}
]
},
"coverage": {
"capability": "broadband",
"status": "partial",
"outcome": "resolved",
"geography": "point",
"period": null,
"message": "Area estimates of household broadband availability; no assurance for a specific address or provider."
},
"provenance": [
{
"source_id": "ca-ised-broadband",
"source_updated_at": null,
"observed_at": null,
"snapshot": "122afa709fa4371d2d4ee52efba743f8784223e535df84adb21525155c17f1e3"
}
],
"warnings": [],
"retrieved_at": "2026-10-12T18:49:42.623300Z"
}GET /v1/ev-charging
Ev Charging
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_km | query | number | 0–50 · default 5 |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | ≥ 0 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "poi_opw433wglz2y",
"name": "Swtch Energy",
"country": "CA",
"region": "BC",
"lat": 49.263675,
"lng": -123.1134123,
"distance_km": 0.13780380223277036,
"fuel": "electricity",
"source_fuel": "ELEC",
"status": "available",
"source_status": "E",
"access": "private",
"network": "SWTCH",
"level1_ports": null,
"level2_ports": 15,
"dc_fast_ports": null,
"connectors": [
"J1772"
],
"charging_units": [
{
"network": "SWTCH",
"charging_level": "2",
"port_count": 1,
"connectors": [
{},
{},
{}
]
},
{
"network": "SWTCH",
"charging_level": "2",
"port_count": 1,
"connectors": [
{},
{},
{}
]
},
{
"network": "SWTCH",
"charging_level": "2",
"port_count": 1,
"connectors": [
{},
{},
{}
]
}
],
"access_days_time": "24 hours daily",
"pricing": "$0.90 per hour",
"address": null,
"quality": {},
…GET /v1/land-constraints
Listed land constraints containing or near a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–10000 · default 250 |
limit | query | integer | 1–1000 · default 100 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"entity_id": "reg_5c3dqyaweq7i",
"type": "heritage_inventory",
"name": "Greyhound Building",
"status": null,
"source_status": null,
"source_record_id": "1",
"distance_m": 0,
"contains_point": true,
"effective_date": null,
"source": {
"id": "ca-ab-calgary-heritage-sites",
"record_id": "1",
"updated_at": null,
"observed_at": "2026-10-13T09:52:35.135619-07:00"
}
}
],
"limit": 1000,
"limitations": [
"absence_not_proof"
]
},
"coverage": {
"capability": "land_constraints",
"status": "partial",
"outcome": "resolved",
"geography": "point",
"period": null,
"message": "Inventories are incomplete; absence is not proof that land has no restrictions or contamination."
},
"provenance": [
{
"source_id": "ca-ab-calgary-heritage-sites",
"source_updated_at": null,
"observed_at": null,
"snapshot": "da36a8cbb5f86e479d3f358826ba58e19652a75662286b9b377ef32947118bb0"
}
],
"warnings": [
"absence_not_proof"
],
"retrieved_at": "2026-10-13T17:28:06.783828Z"
}GET /v1/urban-trees/near
Trees Near
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–2000 · default 500 |
limit | query | integer | 1–100 · default 20 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"source_id": "ca-on-toronto-street-trees",
"source_record_id": "0251515",
"species": "Allianthus altissima",
"source_species": "Allianthus altissima",
"source_common_name": "Tree of heaven",
"dbh_cm": 52,
"distance_m": 0,
"source_condition": null,
"as_of": null,
"observed_at": "2026-10-22T02:19:54.163901Z",
"quality": {
"invalid_geometry": false,
"publisher_point_may_be_parcel_address": true,
"unknown_species": false,
"missing_publisher_key": false,
"invalid_dbh": false
}
},
{
"source_id": "ca-on-toronto-street-trees",
"source_record_id": "TO93563",
"species": null,
"source_species": "Syringa",
"source_common_name": "Lilac",
"dbh_cm": 25,
"distance_m": 12.303604878614902,
"source_condition": null,
"as_of": null,
"observed_at": "2026-10-22T02:19:54.163901Z",
"quality": {
"invalid_geometry": false,
"publisher_point_may_be_parcel_address": true,
"unknown_species": true,
"missing_publisher_key": false,
"invalid_dbh": false
}
},
{
"source_id": "ca-on-toronto-street-trees",
"source_record_id": "TO93566",
"species": null,
"source_species": "Gleditsia triacanthos f. inermis 'Skyline'",
"source_common_name": "Honey locust Skyline",
"dbh_cm": 55,
"distance_m": 19.592045568573667,
"source_condition": null,
"as_of": null,
"observed_at": "2026-10-22T02:19:54.163901Z",
"quality": {
"invalid_geometry": false,
"publisher_point_may_be_parcel_address": true,
"unknown_species": true,
"missing_publisher_key": false,
"invalid_dbh": false
}
…GET /v1/active-travel/near
Travel Near
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–2000 · default 500 |
mode | query | "cycling" | "sidewalk" | "walkway" | "pathway" | – |
limit | query | integer | 1–100 · default 20 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"segments": [
{
"source_id": "ca-on-toronto-cycling-network",
"source_record_id": "1",
"mode": "cycling",
"source_type": "Sharrows - Wayfinding",
"source_type_low": "Sharrows - Wayfinding",
"status": "installed",
"installed_year": 2001,
"upgraded_year": 2021,
"source_grade_separation": null,
"partial": null,
"multiuse": null,
"distance_m": 0,
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[
-79.4030944749832,
43.6953493235052
],
[
-79.4035069136297,
43.6952595244941
]
]
]
},
"as_of": null,
"observed_at": "2026-10-22T02:19:29.450964Z",
"quality": {
"invalid_geometry": false,
"publisher_point_may_be_parcel_address": false,
"unknown_classification": false,
"missing_publisher_key": false
}
},
{
"source_id": "ca-on-toronto-cycling-network",
"source_record_id": "1523",
"mode": "cycling",
"source_type": "Bike Lane",
"source_type_low": "Sharrows - Wayfinding",
"status": "installed",
"installed_year": 2001,
"upgraded_year": 2021,
"source_grade_separation": null,
"partial": null,
"multiuse": null,
"distance_m": 0,
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[
-79.4024035584621,
…GET /v1/site-conditions
Published site and engineering references for a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
civic_address | query | string | max 300 chars |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"design_values": {
"status": "supported",
"message": "Nearest published location with confirmed Gazetteer coordinates; ungeolocated table entries are excluded from this lookup. Confirm design values and the applicable code edition with the authority having jurisdiction. Local terrain and elevation can change loads.",
"max_distance_m": 50000,
"reference": {
"source_id": "ca-nrc-nbc-2020-climatic-design",
"source_record_id": "C-2#100",
"name": "West Vancouver",
"region": "BC",
"edition": "NBC 2020, second printing, March 2025 errata",
"lat": 49.331111,
"lng": -123.159722,
"distance_m": 8484.82593067192,
"measurements": {
"annual_precipitation_mm": 1700,
"annual_rain_mm": 1600,
"driving_rain_wind_pressure_1_in_5_pa": 160,
"elevation_m": 45,
"heating_degree_days_below_18_c": 2950,
"hourly_wind_pressure_1_in_10_kpa": 0.36,
"hourly_wind_pressure_1_in_50_kpa": 0.48,
"january_design_1_percent_c": -9,
"january_design_2_5_percent_c": -7,
"july_design_dry_2_5_percent_c": 28,
"july_design_wet_2_5_percent_c": 19,
"moisture_index": 1.7,
"rain_15_min_mm": 12,
"rain_load_sr_1_in_50_kpa": 0.2,
"rain_one_day_1_in_50_mm": 150,
"snow_load_ss_1_in_50_kpa": 2.4
},
"quality": {
"gazetteer_id": "JBJYE",
"location_method": "exact_gazetteer_populated_place",
"missing_geometry": false,
"source_page": 659,
"unknown_labels": 0,
"unmatched_location": false
}
},
"items": [],
"matched_count": null,
"depth_min_m": null,
"depth_max_m": null
},
"seismic": {
"status": "supported",
"message": "Nearest published site-class C grid vertex; no spatial interpolation or site-specific soil assessment. Confirm engineering design values with the authority having jurisdiction.",
"max_distance_m": 150000,
"reference": {
"source_id": "ca-nrcan-seismic-hazard-2020",
"source_record_id": "608879d2ce3a7b6269519039",
"name": null,
"region": null,
"edition": "CanadaSHM6 / NBC 2020 / Open File 8950 v1.0",
"lat": 49.25,
"lng": -123.12,
…GET /v1/air-quality/near
Historical air pollutant summaries at the nearest measured station
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
max_distance_m | query | number | 0–100000 · default 50000 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"station": {
"source_id": "ca-eccc-naps-annual-air-quality",
"station_id": "010102",
"source_record_id": "010102",
"name": "WATER STREET POST OFFICE",
"country": "CA",
"region": "NL",
"lat": 47.56038,
"lng": -52.71147,
"status": "active",
"observed_at": "2026-10-22T13:16:29.532209Z",
"first_year": 2005,
"last_year": 2024,
"distance_m": 0
},
"observation": null,
"measurements": [
{
"source_id": "ca-eccc-naps-annual-air-quality",
"source_record_id": "2024:CO:010102:1HR",
"period_start": "2024-01-01",
"period_end": "2024-12-31",
"pollutant": "co",
"source_pollutant": "CO",
"averaging_period": "hourly",
"source_averaging_period": "1HR",
"value": 0.16,
"source_value": "0.16",
"unit": "ppm",
"source_unit": "ppm",
"percent_completeness": 95.49
},
{
"source_id": "ca-eccc-naps-annual-air-quality",
"source_record_id": "2024:CO:010102:24HR",
"period_start": "2024-01-01",
"period_end": "2024-12-31",
"pollutant": "co",
"source_pollutant": "CO",
"averaging_period": "daily",
"source_averaging_period": "24HR",
"value": 0.16,
"source_value": "0.16",
"unit": "ppm",
"source_unit": "ppm",
"percent_completeness": 95.3
},
{
"source_id": "ca-eccc-naps-annual-air-quality",
"source_record_id": "2024:CO:010102:8HR",
"period_start": "2024-01-01",
"period_end": "2024-12-31",
"pollutant": "co",
"source_pollutant": "CO",
"averaging_period": "eight_hour",
"source_averaging_period": "8HR",
"value": 0.16,
…GET /v1/environment/facilities-near
Nearby industrial emitters with latest reported quantities
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–10000 · default 5000 |
limit | query | integer | 1–100 · default 20 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"entity_id": "poi_3dfnkuvhgh3c",
"source_id": "ca-ab-aeir",
"source_record_id": "AEIR10",
"name": "Clover Bar Building Products (Gypsum Wallboard) Manufacturing Plant",
"npri_id": "6880",
"naics": "327420",
"region": "AB",
"location": {
"lat": 53.5729809999999,
"lng": -113.340292
},
"distance_m": 0,
"latest_reporting_year": 2023,
"reporting_years": [
2021,
2022,
2023
],
"latest_year_totals": [
{
"medium": "air",
"quantity": 4.242189718597451,
"unit": "tonnes/year"
}
],
"top_substances": [
{
"cas_number": null,
"substance_name": "2023NOXTotal",
"quantity": 1.9801875786593708,
"unit": "tonnes/year"
},
{
"cas_number": null,
"substance_name": "2023COTotal",
"quantity": 1.6479873875440993,
"unit": "tonnes/year"
},
{
"cas_number": null,
"substance_name": "2023TPMTotal",
"quantity": 0.20726948946648424,
"unit": "tonnes/year"
},
{
"cas_number": null,
"substance_name": "2023PM10Total",
"quantity": 0.18908948946648424,
"unit": "tonnes/year"
},
{
"cas_number": null,
"substance_name": "2023PM2.5Total",
"quantity": 0.17972948946648423,
"unit": "tonnes/year"
…GET /v1/economic-indicators
Economic Indicators
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
indicator | query | string | max 100 chars |
occupation | query | string | – |
limit | query | integer | 1–1000 · default 500 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"selection": "published_dimensions",
"areas": [
{
"area_id": "statcan:cd:3520",
"area_code": "3520",
"area_type": "census_division",
"area_name": "Toronto",
"region": "ON",
"vintage": "2021",
"source_id": "ca-statcan-economic-boundaries",
"source_record_id": "4:160",
"retrieved_at": "2026-10-15T11:18:00.345321-07:00",
"parent_area_id": null
},
{
"area_id": "statcan:cma:535",
"area_code": "535",
"area_type": "census_metropolitan_area",
"area_name": "Toronto",
"region": "ON",
"vintage": "2021",
"source_id": "ca-statcan-economic-boundaries",
"source_record_id": "6:66",
"retrieved_at": "2026-10-15T11:18:00.345321-07:00",
"parent_area_id": null
},
{
"area_id": "statcan:er:3530",
"area_code": "3530",
"area_type": "economic_region",
"area_name": "Toronto",
"region": "ON",
"vintage": "2021",
"source_id": "ca-statcan-economic-boundaries",
"source_record_id": "2:36",
"retrieved_at": "2026-10-15T11:18:00.345321-07:00",
"parent_area_id": null
},
{
"area_id": "statcan:province:35",
"area_code": "35",
"area_type": "province",
"area_name": "Ontario",
"region": "ON",
"vintage": "2021",
"source_id": "ca-statcan-economic-boundaries",
"source_record_id": "0:6",
"retrieved_at": "2026-10-15T11:18:00.345321-07:00",
"parent_area_id": null
}
],
"statistics": [
{
"area_id": "statcan:country:01",
"area_code": "01",
"area_type": "country",
"area_name": "Canada",
…GET /v1/economic-indicators/series
Economic Series
| Parameter | In | Type | Notes |
|---|---|---|---|
indicatorrequired | query | string | max 100 chars |
arearequired | query | string | max 100 chars |
occupation | query | string | – |
limit | query | integer | 1–1000 · default 500 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"selection": "published_dimensions",
"areas": [],
"statistics": [
{
"area_id": "statcan:country:01",
"area_code": "01",
"area_type": "country",
"area_name": "Canada",
"source_id": "ca-boc-economic-indicators",
"source_record_id": "V39079:2026-10-14",
"retrieved_at": "2026-10-15T10:43:53.204911-07:00",
"vintage": null,
"source_table": "ca-boc-economic-indicators",
"characteristic_code": "V39079",
"characteristic_name": "Target for the overnight rate (business daily)",
"canonical_topic": "policy_rate",
"period": "2026-10-14",
"period_start": "2026-10-14",
"period_end": "2026-10-14",
"unit": "Percent",
"currency": null,
"value": 2.25,
"source_value": "2.25",
"source_symbol": null,
"dimensions": {
"frequency": "Business daily",
"series": "V39079",
"source_label": "Target for the overnight rate (business daily)"
},
"quality": {
"area_statistic": true,
"summary": true,
"unknown_topic": false,
"unlinked_geography": false
}
},
{
"area_id": "statcan:country:01",
"area_code": "01",
"area_type": "country",
"area_name": "Canada",
"source_id": "ca-boc-economic-indicators",
"source_record_id": "V39079:2026-10-13",
"retrieved_at": "2026-10-15T10:43:53.204911-07:00",
"vintage": null,
"source_table": "ca-boc-economic-indicators",
"characteristic_code": "V39079",
"characteristic_name": "Target for the overnight rate (business daily)",
"canonical_topic": "policy_rate",
"period": "2026-10-13",
"period_start": "2026-10-13",
"period_end": "2026-10-13",
"unit": "Percent",
"currency": null,
"value": 2.25,
"source_value": "2.25",
"source_symbol": null,
…GET /v1/health-facilities/status-near
Facility Status
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–50000 · default 10000 |
limit | query | integer | 1–100 · default 50 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"facility_id": null,
"source_facility_id": "51218980",
"name": "HÔPITAL DE MATANE",
"distance_m": 0,
"metrics": [
{
"code": "average_ambulatory_stay_previous_day",
"value": 3.59,
"source_value": "3.59",
"unit": "hours",
"observed_at": "2026-10-22T02:00:00+00:00",
"source_id": "ca-qc-msss-emergency-people",
"reference_date": "2026-10-20",
"age_seconds": 6247.509049,
"status": "supported"
},
{
"code": "average_stretcher_stay_previous_day",
"value": 4.34,
"source_value": "4.34",
"unit": "hours",
"observed_at": "2026-10-22T02:00:00+00:00",
"source_id": "ca-qc-msss-emergency-people",
"reference_date": "2026-10-20",
"age_seconds": 6247.509049,
"status": "supported"
},
{
"code": "functional_stretchers",
"value": 7,
"source_value": "7",
"unit": "count",
"observed_at": "2026-10-22T02:00:00+00:00",
"source_id": "ca-qc-msss-emergency-people",
"reference_date": null,
"age_seconds": 6247.509049,
"status": "supported"
},
{
"code": "occupied_stretchers",
"value": 6,
"source_value": "6",
"unit": "count",
"observed_at": "2026-10-22T02:00:00+00:00",
"source_id": "ca-qc-msss-emergency-people",
"reference_date": null,
"age_seconds": 6247.509049,
"status": "supported"
},
{
"code": "people_awaiting_care",
"value": 4,
"source_value": "4",
"unit": "count",
"observed_at": "2026-10-22T02:00:00+00:00",
…GET /v1/health-indicators/at-point
Health Indicators
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
period | query | string | – |
limit | query | integer | 1–500 · default 100 |
offset | query | integer | 0–100000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"area": null,
"indicators": [],
"unresolved_boundary": true
},
"coverage": {
"capability": "health_indicators",
"status": "unavailable",
"outcome": "no_match",
"geography": "CA",
"period": null,
"message": "Regional survey context; matching-vintage health-region boundaries required."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-22T03:44:07.513889Z"
}GET /v1/charities
Search Charities
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
region | query | string | – |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "chr_c4zcsbtaxoor",
"registration_number": "854491511RR0001",
"business_number_root": "854491511",
"business_entity_ids": [],
"legal_name": "EQUINEABILITY THERAPEUTIC RIDING CENTRE",
"account_name": "EquineAbility Therapeutic Riding Centre",
"designation": "charitable_organization",
"source_designation": "C",
"source_category": "0140",
"source_subcategory": "0005",
"status": null,
"source_status": null,
"status_date": null,
"current_status_verified": false,
"identification_year": 2024,
"country": "CA",
"region": "ON",
"municipality": "FONTHILL",
"revocation_date": null,
"revocation_reason": null,
"source": {
"id": "ca-cra-charities",
"record_id": "854491511RR0001",
"updated_at": null,
"observed_at": "2026-10-21T06:37:36.631867Z"
}
}
],
"total": 1,
"next_offset": null
},
"coverage": {
"capability": "charities",
"status": "partial",
"outcome": "resolved",
"geography": "CA/ON",
"period": null,
"message": "Captured charity filings and published notices; current registration status is unverified."
},
"provenance": [
{
"source_id": "ca-cra-charities",
"source_updated_at": null,
"observed_at": null,
"snapshot": "b70ee1997a848ddb7e4699f1f506a188d4bdd09386ac42e18f0401d71ae2ea45"
}
],
"warnings": [
"Annual filing presence does not verify current charity registration status.",
"A published revocation notice may have been followed by reinstatement.",
"Financial totals before 1999 are unavailable in the canonical return fields.",
"Mailing street addresses, postal codes, directors and private narrative fields are omitted."
],
"retrieved_at": "2026-10-21T07:25:58.184119Z"
}GET /v1/charities/{id}
Get Charity
| Parameter | In | Type | Notes |
|---|---|---|---|
idrequired | path | string | – |
history_limit | query | integer | 1–100 · default 100 |
history_offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"charity": {
"id": "chr_c4zcsbtaxoor",
"registration_number": "854491511RR0001",
"business_number_root": "854491511",
"business_entity_ids": [],
"legal_name": "EQUINEABILITY THERAPEUTIC RIDING CENTRE",
"account_name": "EquineAbility Therapeutic Riding Centre",
"designation": "charitable_organization",
"source_designation": "C",
"source_category": "0140",
"source_subcategory": "0005",
"status": null,
"source_status": null,
"status_date": null,
"current_status_verified": false,
"identification_year": 2024,
"country": "CA",
"region": "ON",
"municipality": "FONTHILL",
"revocation_date": null,
"revocation_reason": null,
"source": {
"id": "ca-cra-charities",
"record_id": "854491511RR0001",
"updated_at": null,
"observed_at": "2026-10-21T06:37:36.631867Z"
}
},
"latest_return": {
"id": "record:ca-cra-charities:854491511RR0001/2024-01-31",
"fiscal_period_end": "2024-01-31",
"filing_year": 2024,
"currency": "CAD",
"revenue": 0,
"expenditures": 10710,
"assets": null,
"liabilities": null,
"compensation_scope": null,
"compensation_bands": {},
"program_areas": [],
"financial_conflict": false,
"source": {
"id": "ca-cra-charities",
"record_id": "854491511RR0001/2024-01-31",
"updated_at": null,
"observed_at": "2026-10-21T06:07:49.899263Z"
}
},
"history": [
{
"id": "record:ca-cra-charities:854491511RR0001/2024-01-31",
"fiscal_period_end": "2024-01-31",
"filing_year": 2024,
"currency": "CAD",
"revenue": 0,
"expenditures": 10710,
"assets": null,
…GET /v1/tenders
Tenders
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
category | query | string | – |
region | query | string | – |
status | query | string | – |
since | query | string (date) | – |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–100000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "tnd_pr6lnv6byux4",
"country": "CA",
"region": "BC",
"jurisdiction": "ca/bc",
"title": "Cloverdale Arena Dehumidifier Replacement",
"buyer": "City of Surrey",
"category": null,
"unspsc": [],
"gsin": [],
"delivery_regions": [],
"published_on": "2026-10-13",
"closes_on": "2026-11-03",
"starts_on": null,
"ends_on": null,
"status": "open",
"amount": null,
"currency": null,
"source": {
"id": "ca-bc-surrey-tenders",
"record_id": "1220-040-2026-067#181201",
"updated_at": null,
"observed_at": "2026-10-15T19:57:17.527702Z"
}
}
],
"total": 1,
"limit": 1,
"offset": 0,
"next_offset": null
},
"coverage": {
"capability": "tenders",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": null
},
"provenance": [
{
"source_id": "ca-bc-surrey-tenders",
"source_updated_at": null,
"observed_at": null,
"snapshot": "f50269030e9b939ee7eab27362fe74af0282d2545a8ae32bf5aa51a7db2e299c"
}
],
"warnings": [],
"retrieved_at": "2026-10-15T21:05:39.090389Z"
}GET /v1/awards
Awards
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
business_id | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–100000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "awd_6zlqzpo5s5cl",
"country": "CA",
"region": "ON",
"jurisdiction": "ca",
"title": "UK Biomanufacturing - 10143578 - NPmsDNA2024 - Development of in vivo targeted non-viral gene therapies",
"award_type": "contribution",
"recipient_name": "Mediphage Bioceuticals, Inc.",
"recipient_type": "organization",
"business_number": "788308328",
"registration_number": null,
"business_id": "biz_4q5im3ehudt3",
"match_method": "business_number",
"amount": 63380,
"currency": "CAD",
"awarded_on": null,
"starts_on": "2027-01-01",
"ends_on": "2027-03-26",
"program": "Industrial Research Assistance Program – Contributions to Firms",
"department": "National Research Council Canada | Conseil national de recherches Canada",
"source": {
"id": "ca-tbs-grants",
"record_id": "nrc-cnrc:172-2025-2026-Q2-1034675",
"updated_at": null,
"observed_at": "2026-10-15T17:48:40.555540Z"
}
}
],
"total": 3822089,
"limit": 1,
"offset": 0,
"next_offset": 1
},
"coverage": {
"capability": "public_awards",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": null
},
"provenance": [
{
"source_id": "ca-tbs-grants",
"source_updated_at": null,
"observed_at": null,
"snapshot": "d18460ac8bf9301c2636178046b437635d2863b15d0bf51b59be7d745945511e"
}
],
"warnings": [],
"retrieved_at": "2026-10-15T21:05:39.321412Z"
}GET /v1/programs
Search Programs
| Parameter | In | Type | Notes |
|---|---|---|---|
jurisdiction | query | string | – |
category | query | string | – |
audience | query | string | – |
status | query | string | – |
q | query | string | max 100 chars |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"program_id": "prg_wnl4stxdj365",
"jurisdiction": "CA",
"administrator": "Canada Revenue Agency",
"name_en": "Canada child benefit (CCB)",
"name_fr": null,
"summary": "The Canada child benefit (CCB) is a tax-free monthly payment for eligible families to help with the cost of raising children under 18 years of age.",
"categories": [
"child_family"
],
"audiences": [
"household"
],
"benefit_types": [
"cash_payment"
],
"status": "ongoing",
"enrolment": "application",
"languages": [
"en"
],
"last_verified_at": "2026-10-16T12:53:34.775412-07:00",
"review_state": "machine_extracted",
"source_id": "ca-government-program-ccb",
"citation": {
"anchor": "[URL omitted]",
"quote": "The Canada child benefit (CCB) is a tax-free monthly payment for eligible families to help with the cost of raising children under 18 years of age.",
"source_snapshot": "4fe5f91d9b8c67af99571ed61ef9a43f2396c03be7386f53b4fc670a94ef64a0"
},
"rule_coverage": "complete"
},
{
"program_id": "prg_c4524wrdx4b4",
"jurisdiction": "CA",
"administrator": "Canada Revenue Agency",
"name_en": "Child disability benefit (CDB)",
"name_fr": null,
"summary": "The child disability benefit (CDB) is a tax-free monthly payment made to families who care for a child under age 18 with a severe and prolonged impairment in physical or mental functions.",
"categories": [
"disability",
"child_family"
],
"audiences": [
"household"
],
"benefit_types": [
"cash_payment"
],
"status": "ongoing",
"enrolment": "automatic_via_tax_return",
"languages": [
"en"
],
"last_verified_at": "2026-10-16T12:53:45.157046-07:00",
"review_state": "machine_extracted",
"source_id": "ca-government-program-child-disability",
…POST /v1/programs/screen
Screen Programs
| Parameter | In | Type | Notes |
|---|---|---|---|
facts_version | body | string | default "program_facts.v1" |
factsrequired | body | ProgramFacts | – |
jurisdiction | body | string | – |
lat | body | number | -90–90 |
lng | body | number | -180–180 |
address | body | Address-Input | – |
as_of | body | string (date) | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"results": [
{
"program_id": "prg_4b4hx2b2hgpt",
"name": "Allowance",
"version_id": "prg_4b4hx2b2hgpt:2026-Q4:1",
"result": "possibly_eligible",
"missing_facts": [
"age",
"spouse_receives_gis"
],
"failing_rules": [],
"evaluated_rules": [
{
"rule_id": "prg_4b4hx2b2hgpt:2026-Q4:1:r1",
"result": null,
"citation": {
"anchor": "[URL omitted]",
"quote": "you are 60 to 64 years old",
"source_snapshot": "dd8d0afb2b930f40099bedbeb2fec0ec4426f1999a3319717c46a432edf3d013"
}
},
{
"rule_id": "prg_4b4hx2b2hgpt:2026-Q4:1:r2",
"result": null,
"citation": {
"anchor": "[URL omitted]",
"quote": "your spouse or common-law partner receives the Old Age Security (OAS) pension and is eligible to receive the Guaranteed Income supplement (GIS)",
"source_snapshot": "dd8d0afb2b930f40099bedbeb2fec0ec4426f1999a3319717c46a432edf3d013"
}
}
],
"priority_rules": [],
"status": "ongoing",
"inactive_reason": null,
"additional_review_required": true,
"relations": [],
"review_state": "machine_extracted",
"message": "May be eligible; confirm with Employment and Social Development Canada"
},
{
"program_id": "prg_2ehoym57zdet",
"name": "Allowance for the Survivor",
"version_id": "prg_2ehoym57zdet:2026-Q4:1",
"result": "possibly_eligible",
"missing_facts": [
"age",
"spouse_deceased"
],
"failing_rules": [],
"evaluated_rules": [
{
"rule_id": "prg_2ehoym57zdet:2026-Q4:1:r1",
"result": null,
"citation": {
"anchor": "[URL omitted]",
"quote": "you are 60 to 64 years old",
"source_snapshot": "5295fec0393b284f132cbcf7c06179f4ccfa504e2018526374ed32c8ccf2eb15"
…GET /v1/programs/{program_id}
Explain Program
| Parameter | In | Type | Notes |
|---|---|---|---|
program_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"program_id": "prg_wnl4stxdj365",
"jurisdiction": "CA",
"administrator": "Canada Revenue Agency",
"name_en": "Canada child benefit (CCB)",
"name_fr": null,
"summary": "The Canada child benefit (CCB) is a tax-free monthly payment for eligible families to help with the cost of raising children under 18 years of age.",
"categories": [
"child_family"
],
"audiences": [
"household"
],
"benefit_types": [
"cash_payment"
],
"status": "ongoing",
"enrolment": "application",
"languages": [
"en"
],
"last_verified_at": "2026-10-16T12:53:34.775412-07:00",
"review_state": "machine_extracted",
"source_id": "ca-government-program-ccb",
"citation": {
"anchor": "[URL omitted]",
"quote": "The Canada child benefit (CCB) is a tax-free monthly payment for eligible families to help with the cost of raising children under 18 years of age.",
"source_snapshot": "4fe5f91d9b8c67af99571ed61ef9a43f2396c03be7386f53b4fc670a94ef64a0"
},
"rule_coverage": "complete",
"current_version": {
"program_id": "prg_wnl4stxdj365",
"version_id": "prg_wnl4stxdj365:2026-2027:1",
"benefit_year": "2026-2027",
"effective_from": "2026-07-01",
"effective_to": "2027-06-30",
"source_snapshot": [
"4fe5f91d9b8c67af99571ed61ef9a43f2396c03be7386f53b4fc670a94ef64a0",
"f6ee517adf5645ca221ffa7f62cc3fede243bdfb758661951cf7da091302ccbe",
"1c5c0ffff3a285a321729713f1e44b9f413e74de18a1c456839be364799504bc"
],
"calculator": "ccb",
"country": "CA",
"source_id": "ca-government-program-ccb",
"snapshot_id": "2c6554394c4c6d6684126f81058773d049860e10e6a296f363b8e3fcadae1128",
"observed_at": "2026-10-16 12:53:34.775412-07",
"imported_at": "2026-10-16 12:53:34.775412-07"
},
"rules": [
{
"program_id": "prg_wnl4stxdj365",
"version_id": "prg_wnl4stxdj365:2026-2027:1",
"rule_id": "prg_wnl4stxdj365:2026-2027:1:r1",
"kind": "required",
"expression": {
"all": [
{
"fact": "children",
…POST /v1/programs/{program_id}/estimate
Estimate Program
| Parameter | In | Type | Notes |
|---|---|---|---|
program_idrequired | path | string | – |
factsrequired | body | ProgramFacts | – |
as_of | body | string (date) | – |
version_id | body | string | max 100 chars |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"program_id": "prg_wnl4stxdj365",
"version_id": "prg_wnl4stxdj365:2026-2027:1",
"benefit_year": "2026-2027",
"effective_from": "2026-07-01",
"effective_to": "2027-06-30",
"basis": "estimated",
"currency": "CAD",
"limitations": [
"estimate_not_determination",
"program_rules_change"
],
"message": "May be eligible; confirm with Canada Revenue Agency",
"status": "estimated",
"annual_amount": 7683.59,
"monthly_amount": 640.3,
"monthly_amount_is_average": true,
"missing_facts": [],
"reason": null,
"conditional_on_eligibility": true,
"citations": [
{
"anchor": "[URL omitted]",
"quote": "6 to 17 years of age: $6,883 per year",
"source_snapshot": "1c5c0ffff3a285a321729713f1e44b9f413e74de18a1c456839be364799504bc"
},
{
"anchor": "[URL omitted]",
"quote": "Your total payment is reduced by $3,123 + 3.2% of your income greater than $82,847.",
"source_snapshot": "1c5c0ffff3a285a321729713f1e44b9f413e74de18a1c456839be364799504bc"
},
{
"anchor": "[URL omitted]",
"quote": "Your payment is reduced by $6,022 + 5.7% of your income greater than $82,847.",
"source_snapshot": "1c5c0ffff3a285a321729713f1e44b9f413e74de18a1c456839be364799504bc"
}
]
},
"coverage": {
"capability": "government_programs",
"status": "supported",
"outcome": "resolved",
"geography": null,
"period": null,
"message": null
},
"quality": {
"basis": "estimated",
"effective_date": null,
"last_checked_at": "2026-10-16T12:53:34.775412-07:00",
"limitations": [
{
"code": "eligibility_not_determination",
"message": "You may be eligible; confirm eligibility with the program administrator."
},
{
"code": "program_rules_change",
"message": "Program rules and application windows may change; confirm the current requirements."
…GET /v1/development-applications
Development Applications
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–25000 · default 500 |
status | query | string | – |
since | query | string (date) | Published submission date, falling back to status or decision date |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "dap_23y4lo34bv5h",
"application_number": "ZBA25/026/W/EW",
"application_type": "rezoning",
"country": "CA",
"region": "ON",
"jurisdiction": "ca/on/kitchener",
"municipality": "Kitchener",
"status": null,
"submitted_date": "2025-10-15",
"status_date": null,
"decision_date": null,
"proposed_units": null,
"proposed_storeys": null,
"proposed_gfa_m2": null,
"distance_m": 0,
"quality": {
"unknown_status": true,
"unknown_type": false,
"missing_coordinates": false,
"geocode_method": "publisher_point"
},
"source": {
"id": "ca-on-kitchener-planning-applications",
"record_id": "ZBA25/026/W/EW",
"updated_at": null,
"observed_at": "2026-10-13T16:17:56.224459Z"
}
},
{
"id": "dap_qj3vjgje6bgy",
"application_number": "DC26/006/W/TZ",
"application_type": null,
"country": "CA",
"region": "ON",
"jurisdiction": "ca/on/kitchener",
"municipality": "Kitchener",
"status": "approved",
"submitted_date": "2026-03-16",
"status_date": null,
"decision_date": null,
"proposed_units": null,
"proposed_storeys": null,
"proposed_gfa_m2": null,
"distance_m": 3.645520349523694,
"quality": {
"unknown_status": false,
"unknown_type": true,
"missing_coordinates": false,
"geocode_method": "publisher_point"
},
"source": {
"id": "ca-on-kitchener-planning-applications",
"record_id": "DC26/006/W/TZ",
"updated_at": null,
"observed_at": "2026-10-13T16:17:56.224459Z"
…GET /v1/development-applications/{application_id}
Development Application
| Parameter | In | Type | Notes |
|---|---|---|---|
application_idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "dap_23y4lo34bv5h",
"application_number": "ZBA25/026/W/EW",
"application_type": "rezoning",
"country": "CA",
"region": "ON",
"jurisdiction": "ca/on/kitchener",
"municipality": "Kitchener",
"status": null,
"submitted_date": "2025-10-15",
"status_date": null,
"decision_date": null,
"proposed_units": null,
"proposed_storeys": null,
"proposed_gfa_m2": null,
"distance_m": null,
"quality": {
"unknown_status": true,
"unknown_type": false,
"missing_coordinates": false,
"geocode_method": "publisher_point"
},
"source": {
"id": "ca-on-kitchener-planning-applications",
"record_id": "ZBA25/026/W/EW",
"updated_at": null,
"observed_at": "2026-10-13T16:17:56.224459Z"
}
},
"coverage": {
"capability": "development_applications",
"status": "supported",
"outcome": "resolved",
"geography": "ca/on/kitchener",
"period": null,
"message": null
},
"provenance": [
{
"source_id": "ca-on-kitchener-planning-applications",
"source_updated_at": null,
"observed_at": null,
"snapshot": "07b60f3c9b12bcf514dbdcad463b75c3255b21c68112a316e59dc74cd79d13be"
}
],
"warnings": [],
"retrieved_at": "2026-10-13T19:04:54.718659Z"
}POST /v1/reports/property
Property and land intelligence report (20 credits)
Give exactly one structured Canadian address or point. Each section retains its coverage, basis, limitations and freshness. No report is stored.
| Parameter | In | Type | Notes |
|---|---|---|---|
address | body | AddressInput | – |
point | body | Point | – |
region | body | string | – |
locality | body | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"report_version": "property.v1",
"generated_at": "2026-10-22T12:34:42.318782Z",
"query": {
"address": {
"line1": "453 West 12th Avenue",
"line2": "",
"city": "Vancouver",
"region": "BC",
"postal_code": "",
"country": "CA"
},
"point": null,
"region": null,
"locality": null
},
"point": {
"lat": 49.261317,
"lng": -123.1139388
},
"geocode": {
"provider": "bc-address-geocoder",
"score": 100,
"precision": "civic_number",
"address": {
"line1": "453 W 12th Ave",
"line2": null,
"city": "Vancouver",
"region": "BC",
"postal_code": null,
"country": "CA"
}
},
"notice": "A point query is not proof of property identity. Missing records do not prove absence. Effective dates and last checks may be unknown; report generation time is not data freshness.",
"sections": {
"parcel": {
"data": {
"items": [
{
"id": "prc_2cx6lpvi3ct4",
"kind": "parcel",
"pid": null,
"plan_number": null,
"parcel_class": null,
"area_m2": 22239.43420798704,
"municipality": "Vancouver",
"source": {
"id": "ca-bc-vancouver-parcels",
"record_id": "460c998f59f34db307ba01a12695b32391717f7c",
"updated_at": null,
"observed_at": "2026-10-13T03:48:57.127865Z"
}
},
{
"id": "prc_nyyvhsv6vze5",
"kind": "parcel",
"pid": "014-570-505",
"plan_number": "VAP1530",
…GET /v1/trade-licences
Search Trade Licences
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
name | query | string | max 100 chars |
number | query | string | max 100 chars |
type | query | string | – |
region | query | string | – |
licence_type | query | string | – |
status | query | string | – |
licence_number | query | string | max 100 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_km | query | number | 0–5 · default 1 |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "lic_a3w3it7x6csm",
"licence_number": "000150025",
"holder_name": null,
"holder_type": "unknown",
"licence_type": "fuel_contractor",
"source_licence_type": "Registered Fuels Contractor",
"source_class": null,
"status": "active",
"source_status": "Valid registration",
"issued_on": null,
"expires_on": null,
"country": "CA",
"region": "ON",
"municipality": null,
"registration_entity_id": null,
"registry_number": null,
"business_number": null,
"quality": {
"holder_type_rule": "No publisher legal-form field in list; unknown",
"unknown_holder_type": true,
"unknown_licence_type": false,
"unknown_status": false,
"list_fields_only": true,
"registration_match": "holder_not_organization"
},
"source": {
"id": "ca-on-tssa-fuel-contractor-licences",
"record_id": "000150025",
"updated_at": null,
"observed_at": "2026-10-10T05:25:39.866474Z"
}
},
{
"id": "lic_eqzgzddicxi4",
"licence_number": "000150039",
"holder_name": null,
"holder_type": "unknown",
"licence_type": "fuel_contractor",
"source_licence_type": "Registered Fuels Contractor",
"source_class": null,
"status": "active",
"source_status": "Valid registration",
"issued_on": null,
"expires_on": null,
"country": "CA",
"region": "ON",
"municipality": null,
"registration_entity_id": null,
"registry_number": null,
"business_number": null,
"quality": {
"holder_type_rule": "No publisher legal-form field in list; unknown",
"unknown_holder_type": true,
"unknown_licence_type": false,
"unknown_status": false,
…GET /v1/trade-licences/{id}
Get Trade Licence
| Parameter | In | Type | Notes |
|---|---|---|---|
idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"id": "lic_a3w3it7x6csm",
"licence_number": "000150025",
"holder_name": null,
"holder_type": "unknown",
"licence_type": "fuel_contractor",
"source_licence_type": "Registered Fuels Contractor",
"source_class": null,
"status": "active",
"source_status": "Valid registration",
"issued_on": null,
"expires_on": null,
"country": "CA",
"region": "ON",
"municipality": null,
"registration_entity_id": null,
"registry_number": null,
"business_number": null,
"quality": {
"holder_type_rule": "No publisher legal-form field in list; unknown",
"unknown_holder_type": true,
"unknown_licence_type": false,
"unknown_status": false,
"list_fields_only": true,
"registration_match": "holder_not_organization"
},
"source": {
"id": "ca-on-tssa-fuel-contractor-licences",
"record_id": "000150025",
"updated_at": null,
"observed_at": "2026-10-10T05:25:39.866474Z"
}
},
"coverage": {
"capability": "trade_licences",
"status": "supported",
"outcome": "resolved",
"geography": "CA",
"period": null,
"message": "Publisher register coverage; holder names are available only for organizations."
},
"quality": {
"basis": "published",
"effective_date": null,
"last_checked_at": "2026-10-10T05:25:39.866474Z",
"limitations": [
{
"code": "registration_not_endorsement",
"message": "A registration or licence is not an endorsement of the business or its work."
}
]
},
"provenance": [
{
"source_id": "ca-on-tssa-fuel-contractor-licences",
"source_updated_at": null,
"observed_at": null,
"snapshot": "1b329212c34929aa1b0a5e0fbfb5c8f3b9176e53c1fe69098dd64d14e15bd9ef"
…GET /v1/traffic/near
Published traffic counts and AADT near a point
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–50000 · default 1000 |
country | query | string | default "CA" |
region | query | string | – |
mode | query | "vehicle" | "pedestrian" | "cyclist" | – |
measure | query | "aadt" | "aawdt" | "adt" | "weekday_adt" | "weekend_adt" | "sadt" | "sawdt" | "wadt" | "waadt" | "count" | "daily_volume" | – |
since | query | string | – |
latest | query | boolean | default true |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–10000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"source_id": "ca-on-toronto-traffic-atr-counts",
"source_record_id": "2854568:avg_daily_vol",
"country": "CA",
"region": "ON",
"jurisdiction": "ca/on/toronto",
"location_id": "12763888",
"location": "Queen St W to Bay St",
"period_start": "2021-03-11",
"period_end": "2021-03-17",
"source_period": "168",
"measure": "adt",
"value": 4994.4,
"source_value": "4994.4",
"unit": "vehicles_per_day",
"mode": "vehicle",
"source_mode": null,
"direction": "all",
"source_direction": "all",
"movement": null,
"method": "VEHICLE_CLASS",
"lng": -79.38209,
"lat": 43.65181,
"distance_m": 47.222873972056725,
"quality": {
"geocode_method": "publisher_point",
"geocode_precision": "point",
"missing_point": false
},
"source": {
"id": "ca-on-toronto-traffic-atr-counts",
"record_id": "2854568:avg_daily_vol",
"updated_at": null,
"observed_at": "2026-10-21T08:15:25.210057Z"
}
},
{
"source_id": "ca-on-toronto-traffic-atr-counts",
"source_record_id": "2854568:avg_weekday_daily_vol",
"country": "CA",
"region": "ON",
"jurisdiction": "ca/on/toronto",
"location_id": "12763888",
"location": "Queen St W to Bay St",
"period_start": "2021-03-11",
"period_end": "2021-03-17",
"source_period": "168",
"measure": "weekday_adt",
"value": 5117.4,
"source_value": "5117.4",
"unit": "vehicles_per_day",
"mode": "vehicle",
"source_mode": null,
"direction": "all",
"source_direction": "all",
"movement": null,
…GET /v1/climate-projections/at-point
Regional climate scenario period summaries
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
scenario | query | "ssp245" | "ssp585" | default "ssp245" |
period | query | "1981-2010" | "2041-2070" | default "2041-2070" |
Example response · HTTP 200
{
"coverage": {
"capability": "climate_projections",
"geography": "grid_cell",
"message": "Regional grid-cell scenario context, not a deterministic property forecast. Values average annual intermodel percentiles over the specified years; they are not percentiles of the period mean. No property risk or loss is estimated.",
"outcome": "resolved",
"period": "2041-2070",
"status": "partial"
},
"data": {
"as_of": "2026-10-22T04:17:52.229249+00:00",
"baseline": "1981-2010",
"baseline_metrics": [
{
"code": "mean_annual_precipitation",
"percentile": 5,
"quality": {
"calendar": "proleptic_gregorian",
"expected_years": 30,
"geometry_method": "publisher_regular_grid_resolution",
"missing_years": 0,
"scenario_context": true,
"source_unit_conflict": true,
"summary_basis": "arithmetic_mean_of_annual_intermodel_percentiles",
"valid_years": 30
},
"unit": "mm/year",
"value": 1173.1173095703125
},
{
"code": "mean_annual_precipitation",
"percentile": 50,
"quality": {
"calendar": "proleptic_gregorian",
"expected_years": 30,
"geometry_method": "publisher_regular_grid_resolution",
"missing_years": 0,
"scenario_context": true,
"source_unit_conflict": true,
"summary_basis": "arithmetic_mean_of_annual_intermodel_percentiles",
"valid_years": 30
},
"unit": "mm/year",
"value": 1495.5998901367188
},
{
"code": "mean_annual_precipitation",
"percentile": 95,
"quality": {
"calendar": "proleptic_gregorian",
"expected_years": 30,
"geometry_method": "publisher_regular_grid_resolution",
"missing_years": 0,
"scenario_context": true,
"source_unit_conflict": true,
"summary_basis": "arithmetic_mean_of_annual_intermodel_percentiles",
"valid_years": 30
},
"unit": "mm/year",
"value": 1827.3076049804688
…GET /v1/waste-collection/at-address
Regular collection dates at a registered address
| Parameter | In | Type | Notes |
|---|---|---|---|
address_idrequired | query | string | – |
date | query | string (date) | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"date": "2026-10-21",
"services": [
{
"material": "garbage",
"regular_weekday": "Tuesday",
"interval": "biweekly_even",
"season_start": "2026-04-19",
"season_end": "2026-10-31",
"next_collection_date": "2026-10-27",
"holiday_adjustment_known": false,
"as_of": "2026-10-22T00:52:54.224946Z",
"age_seconds": 552.715282,
"stale": false,
"quality": []
},
{
"material": "organics",
"regular_weekday": "Wednesday",
"interval": "weekly",
"season_start": "2026-04-19",
"season_end": "2026-10-31",
"next_collection_date": "2026-10-21",
"holiday_adjustment_known": false,
"as_of": "2026-10-22T00:52:54.224946Z",
"age_seconds": 552.715282,
"stale": false,
"quality": []
},
{
"material": "recycling",
"regular_weekday": "Wednesday",
"interval": "weekly",
"season_start": "2026-04-19",
"season_end": "2026-10-31",
"next_collection_date": "2026-10-21",
"holiday_adjustment_known": false,
"as_of": "2026-10-22T00:52:54.224946Z",
"age_seconds": 552.715282,
"stale": false,
"quality": []
}
],
"limitations": "Regular dates exclude statutory holiday adjustments. Dates outside published seasons are unknown."
},
"coverage": {
"capability": "waste_collection",
"status": "partial",
"outcome": "resolved",
"geography": "CA/AB/Calgary",
"period": null,
"message": "Regular dates exclude statutory holiday adjustments. Dates outside published seasons are unknown."
},
"provenance": [
{
"source_id": "ca-ab-calgary-waste-collection",
"source_updated_at": null,
"observed_at": "2026-10-22T00:52:54.224946+00:00",
…GET /v1/road-restrictions/near
Road Restrictions Near
| Parameter | In | Type | Notes |
|---|---|---|---|
latrequired | query | number | -90–90 |
lngrequired | query | number | -180–180 |
radius_m | query | number | 0–5000 · default 1000 |
at | query | string (date-time) | – |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–10000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"source_id": "ca-on-toronto-road-restrictions",
"source_record_id": "Tor-RD52026-90",
"jurisdiction": "ca/on/toronto",
"kind": "road_closure",
"source_kind": "ROAD_CLOSED",
"description": "Lorraine Gdns 210 m East of Appleby Rd to 11 m East of Martin Grove Rd",
"start_at": "2026-09-15T11:00:00Z",
"end_at": "2026-10-30T22:30:00Z",
"directions_affected": "BOTH_DIRECTIONS",
"geometry": {
"type": "LineString",
"coordinates": [
[
-79.54612,
43.65166
],
[
-79.54616,
43.6517
],
[
-79.54627,
43.65176
],
[
-79.5464,
43.65182
],
[
-79.54653,
43.65188
],
[
-79.54667,
43.65192
],
[
-79.54678,
43.65196
],
[
-79.5469,
43.65198
],
[
-79.5471,
43.65201
],
[
-79.54786,
43.65212
],
[
-79.54794,
43.65213
…GET /v1/licences
Search Trade Licences
| Parameter | In | Type | Notes |
|---|---|---|---|
q | query | string | max 100 chars |
name | query | string | max 100 chars |
number | query | string | max 100 chars |
type | query | string | – |
region | query | string | – |
licence_type | query | string | – |
status | query | string | – |
licence_number | query | string | max 100 chars |
lat | query | number | -90–90 |
lng | query | number | -180–180 |
radius_km | query | number | 0–5 · default 1 |
limit | query | integer | 1–100 · default 20 |
offset | query | integer | 0–1000000 · default 0 |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": {
"items": [
{
"id": "lic_jciizbsckie2",
"licence_number": null,
"holder_name": null,
"holder_type": "unknown",
"licence_type": "mortgage_broker",
"source_licence_type": "Mortgage Broker",
"source_class": null,
"status": null,
"source_status": null,
"issued_on": null,
"expires_on": null,
"effective_date": null,
"last_checked_at": "2026-10-15T17:48:48.533586Z",
"country": "CA",
"region": "NS",
"municipality": "TORONTO",
"registration_entity_id": null,
"registry_number": null,
"business_number": null,
"quality": {
"holder_type_rule": "No published legal-form field; withhold unknown holder names",
"unknown_holder_type": true,
"unknown_licence_type": false,
"unknown_status": true,
"missing_licence_number": true,
"archived_register": true,
"register_updated_at": "2021-11-05T15:47:15+00:00"
},
"source": {
"id": "ca-ns-mortgage-broker-register-archive",
"record_id": "row-24cf-4jhe~be68",
"updated_at": null,
"observed_at": "2026-10-15T17:48:48.533586Z"
}
},
{
"id": "lic_vx3zageztjf5",
"licence_number": null,
"holder_name": null,
"holder_type": "unknown",
"licence_type": "mortgage_broker",
"source_licence_type": "Mortgage Broker",
"source_class": null,
"status": null,
"source_status": null,
"issued_on": null,
"expires_on": null,
"effective_date": null,
"last_checked_at": "2026-10-15T17:48:48.533586Z",
"country": "CA",
"region": "NS",
"municipality": "DARTMOUTH",
"registration_entity_id": null,
"registry_number": null,
"business_number": null,
…GET /v1/licences/{id}
Get Trade Licence
| Parameter | In | Type | Notes |
|---|---|---|---|
idrequired | path | string | – |
Example response · HTTP 200
{
"schema_version": "hillbase.v0",
"data": null,
"coverage": {
"capability": "trade_licences",
"status": "unavailable",
"outcome": "no_match",
"geography": "point",
"period": null,
"message": "Lake release is unavailable."
},
"quality": {
"basis": "published",
"effective_date": null,
"last_checked_at": null,
"limitations": [
{
"code": "absence_not_proof",
"message": "No matching record does not prove that none exists."
},
{
"code": "register_snapshot_not_live",
"message": "The register may have changed since this snapshot was checked."
},
{
"code": "registration_not_endorsement",
"message": "A registration or licence is not an endorsement of the business or its work."
}
]
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-15T17:59:13.986211Z"
}