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

Parameters for POST /v1/addresses/resolve
ParameterInTypeNotes
line1requiredbodystringmax 300 chars
line2bodystringdefault ""
cityrequiredbodystringmax 160 chars
regionrequiredbodystringmax 80 chars
postal_codebodystringdefault ""
countrybodystringdefault "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.

Parameters for POST /v1/address/profile
ParameterInTypeNotes
addressbodyAddressInput–
pointbodyPoint–
regionbodystring–
localitybodystring–
amenities_radius_kmbodynumberdefault 1
schools_radius_kmbodynumberdefault 2
include_civic_numbersbodybooleandefault 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)

Parameters for GET /v1/addresses/nearby
ParameterInTypeNotes
latrequiredquerynumber41.5–84
lngrequiredquerynumber-142–-52
radius_mquerynumber0–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

Parameters for GET /v1/schools
ParameterInTypeNotes
qquerystringName or city substring · max 100 chars
regionquerystringProvince/territory code or name
latquerynumber-90–90
lngquerynumber-180–180
radius_kmquerynumber0–5 · default 5
limitqueryinteger1–20 · default 20
offsetqueryinteger0–10000 · default 0
has_catchmentquerybooleanFilter 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

Parameters for GET /v1/schools/{school_id}
ParameterInTypeNotes
school_idrequiredpathstring–
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

Parameters for GET /v1/schools/{school_id}/catchment
ParameterInTypeNotes
school_idrequiredpathstring–
school_yearquerystringmax 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

Parameters for GET /v1/schools/{school_id}/profile
ParameterInTypeNotes
school_idrequiredpathstring–
categoryquerystringSchool 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.

Parameters for POST /v1/school-assignments/resolve
ParameterInTypeNotes
addressbodyAddressInput–
pointbodyPoint–
gradebodystringK or 1–12; boundaries without a grade band are excluded
programbodystringExact program name, e.g. Regular
school_yearbodystringYYYY-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

Parameters for GET /v1/amenities
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–5 · default 1
categoryquerystringmax 40 chars
limitqueryinteger1–20 · default 10
per_category_limitqueryinteger1–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

Parameters for GET /v1/facilities
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–10 · default 1
typequerystring–
newcomer_servicesqueryboolean–
limitqueryinteger1–100 · default 20
offsetqueryinteger≥ 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

Parameters for GET /v1/parks
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–20 · default 2
limitqueryinteger1–100 · default 20
offsetqueryinteger≥ 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

Parameters for GET /v1/transit
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–1 · default 0.5
limitqueryinteger1–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

Parameters for GET /v1/permits
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–2 · default 0.5
sincequerystring (date)Only permits issued on or after this date
work_typequerystringCanonical code, e.g. new_building · max 80 chars
statusquerystringCanonical status: applied, issued, closed, cancelled, unknown; default all
kindquerystringPermit kind: building or development; default all
limitqueryinteger1–50 · default 20
offsetqueryinteger≥ 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

Parameters for GET /v1/permits/stats
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–5 · default 1
sincequerystring (date)–
untilquerystring (date)–
work_typequerystringmax 80 chars
statusquerystringCanonical 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

Parameters for GET /v1/permits/{permit_id}
ParameterInTypeNotes
permit_idrequiredpathstring–
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.

Parameters for GET /v1/property-tax/estimate
ParameterInTypeNotes
pidquerystringmax 32 chars
latquerynumber-90–90
lngquerynumber-180–180
assessed_valuequerynumberCaller-supplied assessed value in CAD. · ≥ 0
assessment_yearqueryintegerCaller assessment year; omitted uses latest rates. · 1900–2200
property_classquerystringCanonical 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

Parameters for GET /v1/property-values
ParameterInTypeNotes
pidquerystringmax 32 chars
latquerynumber-90–90
lngquerynumber-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

Parameters for GET /v1/parcels
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-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

Parameters for GET /v1/parcels/{parcel_id}
ParameterInTypeNotes
parcel_idrequiredpathstring–
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

Parameters for GET /v1/zoning
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-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

Parameters for GET /v1/crime
ParameterInTypeNotes
regionquerystringProvince code or name, e.g. BC
localityquerystringMunicipality name, e.g. Surrey · max 120 chars
latquerynumber-90–90
lngquerynumber-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

Parameters for GET /v1/crime/local
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
monthsqueryinteger1–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

Parameters for GET /v1/hazards
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-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

Parameters for GET /v1/census
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
topicquerystringmax 120 chars
fullquerybooleandefault 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

Parameters for GET /v1/businesses
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–2 · default 0.5
categoryquerystring–
licence_typequerystring–
statusquerystring–
limitqueryinteger1–100 · default 20
offsetqueryinteger≥ 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

Parameters for GET /v1/businesses/{business_id}
ParameterInTypeNotes
business_idrequiredpathstring–
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

Parameters for GET /v1/business-registrations
ParameterInTypeNotes
qquerystringmax 100 chars
provincequerystring–
regionquerystring–
registry_numberquerystringmax 100 chars
limitqueryinteger1–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.

