Edu APIecontent.msbte.edu.in ↗
Access MSBTE diploma programs, courses, learning outcomes, and bilingual e-content materials via 11 structured endpoints covering Maharashtra technical education.
What is the Edu API?
The MSBTE E-Content API provides structured access to Maharashtra State Board of Technical Education's learning platform across 11 endpoints, covering programs, semesters, courses, course outcomes, and downloadable learning materials. The get_learning_materials endpoint returns file objects with direct download URLs, content descriptions, and file types, filtered by program code, semester, subject code, course outcome index, and content type.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/9d03bf3c-1806-4073-b125-482d7d76a1ce/get_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 econtent-msbte-edu-in-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: MSBTE E-Content SDK — browse programs, courses, outcomes, and materials."""
from parse_apis.msbte_e_content_api import MSBTE, Scheme, Semester2, CourseNotFound
client = MSBTE()
# List all available technical programs on the platform.
for program in client.programs.list(limit=5):
print(program.code, program.name)
# Construct a program by code and list its available semesters.
co_program = client.program("CO")
for sem in co_program.semesters(limit=5):
print(sem.value, sem.label)
# Get courses for semester 1 and drill into course outcomes.
course = co_program.courses(semester="1", limit=1).first()
if course:
for outcome in course.outcomes(program_code="CO", semester="1", limit=3):
print(outcome.id, outcome.text)
# Fetch content types available for the first outcome.
for ct in course.content_types(co_index="1", limit=5):
print(ct.code, ct.label)
# Search materials by keyword within a specific course, with error handling.
java_course = client.course("22412")
try:
for material in java_course.search(keyword="java", program_code="CO", semester="1", limit=3):
print(material.content, material.file.filename)
except CourseNotFound as exc:
print(f"Course not found: {exc.subject_code}")
# Browse Marathi bilingual materials and get a file URL.
for item in client.marathicontents.list(scheme=Scheme.I_SCHEME, limit=3):
print(item.course_code, item.title, item.file_url)
marathi_file = client.marathicontents.get_file(file_name="22102.pdf")
print(marathi_file.url)
# List curriculum programs for odd semesters.
for cp in client.curriculumprograms.list(semester=Semester2._1, limit=3):
print(cp.code, cp.name)
print("exercised: programs.list / semesters / courses / outcomes / content_types / search / marathicontents.list / get_file / curriculumprograms.list")
Returns the full list of all technical programs available on the MSBTE e-content platform. No parameters required. Each program has a two-letter code used as input to other endpoints.
No input parameters required.
{
"type": "object",
"fields": {
"programs": "array of objects with code (two-letter program code) and name (full program name)"
},
"sample": {
"data": {
"programs": [
{
"code": "CO",
"name": "CO - Computer Engineering"
},
{
"code": "ME",
"name": "ME - Mechanical Enginnering"
}
]
},
"status": "success"
}
}About the Edu API
Program and Course Structure
The API exposes the full MSBTE curriculum hierarchy. get_programs returns all available technical diploma programs as an array of objects with a two-letter code and full name. From there, get_semesters_by_program accepts a program_code (e.g. CO for Computer Engineering, ME for Mechanical) and returns the semesters available for that program as value and label pairs. get_courses_by_program_and_semester then resolves to a list of subjects with course_code and course_name for a given program-semester combination.
Course Outcomes and Learning Materials
get_course_outcomes accepts a semester, program_code, and subject_code and returns an array of course outcome objects, each with an id (index number) and text (outcome description). These outcome indices feed directly into get_content_types, which returns the available content categories for a subject-outcome pair as single-letter code values with display label strings. get_learning_materials then pulls actual e-content files: each material object includes a content description and a nested file object containing filename, file_type, and a direct url.
Search and Bilingual Content
search_learning_materials_by_keyword enables keyword search (e.g. java, inheritance) within a specific course. The co_index and content_type parameters are optional, so omitting them broadens the search across all outcomes and content types. The get_marathi_econtent_list endpoint returns bilingual Marathi-English materials grouped by engineering discipline, with fields for group, semester, course_code, title, and file_url. An optional scheme parameter accepts I (I-Scheme, current 22xxx course codes) or K (K-Scheme, older 31xxxx codes).
Curriculum Portal for Odd Semesters
get_135_semester_programs and get_135_semester_courses target a separate curriculum portal covering odd semesters (1, 3, 5). These endpoints return program lists and course listings respectively, though coverage is noted as limited — some program-semester combinations may return empty results. The get_marathi_econtent_file endpoint resolves a file name from the Marathi content list to a direct PDF URL, with no server-side validation of file existence.
The Edu API is a managed, monitored endpoint for econtent.msbte.edu.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when econtent.msbte.edu.in 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 econtent.msbte.edu.in 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 diploma curriculum browser showing programs, semesters, and subject lists using
get_programsandget_courses_by_program_and_semester. - Create a study resource finder that retrieves downloadable PDFs and videos via
get_learning_materialsfiltered by content type and course outcome. - Index MSBTE course outcomes for a learning management system using
get_course_outcomesacross all programs and semesters. - Implement keyword-based material search within a subject using
search_learning_materials_by_keywordwith optional CO and content type filters. - Aggregate bilingual Marathi-English course content by discipline and scheme using
get_marathi_econtent_listwith theschemeparameter. - Map curriculum coverage gaps by iterating
get_135_semester_coursesacross programs for odd semesters. - Generate subject-level content type availability reports by combining
get_content_typesoutput across multiple courses.
| 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 MSBTE provide an official developer API for econtent.msbte.edu.in?+
What does `get_learning_materials` return, and how do I narrow the results?+
get_learning_materials returns an array of material objects, each with a content description and a file object containing filename, file_type, and a direct download url. You narrow results by providing all five required parameters: co_index, semester, content_type, program_code, and subject_code. To retrieve materials across multiple content types or course outcomes, call the endpoint once per combination.Does the API cover even semesters (2, 4, 6) through the curriculum portal endpoints?+
get_135_semester_programs and get_135_semester_courses endpoints only accept odd semester values (1, 3, 5). Even semesters are not covered by those endpoints. The main get_courses_by_program_and_semester endpoint does handle even semesters via the standard program-semester flow. You can fork the API on Parse and revise it to add a dedicated even-semester curriculum portal endpoint if that data surface exists on the site.Does `get_marathi_econtent_file` confirm whether a file actually exists?+
file_name parameter without validating that the file is present on the server. You should use file names sourced from get_marathi_econtent_list to minimize broken links. There is no status field in the response indicating file availability.