Edu APImvit.edu.in ↗
Access MVIT faculty profiles, department-wise listings, and year-wise placement statistics via 3 structured endpoints. No scraping required.
What is the Edu API?
The MVIT API provides 3 endpoints for retrieving structured institutional data from Manakula Vinayagar Institute of Technology, Puducherry. The get_faculty endpoint returns complete department faculty rosters including each member's qualification, designation, specialization, and date of joining. Alongside faculty data, get_placement_stats surfaces multi-year recruitment records, and get_table_data exposes any structured data table on the MVIT site by numeric ID.
curl -X GET 'https://api.parse.bot/scraper/52107ca6-62dc-4450-ab0a-2f1247b50e54/get_faculty?department=eee' \ -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 mvit-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: MVIT College API — faculty, placements, and raw table data."""
from parse_apis.mvit_edu_in_api import Mvit, Department_, Sorting, DepartmentNotFound
client = Mvit()
# Fetch CSE department info and its faculty
dept = client.departments.get(department=Department_.CSE)
print(f"Department: {dept.department}, Total faculty: {dept.total_faculty}")
# List faculty members from the department
for member in dept.faculty.list(limit=3):
print(f" {member.name} — {member.designation}, {member.specialization}")
# Get placement statistics and iterate records
placement = client.placements.get()
for record in placement.records.list(limit=5):
print(f" Year {record.year}: {record.no_of_companies} companies, {record.no_of_students_placed} placed")
# Typed error handling: invalid department
try:
client.departments.get(department="invalid_dept")
except DepartmentNotFound as exc:
print(f"Error: {exc}")
# Fetch raw table data by ID with explicit sorting enum
table = client.table_datas.get(table_id="6469", sorting=Sorting.OLD_FIRST)
print(f"Table {table.table_id}: {table.total_rows} rows")
print("Exercised: departments.get / faculty.list / placements.get / records.list / table_datas.get")
Retrieve the complete faculty list for a specific department at MVIT. Returns each faculty member's name, qualification, designation, specialization, date of joining, and profile URL when available. Results are returned in a single page ordered by seniority.
| Param | Type | Description |
|---|---|---|
| departmentrequired | string | Department code to fetch faculty for. |
{
"type": "object",
"fields": {
"faculty": "array of faculty member objects with s_no, name, qualification, designation, specialization, date_of_joining, profile_url",
"department": "string",
"total_faculty": "integer"
},
"sample": {
"data": {
"faculty": [
{
"name": "Dr. S.Pariselvam",
"s_no": "1",
"designation": "Professor & HOD",
"profile_url": "https://mvit.edu.in/wp-content/Files/CSE/staffprofile/Pariselvam.pdf",
"qualification": "M.E., Ph.D.,",
"specialization": "Computer Science and Engineering",
"date_of_joining": "03.06.2009"
}
],
"department": "cse",
"total_faculty": 25
},
"status": "success"
}
}About the Edu API
Faculty Data
The get_faculty endpoint accepts a required department string parameter and returns an array of faculty objects. Each object includes s_no, name, qualification, designation, specialization, date_of_joining, and profile_url where available. Results are ordered by seniority and returned in a single page. The total_faculty integer in the response tells you how many records were found for the given department without needing to count the array manually.
Placement Statistics
get_placement_stats takes no inputs and returns a stats array of yearly records. Each record carries year, no_of_companies, no_of_students_attended, and no_of_students_placed, giving you a direct picture of recruitment volume over time. The total_records field indicates how many academic years of history are present in the response.
Generic Table Access
get_table_data is the general-purpose endpoint. Pass any numeric table_id — for example 6469 for placement batch details or 2774 for EEE faculty — and receive the corresponding rows as an array of objects whose keys match that table's schema. An optional sorting parameter controls row order. Note that HTML markup embedded in cell values is returned as-is, so consumers should plan for light sanitization depending on their rendering context. The total_rows integer is included alongside the rows array and the echoed table_id.
The Edu API is a managed, monitored endpoint for mvit.edu.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mvit.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 mvit.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 department directory page showing faculty names, designations, and specializations filtered by department code.
- Visualize MVIT's year-over-year placement trends using
no_of_companiesandno_of_students_placedfromget_placement_stats. - Compute placement rate per year by dividing
no_of_students_placedbyno_of_students_attended. - Link to individual faculty profile pages using the
profile_urlfield returned byget_faculty. - Access research publication tables or other institutional datasets using
get_table_datawith the relevanttable_id. - Compare seniority distribution across departments by analyzing
date_of_joiningvalues from multipleget_facultycalls. - Aggregate batch-wise placement details using
get_table_datawith table ID6469for downstream analysis.
| 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 MVIT provide an official public developer API?+
How do I fetch faculty for a specific department using `get_faculty`?+
department string parameter. The response includes a faculty array of objects with fields like name, qualification, designation, specialization, date_of_joining, and profile_url, plus a total_faculty count. All results for that department are returned in one page — there is no pagination parameter.Does `get_placement_stats` return data broken down by department or programme?+
get_placement_stats returns institution-level aggregates per academic year: no_of_companies, no_of_students_attended, and no_of_students_placed. Department or programme-level breakdowns are not currently exposed by this endpoint. You can use get_table_data with a relevant table_id to check whether such breakdowns exist in a specific table, or fork the API on Parse and revise it to add a dedicated endpoint.What should I expect when `get_table_data` returns HTML in cell values?+
rows array key names vary by table schema, so inspect a sample response for the specific table_id you are querying before building downstream transformations.