AA Data · API reference · v1 (2026-10-28)

One call per lot, with the clause behind each figure.

REST and JSON over HTTPS. Look a parcel up by address or point, read its record, or send up to 500 in one batch. The OpenAPI document is the full schema; this page is the short version.

Quickstart

Find a parcel, then read it.

Lookup returns matches with their ids, exact first. Pass an id to /v1/parcels/{id} for the full record. Base URL https://assetavenue.ca/api.

curl https://assetavenue.ca/api/v1/parcels/lookup \
  -G --data-urlencode "municipality=barrie" \
  --data-urlencode "address=40 Livingstone St E" \
  -H "Authorization: Bearer $AA_KEY"

Keys

One key per organisation, metered per call.

Send the key as a bearer token (X-Api-Key also works), never in the query string. aa_test_ keys are sandbox keys, limited to the pilot municipality and a monthly quota; aa_live_ keys follow your licence. Every response carries a request id.

Endpoints

6 calls.

GET/v1/coverage

Every municipality with its kind, status (available, preview, licence_pending), snapshot, record counts by status and licence

GET/v1/parcels/lookup

Find parcels by street address or by a point

municipality · address? · lat? · lng?

GET/v1/parcels/{id}

One record: a parcel (on-barrie-…) or an address (on-ottawa-…)

id

GET/v1/market/{municipality}

The municipality's rental market by CMHC survey zone, ten survey years, and the monthly rate series; no unit charged

municipality

GET/v1/profiles/{municipality}

Ward profiles: every source joined on the ward; no unit charged

municipality · ward?

POST/v1/parcels/batch

Up to 500 parcels by id or exact address; one unit per parcel answered

body: { parcels: [{ id } | { address, municipality }] }

The record

Read kind and status before any figure.

Each record carries the lot, its zoning, homes allowed as of right and by a committee decision, the building envelope, the clauses with page links, the rental market and rates, the fields withheld for licence reasons, and the snapshot and rule-pack version it came from.

GET /v1/parcels/on-barrie-3e37e08883c5f24a

{
  "address": "40 Livingstone St E",
  "ward": "3",
  "lot": { "areaM2": 181316, "frontageM": 447.62 },
  "zoning": { "zone": "C3", "bylaw": "2009-141" },
  "status": "ok",
  "homes": { "asOfRight": 803, "byDecision": 0 },
  "buildable": { "asOfRight": 147, "byDecision": 0 },
  "envelope": {
    "heightM": 6.2, "storeys": 2, "floorAreaM2": 108789
  },
  "citations": [
    { "clause": "6.3.4.4 a)",
      "url": "…/Zoning-Bylaw.pdf#page=89" },
    { "clause": "Table 6.3, Front yard (min.) (C3)",
      "url": "…/Zoning-Bylaw.pdf#page=87" }
  ],
  "market": {
    "survey": "October 2025",
    "zone": {
      "name": "Barrie",
      "averageRent": {
        "twoBed": { "value": 1749, "reliability": "a" }
      },
      "vacancyPct": {
        "total": { "value": 4.2, "reliability": "b" }
      }
    },
    "rates": {
      "posted5yrMortgagePct": { "value": 6.19 }
    }
  },
  "withheld": ["servicing", "supply", "variances"],
  "provenance": {
    "snapshot": "2026-10-04",
    "rulePack": "barrie-2009-141@2026-10-04.9"
  }
}

Barrie run of 4 October 2026, shortened. Field names may change before general release.

Statuses

Every record says how far it was read.

Never add figures across statuses. A lot with an unread exception carries the base zone’s figure and says so.

ok
Read in full: every clause that applies to the lot was applied.
exception_unread
The lot carries a site-specific exception not yet read; the figure is the base zone's.
split_zone
The lot lies in more than one zone; the figure is the zone at its interior point.
not_modelled
The lot's zone or by-law is not read yet; no figure.
not_developable
Rail, highway or similar corridor; no figure.
no_residential
The zone permits no dwelling.
no_envelope
No buildable area is left inside the required yards.
no_zone
No zone on the City's map at the lot.

Errors

One error shape, with a request id.

Errors return { error: { code, message, requestId } }.

400
Bad request: a required parameter is missing or malformed
401
Missing, malformed, unknown, revoked or expired key
403
The key lacks the scope, the product or the municipality, or the municipality is in preview (licence_pending)
404
No such record
429
Rate limit or monthly quota reached