Use case

Real-estate tools

Turn a listing's point into useful buyer context. Show designated schools separately from nearby schools, and preserve the coverage of every section.

Get an API keyEndpoint reference

Add context to a listing

Send the listing's coordinates to address/profile and render the relevant sections beside the listing.

Keep school claims precise

Use school_assignments for designated schools and schools_nearby for distance-based discovery. Confirm eligibility with the school authority.

Estimate carrying costs

Use property-tax/estimate for indicative residential tax where assessment values and rates are covered; read its exclusions before showing the estimate.

Compare a shortlist

Submit coordinates as a CSV batch and retain input indices when joining the results back to listings.

Built for

  • Listing portals
  • Brokerage applications
  • Buyer research tools

Endpoints

  • POST /v1/address/profile
  • GET /v1/property-tax/estimate
  • GET /v1/housing-market
  • POST /v1/batches

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 · 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

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"
}