Use case

Relocation and immigration services

Build a location briefing for a family choosing where to live. Combine school assignments, nearby services and census context without treating neighbourhood statistics as facts about a household.

Get an API keyEndpoint reference

Prepare a family briefing

Query address/profile for each candidate point and show schools, transit and nearby facilities together.

Explain school choices

Use official assignments where available. Nearby schools are alternatives to investigate, not a promise of admission.

Compare daily needs

Display transit stops and nearby places with their straight-line distances; these are not travel-time estimates.

Describe the neighbourhood

Use census and housing-market data as area-level context. Hillbase does not assess immigration eligibility or personal circumstances.

Built for

  • Relocation advisers
  • Newcomer settlement services
  • Housing search platforms

Endpoints

  • POST /v1/address/profile
  • POST /v1/school-assignments/resolve
  • GET /v1/transit
  • GET /v1/census

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.

Address-profile request
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 · transit 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": {
      "transit": {
        "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",
              "agency": "ca-bc-translink-transit:translink:TL",
              "stop_id": "5882",
              "stop_code": "55827",
              "name": "Northbound 124 St @ 75 Ave",
              "location": {
                "lat": 49.139771,
                "lng": -122.878926
              },
              "wheelchair_boarding": 2,
              "location_type": 0,
              "parent_station": null,
              "distance": {
                "km": 0.214,
                "method": "straight_line"
              },
              "routes": [
                {
                  "route_id": "6710",
                  "short_name": "329",
                  "long_name": "Surrey Central Station/Scottsdale",
                  "route_type": 3,
                  "weekday_trip_count": 10
                }
              ]
            }
          ],
          "total": 20,
          "radius_km": 1
        },
        "coverage": {
          "capability": "transit",
          "status": "supported",
          "outcome": "resolved",
          "geography": "CA/BC",
          "period": null,
          "message": "Scheduled GTFS stops within radius; route frequency counts trips on weekday service."
        },
        "quality": {
          "basis": "derived",
          "effective_date": null,
          "last_checked_at": "2026-10-07T00:52:36.818606Z",
          "limitations": []
        },
        "provenance": [
          {
            "source_id": "ca-bc-translink-transit",
            "source_updated_at": null,
            "observed_at": "2026-10-07T00:52:36.818606+00:00",
            "snapshot": "456b5dafe16d9c75ef5856913580432e9d96c139e4cef4a289f31f092af5f512"
          }
        ],
        "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

POST/v1/addresses/resolve
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"}'
Responsesupportedreal response, shortened
{
  "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"
}