Parameters for POST /v1/batches
ParameterInTypeNotes
sectionsquerystring–
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

Parameters for GET /v1/batches/{job_id}
ParameterInTypeNotes
job_idrequiredpathstring–
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

Parameters for DELETE /v1/batches/{job_id}
ParameterInTypeNotes
job_idrequiredpathstring–
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

Parameters for GET /v1/batches/{job_id}/results
ParameterInTypeNotes
job_idrequiredpathstring–
formatquery"jsonl" | "csv"default "jsonl"
offsetqueryinteger≥ 0 · default 0
limitqueryinteger1–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

Parameters for POST /v1/signals
ParameterInTypeNotes
capabilitybody"building_permits" | "development_applications" | "tenders" | "charities" | "road_restrictions"default "building_permits"
namerequiredbodystringmax 200 chars
arearequiredbodyRadiusArea | LocalityArea | RegionArea–
filtersbodySignalFilters–
webhook_urlbodystring–
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

Parameters for GET /v1/signals/{signal_id}
ParameterInTypeNotes
signal_idrequiredpathstring–
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

Parameters for DELETE /v1/signals/{signal_id}
ParameterInTypeNotes
signal_idrequiredpathstring–
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

Parameters for GET /v1/signals/{signal_id}/matches
ParameterInTypeNotes
signal_idrequiredpathstring–
sincequerystring (date-time)–
limitqueryinteger1–100 · default 50
offsetqueryinteger≥ 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

Parameters for GET /v1/signals/{signal_id}/digest
ParameterInTypeNotes
signal_idrequiredpathstring–
daterequiredquerystring (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

Parameters for GET /v1/housing-market
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
periodquerystringmax 80 chars
limitqueryinteger1–1000 · default 500
offsetqueryinteger0–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

Parameters for GET /v1/postal-areas
ParameterInTypeNotes
fsaquerystringmax 3 chars
latquerynumber-90–90
lngquerynumber-180–180
tablequerystringdefault "98100019"
limitqueryinteger1–1000 · default 500
offsetqueryinteger0–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)

Parameters for POST /v1/monitors
ParameterInTypeNotes
kindbodystringdefault "permits_near_point"
paramsrequiredbodyobject–
webhook_urlbodystring–
sincebodystring (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

Parameters for GET /v1/monitors/{monitor_id}
ParameterInTypeNotes
monitor_idrequiredpathstring–
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

Parameters for DELETE /v1/monitors/{monitor_id}
ParameterInTypeNotes
monitor_idrequiredpathstring–
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)

Parameters for GET /v1/monitors/{monitor_id}/events
ParameterInTypeNotes
monitor_idrequiredpathstring–
limitqueryinteger1–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

