Use case
Property intelligence
Give buyers, renters, lenders and agents the context behind an address, with the source and coverage of every fact.
Which schools serve this address?
Official catchment boundaries where districts publish them, plus every school nearby across Canada.
How connected is it?
Closest transit stops with routes and weekday trip counts; everyday places within walking distance.
What can be built here?
Zoning designation, parcel and assessed values, and nearby building permits and development applications.
Any red flags?
Mapped flood, liquefaction, landslide and contamination areas, and regional crime statistics.
Built for
- Real-estate portals and brokerages
- Mortgage and insurance workflows
- Relocation and rental platforms
- Home-inspection and appraisal tools
Endpoints
POST /v1/address/profilePOST /v1/school-assignments/resolveGET /v1/zoningGET /v1/hazards
Start with one address
After creating a key, run this call for the captured Surrey point. The response excerpt is fixed; this page makes no data query.
curl --fail-with-body "https://api.hillbase.com/v1/address/profile" \
-H "X-API-Key: $HILLBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"point":{"lat":49.1416582,"lng":-122.8795092},"region":"BC","locality":"Surrey"}'Real captured response · school_assignments section excerpt. Captured values can differ from current data.
{
"schema_version": "hillbase.v0",
"quality": {
"basis": "mixed",
"effective_date": null,
"last_checked_at": null,
"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."
}
]
},
"data": {
"point": {
"lat": 49.1416582,
"lng": -122.8795092
},
"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,
"grade_end": null,
"boundary_version": "d43d656d971288cdbb153345c28c4a057d4dbe349cb51a990dc58b676856fdb9",
"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"
}
}
],
"coverage": {
"capability": "school_assignments",
"status": "supported",
"outcome": "resolved",
"geography": "point",
"period": null,
"message": null
},
"quality": {
"basis": "derived",
"effective_date": null,
"last_checked_at": "2026-10-08T23:37:04.966500Z",
"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."
}
]
},
"provenance": [
{
"source_id": "ca-bc-surrey-school-catchments",
"source_updated_at": null,
"observed_at": null,
"snapshot": null
}
],
"warnings": []
}
}
},
"retrieved_at": "2026-10-12T18:51:41.790023Z"
}Use each section's coverage to distinguish an empty result from missing coverage. Keep the point with the result so records from another location are not attached to your property.
See real responses
curl -X POST "https://api.hillbase.com/v1/addresses/resolve" \
-H "X-API-Key: $HILLBASE_API_KEY" -H "Content-Type: application/json" \
-d '{"line1":"100 Queen St W","city":"Toronto","region":"ON","country":"CA"}'{
"schema_version": "hillbase.v0",
"data": {
"point": {
"lat": 43.651504,
"lng": -79.382497
},
"geocode": {
"provider": "lake.address_points",
"score": null,
"precision": "civic_number",
"address": {
"line1": "100 Queen ST W",
"line2": null,
"city": "Toronto",
"region": "ON",
"postal_code": "M5H2N1",
"country": "CA"
}
}
},
"coverage": {
"capability": "address_resolution",
"status": "supported",
"outcome": "resolved",
"geography": "ON",
"period": null,
"message": "Address resolved; caller inputs are not stored."
},
"provenance": [],
"warnings": [],
"retrieved_at": "2026-10-12T18:52:01.220757Z"
}