| name | ror-organization-api |
| description | Identify and link research organizations via the ROR registry API |
| metadata | {"openclaw":{"emoji":"🏢","category":"literature","subcategory":"metadata","keywords":["ROR","research organizations","institution registry","affiliation","organization identifiers","ISNI"],"source":"https://ror.org/"}} |
ROR (Research Organization Registry) API
Overview
ROR is the community-led registry of open persistent identifiers for research organizations worldwide — 110,000+ entries covering universities, research institutes, government agencies, hospitals, and companies. The API enables affiliation disambiguation, institutional search, and metadata retrieval. Essential for bibliometrics, funder compliance, and research analytics. Free, no authentication required.
API Endpoints
Base URL
https://api.ror.org/v2
Search Organizations
curl "https://api.ror.org/v2/organizations?query=MIT"
curl "https://api.ror.org/v2/organizations?affiliation=Dept+of+CS,+Massachusetts+Inst+of+Technology"
curl "https://api.ror.org/v2/organizations?query=university&filter=locations.geonames_details.country_code:US"
curl "https://api.ror.org/v2/organizations?query=research&filter=types:facility"
Get Organization by ROR ID
curl "https://api.ror.org/v2/organizations/https://ror.org/042nb2s44"
curl "https://api.ror.org/v2/organizations/042nb2s44"
Query Parameters
| Parameter | Description | Example |
|---|
query | Text search | query=Harvard |
affiliation | Fuzzy affiliation match | affiliation=MIT Cambridge MA |
filter | Faceted filtering | filter=types:education |
page | Page number (1-based) | page=2 |
Organization Types
| Type | Description |
|---|
education | Universities, colleges |
facility | Research facilities, labs |
healthcare | Hospitals, medical centers |
company | Companies with research activities |
government | Government agencies |
nonprofit | Non-profit research organizations |
funder | Funding agencies |
archive | Archives, libraries |
Response Structure
{
"number_of_results": 3,
"items": [
{
"id": "https://ror.org/042nb2s44",
"names": [
{"value": "Massachusetts Institute of Technology", "types": ["ror_display"]},
{"value": "MIT", "types": ["acronym"]}
],
"types": ["education"],
"locations": [
{
"geonames_details": {
"country_code": "US"
Python Usage
import requests
BASE_URL = "https://api.ror.org/v2/organizations"
def search_organizations(query: str,
country: str = None,
org_type: str = None) -> list:
"""Search ROR for research organizations."""
params = {"query": query}
filters = []
if country:
filters.append(
f"locations.geonames_details.country_code:{country}")
if org_type:
filters.append(f"types:{org_type}")
if filters:
params["filter"] = ",".join(filters)
resp = requests.get(BASE_URL, params=params)
resp.raise_for_status()
data = resp.json()
results = []
for org in data.get("items", []):
display_name = next(
(n["value"] for n in org.get("names", [])
if "ror_display" in n.get("types", [])),
org.get("names", [{}])[0].get("value", ""),
)
acronyms = [n["value"] for n in org.get("names", [])
if "acronym" in n.get("types", [])]
loc = org.get(, [{}])[].get(, {})
results.append({
: org.get(),
: display_name,
: acronyms,
: org.get(, []),
: loc.get(),
: loc.get(),
: org.get(),
})
results
() -> :
resp = requests.get(
BASE_URL,
params={: affiliation_string},
)
resp.raise_for_status()
items = resp.json().get(, [])
items items[].get():
items[].get(, {})
items[] items {}
() -> :
resp = requests.get()
resp.raise_for_status()
resp.json()
orgs = search_organizations(, country=,
org_type=)
o orgs:
(
)
result = match_affiliation(
)
(
)
Use Cases
- Affiliation disambiguation: Clean messy author affiliation strings
- Bibliometric analysis: Aggregate publications by institution
- Funder compliance: Link outputs to institutional identifiers
- Research profiling: Map institutional research portfolios
- Collaboration networks: Trace inter-institutional partnerships
References