topuniversities.com API: Get QS university profile
Finds a university's QS profile by name and returns its latest QS World University Ranking and overall score, location, student figures, faculty ratio, public tuition ranges and up to five listed subject ranks.
Unofficial. Not affiliated with or endorsed by topuniversities.com.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- University, required
university University name, for example University of Toronto.
Massachusetts Institute of Technology
Input as JSON
{ "university": "Massachusetts Institute of Technology"}Output
{ "city": "Cambridge", "country": "United States", "profile_link": "https://www.topuniversities.com/universities/massachusetts-institute-technology-mit" , "overall_score": 100, "total_students": 11694, "tuition_ranges": [], "university_name": "Massachusetts Institute of Technology (MIT)", "subject_rankings": [ { "rank": "#1", "subject": "Chemistry" }, { "rank": "#1", "subject": "Computer Science and Information Systems" }, { "rank": "#1", "subject": "Data Science and Artificial Intelligence" } ], "world_ranking_year": 2027, "world_ranking_position": "#1", "student_to_faculty_ratio": 4, "international_students_percent": 32.56}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"topuniversities.com/get_university","input":{"university":"Massachusetts Institute of Technology"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "topuniversities.com/get_university" , "input": { "university": "Massachusetts Institute of Technology" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "topuniversities.com/get_university" , "input": { "university": "Massachusetts Institute of Technology" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run topuniversities.com/get_university# with {"university":"Massachusetts Institute of Technology"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "university" ], "properties": { "university": { "type": "string", "minLength": 1, "description": "University name, for example University of Toronto." } }}Output schema
{ "type": "object", "required": [ "university_name", "world_ranking_position", "world_ranking_year", "overall_score", "city", "country", "total_students", "international_students_percent", "student_to_faculty_ratio", "tuition_ranges", "subject_rankings", "profile_link" ], "properties": { "city": { "type": [ "string", "null" ] }, "country": { "type": [ "string", "null" ] }, "profile_link": { "type": "string" }, "overall_score": { "type": [ "number", "null" ] }, "total_students": { "type": [ "integer", "null" ] }, "tuition_ranges": { "type": "array", "items": { "type": "string" } }, "university_name": { "type": "string" }, "subject_rankings": { "type": "array", "items": { "type": "object", "required": [ "subject", "rank" ], "properties": { "rank": { "type": "string" }, "subject": { "type": "string" } } } }, "world_ranking_year": { "type": [ "integer", "null" ] }, "world_ranking_position": { "type": [ "string", "null" ] }, "student_to_faculty_ratio": { "type": [ "integer", "null" ] }, "international_students_percent": { "type": [ "number", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
topuniversities.com/get_university- Returns
- university name, world ranking position and year, overall score, city, country, total students, international students percent, student-faculty ratio, tuition ranges, subject rankings, profile link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method topuniversities.com/get_university with the inputs above.
Ask your agent
- What's the latest QS World University Ranking and overall score for ETH Zurich?
- Pull up the QS profile for the University of Melbourne on topuniversities.com — I need total students, international percentage and student-faculty ratio.
- How much is tuition at Seoul National University, and where does it rank globally according to QS?
- Check topuniversities.com for Universidad de Buenos Aires: city, country, world rank and any subject rankings listed.
- I'm comparing schools for grad study — give me McGill University's QS overall score, rank year, and a link to its profile page.
See more
All topuniversities.com methodsLists the QS World University Rankings, or a QS subject ranking, for an edition and optionally one country, with each university's displayed rank, location, overall score and the indicator scores published for that table.
topuniversities.com/list_university_rankingsLooks up a university on Times Higher Education and returns its latest displayed world ranking, overall and pillar scores, student statistics and subject rankings.
timeshighereducation.com/get_universityLists THE World University Rankings for a year, optionally filtered by country, with displayed ranks, scores, student figures and university links. Subject rankings are supported by name.
timeshighereducation.com/list_university_rankingsSummarise an institution's research output from its name, including annual output, leading topics and authors. Annual citations count citations received by works published that year; leading authors are coauthors of institution-linked works, not necessarily employees.
openalex.org/get_institution_researchCompares 2 to 5 US colleges from College Scorecard by enrollment, admissions, cost after aid, graduation, 10-year earnings and graduation debt. Missing figures are null; names not found are listed separately.
collegescorecard.ed.gov/compare_collegesFinds a Forbes company profile by name and returns its Forbes list rankings, company facts and headline financial figures (Forbes list years; market value from the matching Global 2000 list).
forbes.com/get_company_rankingsGets a company's Trustpilot rating summary from its name or website: TrustScore, rating label, total reviews, star breakdown, categories, claimed status, reply statistics and location when shown.
trustpilot.com/get_company_ratingFinds a school on GreatSchools by name, city and state. Returns its ratings and key facts; anything the profile does not publish is null.
greatschools.org/get_school