Parameters for POST /v1/monitors/{monitor_id}/evaluate
ParameterInTypeNotes
monitor_idrequiredpathstring–
sincequerystring (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

Parameters for GET /v1/coverage
ParameterInTypeNotes
include_municipalitiesquerybooleanInclude 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

Parameters for GET /v1/food-inspections
ParameterInTypeNotes
latquerynumber-90–90
lngquerynumber-180–180
radius_mquerynumber0–5000 · default 500
regionquerystring–
record_numberquerystringmax 100 chars
entity_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/food-inspections/at-point
ParameterInTypeNotes
latquerynumber-90–90
lngquerynumber-180–180
radius_mquerynumber0–5000 · default 50
regionquerystring–
record_numberquerystringmax 100 chars
entity_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/enforcement
ParameterInTypeNotes
latquerynumber-90–90
lngquerynumber-180–180
radius_mquerynumber0–5000 · default 500
regionquerystring–
record_numberquerystringmax 100 chars
entity_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/short-term-rentals
ParameterInTypeNotes
latquerynumber-90–90
lngquerynumber-180–180
radius_mquerynumber0–5000 · default 500
regionquerystring–
record_numberquerystringmax 100 chars
entity_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/short-term-rentals/at-point
ParameterInTypeNotes
latquerynumber-90–90
lngquerynumber-180–180
radius_mquerynumber0–5000 · default 50
regionquerystring–
record_numberquerystringmax 100 chars
entity_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/enforcement/at-point
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–5000 · default 500
regionquerystring–
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.

Parameters for GET /v1/building-energy
ParameterInTypeNotes
address_idrequiredquerystringmax 200 chars
yearqueryinteger1900–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

Parameters for GET /v1/collisions/at-point
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–5000 · default 500
periodquery"year" | "month"default "month"
regionquerystring–
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

GET /.well-known/oauth-authorization-server

Authorization Metadata

POST /oauth/register

Register

GET /oauth/authorize

Authorize

POST /oauth/token

Token

POST /oauth/revoke

Revoke Token

GET /v1/representatives

Representatives

Parameters for GET /v1/representatives
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-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

Parameters for GET /v1/broadband
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-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

Parameters for GET /v1/ev-charging
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_kmquerynumber0–50 · default 5
limitqueryinteger1–100 · default 20
offsetqueryinteger≥ 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

Parameters for GET /v1/land-constraints
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–10000 · default 250
limitqueryinteger1–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

Parameters for GET /v1/urban-trees/near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–2000 · default 500
limitqueryinteger1–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

Parameters for GET /v1/active-travel/near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–2000 · default 500
modequery"cycling" | "sidewalk" | "walkway" | "pathway"–
limitqueryinteger1–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

Parameters for GET /v1/site-conditions
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
civic_addressquerystringmax 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

Parameters for GET /v1/air-quality/near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
max_distance_mquerynumber0–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

Parameters for GET /v1/environment/facilities-near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–10000 · default 5000
limitqueryinteger1–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

Parameters for GET /v1/economic-indicators
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
indicatorquerystringmax 100 chars
occupationquerystring–
limitqueryinteger1–1000 · default 500
offsetqueryinteger0–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

Parameters for GET /v1/economic-indicators/series
ParameterInTypeNotes
indicatorrequiredquerystringmax 100 chars
arearequiredquerystringmax 100 chars
occupationquerystring–
limitqueryinteger1–1000 · default 500
offsetqueryinteger0–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

Parameters for GET /v1/health-facilities/status-near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–50000 · default 10000
limitqueryinteger1–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

Parameters for GET /v1/health-indicators/at-point
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
periodquerystring–
limitqueryinteger1–500 · default 100
offsetqueryinteger0–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

Parameters for GET /v1/charities
ParameterInTypeNotes
qquerystringmax 100 chars
regionquerystring–
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/charities/{id}
ParameterInTypeNotes
idrequiredpathstring–
history_limitqueryinteger1–100 · default 100
history_offsetqueryinteger0–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

Parameters for GET /v1/tenders
ParameterInTypeNotes
qquerystringmax 100 chars
categoryquerystring–
regionquerystring–
statusquerystring–
sincequerystring (date)–
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/awards
ParameterInTypeNotes
qquerystringmax 100 chars
business_idquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/programs
ParameterInTypeNotes
jurisdictionquerystring–
categoryquerystring–
audiencequerystring–
statusquerystring–
qquerystringmax 100 chars
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for POST /v1/programs/screen
ParameterInTypeNotes
facts_versionbodystringdefault "program_facts.v1"
factsrequiredbodyProgramFacts–
jurisdictionbodystring–
latbodynumber-90–90
lngbodynumber-180–180
addressbodyAddress-Input–
as_ofbodystring (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

Parameters for GET /v1/programs/{program_id}
ParameterInTypeNotes
program_idrequiredpathstring–
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

Parameters for POST /v1/programs/{program_id}/estimate
ParameterInTypeNotes
program_idrequiredpathstring–
factsrequiredbodyProgramFacts–
as_ofbodystring (date)–
version_idbodystringmax 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

Parameters for GET /v1/development-applications
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–25000 · default 500
statusquerystring–
sincequerystring (date)Published submission date, falling back to status or decision date
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/development-applications/{application_id}
ParameterInTypeNotes
application_idrequiredpathstring–
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.

Parameters for POST /v1/reports/property
ParameterInTypeNotes
addressbodyAddressInput–
pointbodyPoint–
regionbodystring–
localitybodystring–
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

Parameters for GET /v1/trade-licences
ParameterInTypeNotes
qquerystringmax 100 chars
namequerystringmax 100 chars
numberquerystringmax 100 chars
typequerystring–
regionquerystring–
licence_typequerystring–
statusquerystring–
licence_numberquerystringmax 100 chars
latquerynumber-90–90
lngquerynumber-180–180
radius_kmquerynumber0–5 · default 1
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/trade-licences/{id}
ParameterInTypeNotes
idrequiredpathstring–
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

Parameters for GET /v1/traffic/near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–50000 · default 1000
countryquerystringdefault "CA"
regionquerystring–
modequery"vehicle" | "pedestrian" | "cyclist"–
measurequery"aadt" | "aawdt" | "adt" | "weekday_adt" | "weekend_adt" | "sadt" | "sawdt" | "wadt" | "waadt" | "count" | "daily_volume"–
sincequerystring–
latestquerybooleandefault true
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/climate-projections/at-point
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
scenarioquery"ssp245" | "ssp585"default "ssp245"
periodquery"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

Parameters for GET /v1/waste-collection/at-address
ParameterInTypeNotes
address_idrequiredquerystring–
datequerystring (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

Parameters for GET /v1/road-restrictions/near
ParameterInTypeNotes
latrequiredquerynumber-90–90
lngrequiredquerynumber-180–180
radius_mquerynumber0–5000 · default 1000
atquerystring (date-time)–
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/licences
ParameterInTypeNotes
qquerystringmax 100 chars
namequerystringmax 100 chars
numberquerystringmax 100 chars
typequerystring–
regionquerystring–
licence_typequerystring–
statusquerystring–
licence_numberquerystringmax 100 chars
latquerynumber-90–90
lngquerynumber-180–180
radius_kmquerynumber0–5 · default 1
limitqueryinteger1–100 · default 20
offsetqueryinteger0–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

Parameters for GET /v1/licences/{id}
ParameterInTypeNotes
idrequiredpathstring–
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"
}