NIRF India APInirfindia.org ↗
Access NIRF India rankings data across years 2017–2025. Get institution scores, rank bands, categories, participating colleges, and methodology parameters.
What is the NIRF India API?
The NIRF India API provides structured access to National Institutional Ranking Framework data through 7 endpoints covering rankings from 2017 to 2025. Use get_rankings_by_category to retrieve full score breakdowns for top-100 institutions across categories like Engineering, University, and Pharmacy, or pull rank-band slices beyond the top 100. The API also exposes participating institution lists, name-based search, ranking methodology parameters, and official NIRF notifications.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/4b2d8cc5-bb27-4960-94e1-b014fc507966/get_available_ranking_years' \ -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 nirfindia-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: NIRF India Rankings SDK — bounded, re-runnable; every call capped."""
from parse_apis.nirf_india_rankings_api import Nirf, Year, Category_, NotFoundError
nirf = Nirf()
# List available ranking years
for ry in nirf.rankingyears.list(limit=5):
print(ry.year)
# List available ranking categories for 2025
for cat in nirf.categories.list(year=Year.Y2025, limit=5):
print(cat.name, cat.slug, cat.url)
# Construct a category and browse its top-ranked institutions
engineering = nirf.category("Engineering")
for inst in engineering.rankings.list(year=Year.Y2025, limit=3):
print(inst.rank, inst.name, inst.city, inst.score, inst.pdf_report_url)
# Search within a category by institution name
overall = nirf.category("Overall")
result = overall.search_results.search(query="Indian Institute of Technology", year=Year.Y2025, limit=1).first()
if result:
print(result.institute_id, result.name, result.rank, result.score)
# List participating institutions
for participant in engineering.participants.list(year=Year.Y2024, limit=3):
print(participant.name, participant.city, participant.state)
# List NIRF methodology parameters with error handling
try:
for param in nirf.parameters.list(limit=3):
print(param.parameter, param.sub_parameters)
except NotFoundError as exc:
print(f"Parameters page not available: {exc}")
print("exercised: rankingyears.list / categories.list / rankings.list / search_results.search / participants.list / parameters.list")
Returns all available ranking years published on NIRF. Years range from 2017 to 2025 in descending order. No parameters required.
No input parameters required.
{
"type": "object",
"fields": {
"years": "array of year strings in descending order"
},
"sample": {
"data": {
"years": [
"2025",
"2024",
"2023",
"2022",
"2021",
"2020",
"2019",
"2018",
"2017"
]
},
"status": "success"
}
}About the NIRF India API
Rankings Data
get_rankings_by_category is the core endpoint. It accepts a year (2017–2025), a category slug (e.g. Overall, Engineering, Management), and an optional rank_band parameter. Without rank_band, it returns the top 100 ranked institutions with full score breakdowns and links to PDF report cards. With a rank_band value taken from available_rank_bands[*].rank_band_param in the response, it returns institutions in that extended band, though the data is limited to name, city, and state — score fields are not available for rank bands beyond the top 100.
Categories and Years
get_ranking_categories accepts an optional year and returns an array of category objects, each with a name, slug, and url. Category coverage expands over time: 2017 and 2018 have fewer categories than 2024 or 2025. Pass the slug values directly into get_rankings_by_category or get_participating_institutions_list. get_available_ranking_years takes no inputs and returns all published years as an array of strings in descending order.
Participating Institutions and Search
get_participating_institutions_list returns every institution that submitted data for a given year and category, including those not ranked in the top bands. It returns total_count plus an array of institution objects with name, city, and state. search_institutions_by_name accepts a query string and optionally a year and category, performing a case-insensitive substring match across the top 100 ranked institutions for that category. Results include institute_id, name, city, state, score, and rank.
Methodology and Notifications
get_nirf_parameters returns the official NIRF ranking methodology as an array of parameter objects, each with a parameter name and a sub_parameters list. This reflects NIRF's published scoring criteria. get_notifications returns recent official announcements and advertisements with title, url, and publication dates — useful for tracking ranking release schedules or policy updates.
The NIRF India API is a managed, monitored endpoint for nirfindia.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nirfindia.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 nirfindia.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 year-over-year ranking tracker for specific institutions using
get_rankings_by_categoryacross multiple years. - Generate a ranked leaderboard for a specific category (e.g. Pharmacy, Law) filtered to a particular state using city/state fields in ranking results.
- Identify which institutions participated but were not ranked by comparing
get_participating_institutions_listoutput againstget_rankings_by_categoryresults. - Power a college discovery tool that lets students search for institutions by partial name via
search_institutions_by_nameand view their rank and score. - Visualize NIRF scoring methodology by parsing the parameter and sub-parameter data from
get_nirf_parameters. - Monitor NIRF announcement timelines by polling
get_notificationsfor new PDF links and publication dates. - Compile a dataset of all ranked institutions across every available category for a given year for comparative analysis.
| 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 NIRF provide an official developer API?+
What data is available for institutions ranked outside the top 100?+
get_rankings_by_category returns only name, city, and state. Full score breakdowns — the detailed numeric scores present in top-100 results — are not available for extended rank bands. To explore those bands, use the rank_band_param values from available_rank_bands in any top-100 response.Does `search_institutions_by_name` search across all ranked institutions or only the top 100?+
category and year. Institutions that appear only in rank bands beyond 100, or that participated without receiving a rank, are not included in search results. The get_participating_institutions_list endpoint covers the broader set by name, city, and state.Does the API return historical score trends for a single institution across multiple years?+
year and category combination. There is no aggregated time-series endpoint that tracks a single institution's scores across years. You can fork this API on Parse and revise it to add a multi-year aggregation endpoint built on repeated calls to get_rankings_by_category.Are all NIRF categories available for every year from 2017 to 2025?+
get_ranking_categories with a specific year to see exactly which category slugs are available for that year before querying get_rankings_by_category.