OpenAlex API: Get institution research summary
Summarise 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.
Unofficial. Not affiliated with or endorsed by OpenAlex.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Institution, required
institution Name of the university, hospital or company, for example MIT or Pfizer.
Pfizer
Input as JSON
{ "institution": "Pfizer"}Output
{ "city": "New York", "name": "Pfizer (United States)", "type": "company", "country": "United States", "homepage": "https://www.pfizer.com/" , "ror_link": "https://ror.org/01xdqrp08" , "top_topics": [ { "name": "Monoclonal and Polyclonal Antibodies Research", "works": 1328, "openalex_link": "https://openalex.org/T11016" }, { "name": "Health Systems, Economic Evaluations, Quality of Life", "works": 1291, "openalex_link": "https://openalex.org/T10804" }, { "name": "Computational Drug Discovery Methods", "works": 1289, "openalex_link": "https://openalex.org/T10211" } ], "top_authors": [ { "name": "Jie Jack Li", "works": 728, "openalex_link": "https://openalex.org/A5047418048" }, { "name": "Joseph C. Cappelleri", "works": 683, "openalex_link": "https://openalex.org/A5091669022" }, { "name": "Bradford D. Gessner", "works": 305, "openalex_link": "https://openalex.org/A5070628953" } ], "total_works": 43014, "openalex_link": "https://openalex.org/I180857899" , "total_citations": 8675601, "openalex_institution_id": "I180857899", "works_and_citations_by_year": [ { "year": 2017, "works": 1396, "citations": 67257 }, { "year": 2018, "works": 1496, "citations": 73092 }, { "year": 2019, "works": 1460, "citations": 55681 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"openalex.org/get_institution_research","input":{"institution":"Pfizer"}}' # 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": "openalex.org/get_institution_research" , "input": { "institution": "Pfizer" }})# 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": "openalex.org/get_institution_research" , "input": { "institution": "Pfizer" } }), 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 openalex.org/get_institution_research# with {"institution":"Pfizer"}"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": [ "institution" ], "properties": { "institution": { "type": "string", "minLength": 1, "description": "Name of the university, hospital or company, for example MIT or Pfizer." } }}Output schema
{ "type": "object", "required": [ "name", "type", "city", "country", "homepage", "total_works", "total_citations", "works_and_citations_by_year", "top_topics", "top_authors", "openalex_link", "openalex_institution_id", "ror_link" ], "properties": { "city": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "type": { "type": [ "string", "null" ], "description": "Institution category in words." }, "country": { "type": [ "string", "null" ] }, "homepage": { "type": [ "string", "null" ] }, "ror_link": { "type": [ "string", "null" ], "x-fous-developer": true }, "top_topics": { "type": "array", "items": { "type": "object", "required": [ "name", "works", "openalex_link" ], "properties": { "name": { "type": "string" }, "works": { "type": "integer", "minimum": 0 }, "openalex_link": { "type": "string" } }, "additionalProperties": false } }, "top_authors": { "type": "array", "items": { "type": "object", "required": [ "name", "works", "openalex_link" ], "properties": { "name": { "type": "string" }, "works": { "type": "integer", "minimum": 0 }, "openalex_link": { "type": "string" } }, "additionalProperties": false } }, "total_works": { "type": "integer", "minimum": 0 }, "openalex_link": { "type": "string" }, "total_citations": { "type": "integer", "minimum": 0 }, "openalex_institution_id": { "type": "string", "x-fous-developer": true }, "works_and_citations_by_year": { "type": "array", "items": { "type": "object", "required": [ "year", "works", "citations" ], "properties": { "year": { "type": "integer" }, "works": { "type": "integer", "minimum": 0 }, "citations": { "type": "integer", "minimum": 0 } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
openalex.org/get_institution_research- Returns
- name, type, location, homepage, totals, works and citations by year, top topics, top authors, links
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 openalex.org/get_institution_research with the inputs above.
Ask your agent
- Give me a research profile of ETH Zurich: how many papers they publish per year, their top research topics, and the most prolific authors on their papers.
- What are the main research areas and yearly publication counts for the Mayo Clinic according to OpenAlex?
- I need a quick overview of Novartis's scientific output — total works, citations by year, and leading topics.
- Pull up the OpenAlex summary for University of Cape Town, including its homepage, location, and top authors.
- How has Tsinghua University's publication volume and citation count changed over the years, and what fields does it focus on most?
See more
All OpenAlex methodsSearches OpenAlex scholarly works by topic, with optional institution, publication-year and open-access filters, ranked by relevance, citations or newest date.
openalex.org/search_papersFinds a Semantic Scholar author by name (optionally limited to a listed institution), picks the best-cited matching profile and returns their impact metrics and up to 10 most-cited papers.
semanticscholar.org/get_authorFinds 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.
topuniversities.com/get_universitySearches Semantic Scholar for research papers in relevance order, with field of study, year range and open-access filters, returning AI one-sentence summaries, citations and free PDF links when available.
semanticscholar.org/search_papersLooks up a researcher's public ORCID profile by name or ORCID iD, with employment, education, funding and up to 100 works. An institution helps tell namesakes apart; private entries are left out.
orcid.org/get_researcherLooks 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_universityFinds arXiv preprints by topic or title words, with optional author, subject, submission date range and sorting. Returns up to 100 papers with abstracts, subjects, dates and links.
arxiv.org/search_papersFinds a paper on Semantic Scholar by title, DOI or Semantic Scholar link and returns its abstract, one-sentence summary, authors, publication details, citation counts and a free PDF link when there is one.
semanticscholar.org/get_paper