HCDSB APIelem.hcdsb.org ↗
Retrieve news posts, announcements, and weekly updates from St. Michael Catholic Elementary School (HCDSB) via 2 JSON endpoints.
What is the HCDSB API?
This API provides access to school news and announcements from St. Michael Catholic Elementary School (HCDSB) through 2 endpoints. Use search_news to run keyword queries across all posts and retrieve paginated summaries — including title, date, excerpt, embedded links, and media references — then fetch the full post content using get_post with a numeric post ID.
curl -X GET 'https://api.parse.bot/scraper/c9977ce0-6f04-473c-b46a-a40c04b3e512/search_news?page=1&query=kindergarten&per_page=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace elem-hcdsb-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: St. Michael School News SDK — bounded, re-runnable; every call capped."""
from parse_apis.elem_hcdsb_org_api import StMichael, PostNotFound
client = StMichael()
# Search for kindergarten updates, capped at 3 results
for post in client.post_summaries.search(query="kindergarten", limit=3):
print(post.title, post.date, post.link)
# Drill down into the first result for full content
summary = client.post_summaries.search(query="kindergarten", limit=1).first()
if summary:
try:
full = summary.details()
print(full.title, full.date, full.modified)
print(full.content[:200])
for link in full.links[:3]:
print(link.text, link.url)
for img in full.media[:2]:
print(img.type, img.url)
except PostNotFound as e:
print(f"Post gone: {e.post_id}")
print("exercised: post_summaries.search, PostSummary.details")
Full-text search over school news posts. Results are ordered by relevance and include title, date, excerpt, embedded links, and media references. Use get_post with a returned id for the complete content.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results. |
| query | string | Search keyword to filter posts by content relevance. |
| per_page | integer | Number of posts per page (1-100). |
{
"type": "object",
"fields": {
"page": "current page number",
"posts": "array of post summaries with id, title, date, link, excerpt, links, and media",
"total": "total number of matching posts across all pages",
"total_pages": "total number of pages available"
},
"sample": {
"data": {
"page": 1,
"posts": [
{
"id": 15481,
"date": "2026-06-21T08:22:52",
"link": "https://elem.hcdsb.org/stmichael/2026/06/weekly-update-week-of-june-22-26/",
"links": [
{
"url": "https://example.com",
"text": "HERE"
}
],
"media": [
{
"alt": "",
"url": "https://elem.hcdsb.org/stmichael/wp-content/uploads/sites/28/2026/06/Screenshot.png",
"type": "image"
}
],
"title": "WEEKLY UPDATE: Week of June 22-26",
"excerpt": "As we near the end of this school year, we give thanks..."
}
],
"total": 142,
"total_pages": 48
},
"status": "success"
}
}About the HCDSB API
Endpoints and Response Data
The search_news endpoint accepts a query string for full-text filtering, a page integer for pagination, and a per_page integer (1–100) to control result size. Each result in the posts array includes an id, title, date, link, excerpt, an array of embedded links (each with text and url), and a media array. The response also surfaces total and total_pages so you can build reliable paginated clients without guessing result counts.
Full Post Retrieval
Once you have a numeric post ID from search_news, get_post returns the complete record: full content text, title, date, modified, the canonical link, all embedded links, and every media item (images with type, url, and alt text). The modified field lets you detect updated posts and avoid stale cached content.
Data Coverage
Both endpoints cover the public news feed at St. Michael Catholic Elementary School within the Halton Catholic District School Board (HCDSB). Content includes weekly updates, seasonal announcements, event notices, and curriculum news. Posts vary in length and media density; use search_news with targeted keywords like "kindergarten" or "newsletter" to narrow results before pulling full content with get_post.
The HCDSB API is a managed, monitored endpoint for elem.hcdsb.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when elem.hcdsb.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official elem.hcdsb.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a parent-facing notification app that surfaces new school announcements by querying
search_newswith relevant keywords. - Archive all published school news posts by paginating through
search_newsand storingcontentanddatefields. - Extract embedded resource links from post content using the
linksarray to compile a directory of referenced external materials. - Track post updates by comparing
modifieddates fromget_postagainst previously cached versions. - Generate a media gallery of school event images by collecting
mediaitems across multiplesearch_newsresult pages. - Filter posts mentioning specific programs (e.g. 'French immersion') using the
queryparameter and displayexcerptsummaries in a dashboard.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does elem.hcdsb.org provide an official developer API?+
What does `search_news` return for each post in the results?+
posts array includes a numeric id, title, date, link, excerpt, an array of embedded links (each with text and url), and a media array of image references. The response also includes total and total_pages for paginated access. Full post content is only available through get_post.How do I get the complete text of a post instead of just an excerpt?+
id returned by search_news as the post_id input to get_post. That endpoint returns the full content field along with all links, media, date, modified, and the canonical link URL.Does the API cover news from other HCDSB schools?+
Are calendar events, staff directories, or school schedules available?+
title, content, date, links, and media. Calendar events, staff listings, and bell schedules are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those sections of the school site.