For developers and research agents
Use MyCatchment's public school and catchment pages as ordinary HTML. A browser, search index, or research agent can read these pages without running the map or JavaScript. If your agent host can make HTTP requests, it can also consult the documented assessment API when that service is available.
Public evidence pages
Start with the school and catchment indexes, then cite the specific school or area page that supports an answer. Keep the page's date, missing-data notes, and caveats with the evidence. These pages remain useful when an agent cannot call an HTTP API.
HTTP assessment API
The production assessment API is available for configured coverage in Vancouver SD39 and North Vancouver SD44. Address outcomes may be unresolved, ambiguous, unsupported or unavailable, and requested school years remain unverified.
The API is intended for an HTTP-capable agent host. It does not install a connector or make a browser agent call HTTP automatically. The OpenAPI description documents the request, response, errors, and availability status.
Fictional example address; no authentication is required. This example shows the request format; outcomes vary with address resolution and catchment coverage. Do not send a real address until you have reviewed the service's data handling.
curl -X POST https://www.mycatchment.com/api/v1/assessments \
-H 'Content-Type: application/json' \
-d '{"addresses":["100 Example St, Vancouver, BC"],"schoolYear":"2026/27"}'School identity, ratings, and uncertainty
A resolved stage names the exact school and links to its canonical school page. Its rating is that individual school's MyCatchment rating on a 0–10 scale, not a district ranking or a family-specific prediction. A numeric zero is a rating. A null value means no rating is available for that school and includes an absence reason; it must not be converted to zero.
Any requested school year is unverified. A result can also report partial or unsupported geographic coverage, unresolved addresses, or an uncertain stage match. Preserve those statuses and limitations; do not fill in a missing or ambiguous school by inference.
Illustration from the committed dataset: these school names and ratings are current MyCatchment records, but this is not an address-specific result and does not assert that the sample address is assigned to these schools.
{
"schemaVersion": "2.0",
"datasetVersion": "assessment-4b94d4dba8a9d5d1c72c201fbe3adf4a30d7ac9fc63c906fc8521e74fc9cc9ad",
"requestedSchoolYear": "2026/27",
"notices": [
{
"code": "district_verification_required",
"version": "1",
"displayRequired": true,
"text": "Confirm the catchment school and enrolment requirements for your address and intended school year with the school district before making a housing or enrolment decision. MyCatchment's results are informational and do not guarantee admission, a place at a particular school, or program eligibility.",
"reference": "/about#what-this-doesnt-replace"
}
],
"results": [
{
"index": 0,
"resolution": "resolved",
"coverage": "supported",
"stages": [
{
"stageId": "elementary",
"label": "Elementary",
"match": "single",
"schools": [
{
"name": "David Livingstone Elementary",
"url": "/schools/david-livingstone-elementary",
"rating": {
"value": 9.6,
"scale": 10,
"methodologyRef": "/about#methodology",
"absenceReason": null
}
}
]
},
{
"stageId": "secondary",
"label": "Secondary",
"match": "single",
"schools": [
{
"name": "Sir Charles Tupper Secondary",
"url": "/schools/sir-charles-tupper-secondary",
"rating": {
"value": 4.9,
"scale": 10,
"methodologyRef": "/about#methodology",
"absenceReason": null
}
}
]
}
],
"schoolYearStatus": "unverified",
"limitations": [
"year_not_verified"
]
}
]
}Coverage, limits, and privacy
Current catchment coverage is Vancouver School District (SD39) and North Vancouver School District (SD44), covering Vancouver and North Vancouver. The public school directory may include schools outside these districts. The API accepts one to three addresses and an optional school year; request bodies are limited to 3,072 UTF-8 bytes and each address to 160 UTF-16 code units. Responses are marked no-store and capped at 16,384 UTF-8 bytes without truncation. The service allows two concurrent geocoder lookups, a 2,500 ms upstream timeout, and an 8,000 ms total request limit. Rate limits and service errors are described by the OpenAPI contract.
Requests contain address text. The service does not require an account, coordinates, or a family profile, and addresses are not returned in results. Application request handling does not log request bodies or results, and application telemetry excludes both. This does not verify logging across every hosting layer; review data handling before sending real addresses.
The API's required notice says: “Confirm the catchment school and enrolment requirements for your address and intended school year with the school district before making a housing or enrolment decision. MyCatchment's results are informational and do not guarantee admission, a place at a particular school, or program eligibility.” Preserve the complete notice whenever presenting results. See also what MyCatchment does not replace.