Seneca Polytechnic APIsenecapolytechnic.ca ↗
Access Seneca Polytechnic program listings, course schedules, tuition costs, admission requirements, and transfer pathways via a structured REST API.
What is the Seneca Polytechnic API?
The Seneca Polytechnic API covers 9 endpoints that expose structured data across Seneca's full-time program catalog, including course breakdowns by semester, domestic and international tuition by academic year, and transfer pathways. list_programs returns every program name, code, and URL in a single call, while deeper endpoints like get_program_courses and get_program_costs let you drill into individual programs by their short program code.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/d7b64654-b785-4b27-a4aa-957f1f19c42c/list_programs' \ -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 senecapolytechnic-ca-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.
from parse_apis.seneca_polytechnic_programs_api import (
Seneca, ProgramSummary, Program, ProgramCosts, Pathway,
Area, Campus, Credential, ProgramType
)
seneca = Seneca()
# Search for business programs at Newnham campus
for program in seneca.programsummaries.search(area=Area.BUSINESS, campus=Campus.NEWNHAM, limit=5):
print(program.name, program.code, program.url, program.summary)
# List diploma programs using credential enum
for result in seneca.programsummaries.by_credential(credential=Credential.DIPLOMA, limit=3):
print(result.name, result.code)
# Filter by program type
for result in seneca.programsummaries.by_type(program_type=ProgramType.ONLINE, limit=3):
print(result.name, result.code, result.url)
# Get full program details via constructible Program
cpp = seneca.program(code="CPP")
costs = cpp.costs()
print(costs.program_code, costs.note)
for entry in costs.costs:
print(entry.academic_year, entry.tuition_domestic, entry.tuition_international)
# Get admission requirements
reqs = cpp.admission_requirements()
print(reqs.program_code, reqs.requirements_text)
# Navigate from summary to detail
bba = seneca.programsummary(code="BBA")
detail = bba.details()
print(detail.name, detail.code, detail.description)
for avail in detail.availability:
print(avail.term, avail.campus, avail.status)
# Sub-resource: courses organized by semester
for semester in bba.courses.list():
print(semester.semester)
for course in semester.courses:
print(course.code, course.name, course.description)
# Sub-resource: pathways beyond Seneca
for pathway in bba.pathways.list(limit=5):
print(pathway.type, pathway.program, pathway.institution, pathway.location, pathway.url)
Fetch the complete alphabetical listing of all Seneca Polytechnic full-time programs. Returns program names, codes, and URLs. No filtering — use search_programs for filtered results.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer total count of programs",
"programs": "array of program objects each containing name, code, and url"
},
"sample": {
"data": {
"total": 159,
"programs": [
{
"url": "https://www.senecapolytechnic.ca/programs/fulltime/DAN.html",
"code": "DAN",
"name": "3D Animation"
},
{
"url": "https://www.senecapolytechnic.ca/programs/fulltime/CPP.html",
"code": "CPP",
"name": "Computer Programming"
}
]
},
"status": "success"
}
}About the Seneca Polytechnic API
Program Discovery
list_programs returns a full catalog snapshot with each program's name, code, and URL — no filters required. For targeted queries, search_programs accepts up to four optional keyword parameters: area (e.g. Business, Health), campus (e.g. Newnham, King), credential (e.g. Diploma, Degree), and program_type (e.g. Online, Co-op). Results include a summary field alongside name, code, and URL. The dedicated list_programs_by_credential and get_program_by_type endpoints accept a single keyword and return the same result shape when you only need one filter axis.
Program Detail Endpoints
Passing a program_code (e.g. CPP, BBA) to get_program_overview returns structured details key-value pairs such as credential type, school, and duration, plus a description string and an availability array showing term, campus, and status combinations. get_program_courses organises courses into a semesters array; each semester contains a courses array with code, name, description, and delivery modes — useful for building semester-by-semester curriculum views.
Costs, Admissions, and Pathways
get_program_costs returns a costs array where each entry carries academic_year, tuition_domestic, and tuition_international, along with a note string containing disclaimers. get_program_admission_requirements returns a requirements_text string with prerequisite and course-requirement details. get_program_pathways returns a pathways array where each object includes type (to_seneca or beyond_seneca), program, institution, and url, covering both articulation credits coming in and university transfer routes going out.
The Seneca Polytechnic API is a managed, monitored endpoint for senecapolytechnic.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when senecapolytechnic.ca 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 senecapolytechnic.ca 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 program comparison tool that displays domestic vs. international tuition side-by-side using
get_program_costs - Generate a semester-by-semester course planner for any program using
get_program_courses - List all co-op or online programs available at Seneca using
search_programswith theprogram_typefilter - Map university transfer pathways for prospective students using
get_program_pathwayswithbeyond_senecatype objects - Create a credential browser that groups all diplomas, degrees, and graduate certificates using
list_programs_by_credential - Surface campus-specific program availability using
get_program_overviewand filtering theavailabilityarray by campus - Populate an admissions checklist application with prerequisite text from
get_program_admission_requirements
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Seneca Polytechnic have an official public developer API?+
What does `get_program_pathways` return and how are pathway types distinguished?+
get_program_pathways returns a pathways array where each entry has a type field set to either to_seneca (articulation credits from external programs into Seneca) or beyond_seneca (transfer routes from Seneca to universities). Each entry also includes program, institution, and url.Does `search_programs` support filtering by multiple criteria at once?+
search_programs accepts area, campus, credential, and program_type as independent optional parameters in a single request. All supplied filters are applied together, so passing campus=King and credential=Diploma returns only diploma programs available at the King campus.Are part-time or continuing education programs covered?+
Is there individual course detail beyond what appears in a program's course list?+
get_program_courses returns course code, name, description, and delivery modes as they appear within a program's semester structure, but there is no standalone course-lookup endpoint that returns a course independently of a program. You can fork this API on Parse and revise it to add a dedicated course detail endpoint.