# Research Organizations API
> Every research organization in the world as an API — powered by ROR, the Research Organization Registry. ROR assigns a persistent open identifier (a ROR ID) to universities, government labs, companies, nonprofits, hospitals, archives and research facilities, with rich, curated metadata and crosswalks to GRID, ISNI, Wikidata and the Crossref Funder Registry. Search the registry by name (and filter by country or organization type); resolve any ROR ID to its full record — names, acronyms and aliases, types, location (city, country, coordinates), website, domains, external identifiers and relationships to parent and child organizations; and match a messy free-text affiliation string ("Dept. of Physics, Heidelberg University, Germany") to the most likely organizations with a confidence score — perfect for cleaning and disambiguating author-affiliation data. It is a research-organization identifier registry, distinct from a plain university directory, and a natural companion to ORCID (for people) in any scholarly-metadata stack. Open data from ROR (CC0).

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/ror-api/..."
```

## Pricing
- **Free** (Free) — 3,000 calls/Mo, 2 req/s
- **Starter** ($8/Mo) — 60,000 calls/Mo, 8 req/s
- **Pro** ($25/Mo) — 280,000 calls/Mo, 20 req/s
- **Mega** ($64/Mo) — 980,000 calls/Mo, 50 req/s

## Endpoints

### Organizations

#### `GET /v1/affiliation` — Match an affiliation string to organizations

**Parameters:**
- `q` (query, optional, string) — A free-text affiliation string Example: `Heidelberg University`
- `limit` (query, optional, string) — Max matches (1-50, default 10)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ror-api/v1/affiliation?q=Heidelberg+University"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "matches": [
            {
                "name": "Heidelberg University",
                "score": 1,
                "types": [
                    "education"
                ],
                "chosen": false,
                "ror_id": "04rcqnp59",
                "status": "active",
                "ror_url": "https://ror.org/04rcqnp59",
                "location": {
                    "lat": 41.1145,
                    "lng": -83.17797,
                    "city": "Tiffin",
                    "country": "United States",
                    "country_code": "US"
                },
                "substring": "Heidelberg University",
                "established": 1850,
                "matching_type": "SINGLE SEARCH"
            },
            {
                "name": "Heidelberg University",
                "score": 1,
                "types": [
                    "education",
                    "funder"
                ],
                "chosen": false,
                "ror_id": "038t36y30",
                "status": "active",
                "ror_url": "https://ror.org/038t36y30",
                "location": {
                    "lat": 49.40768,
                    "lng": 8.69079,
                    "city": "Heidelberg",
                    "country": "Germany",
                    "country_code": "DE"
                },
                "substring": "Heidelberg University",
                "established": 1386,
   
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/org` — A single organization by ROR id

**Parameters:**
- `id` (query, optional, string) — A ROR id (from /v1/search) Example: `04rcqnp59`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ror-api/v1/org?id=04rcqnp59"
```

**Response:**
```json
{
    "data": {
        "organization": {
            "name": "Heidelberg University",
            "types": [
                "education"
            ],
            "ror_id": "04rcqnp59",
            "status": "active",
            "aliases": [
                "Heidelberg College"
            ],
            "domains": [],
            "ror_url": "https://ror.org/04rcqnp59",
            "website": "http://www.heidelberg.edu/",
            "acronyms": [],
            "location": {
                "lat": 41.1145,
                "lng": -83.17797,
                "city": "Tiffin",
                "country": "United States",
                "country_code": "US"
            },
            "wikipedia": "https://en.wikipedia.org/wiki/Heidelberg_University_(Ohio)",
            "established": 1850,
            "external_ids": {
                "grid": "grid.420674.3",
                "isni": "0000 0001 0696 6322",
                "wikidata": "Q5698693"
            },
            "relationships": []
        }
    },
    "meta": {
        "timestamp": "2026-06-01T16:23:03.658Z",
        "request_id": "f04847d4-50bb-4787-a1e3-44780b34ffea"
    },
    "status": "ok",
    "message": "Organization retrieved",
    "success": true
}
```

#### `GET /v1/search` — Search research organizations

**Parameters:**
- `q` (query, optional, string) — Name to search Example: `Heidelberg University`
- `country` (query, optional, string) — 2-letter country filter
- `type` (query, optional, string) — Type filter (education, government, company, …)
- `limit` (query, optional, string) — Max results (1-100, default 20)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ror-api/v1/search?q=Heidelberg+University"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "Heidelberg University",
        "total": 13102,
        "organizations": [
            {
                "name": "Heidelberg University",
                "types": [
                    "education"
                ],
                "ror_id": "04rcqnp59",
                "status": "active",
                "ror_url": "https://ror.org/04rcqnp59",
                "location": {
                    "lat": 41.1145,
                    "lng": -83.17797,
                    "city": "Tiffin",
                    "country": "United States",
                    "country_code": "US"
                },
                "established": 1850
            },
            {
                "name": "Heidelberg University",
                "types": [
                    "education",
                    "funder"
                ],
                "ror_id": "038t36y30",
                "status": "active",
                "ror_url": "https://ror.org/038t36y30",
                "location": {
                    "lat": 49.40768,
                    "lng": 8.69079,
                    "city": "Heidelberg",
                    "country": "Germany",
                    "country_code": "DE"
                },
                "established": 1386
            },
            {
                "name": "University Hospital Heidelberg",
                "types": [
                    "funder",
                    "healthcare"
                ],
                
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Endpoint catalogue & notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ror-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "ROR (the Research Organization Registry) gives every research-performing organization in the world a persistent open identifier (a ROR ID) — universities, government labs, companies, nonprofits, hospitals, archives and facilities — with rich metadata and crosswalks to GRID, ISNI, Wikidata and the Crossref Funder Registry. /v1/search?q=Heidelberg University = search the registry (optionally filter by country=DE or type=education/government/company/nonprofit/healthcare/facility/archive/funder/other), returning each org's ROR id, display name, types, established year and location; /v1/org?id=04rcqnp59 = a single organization's full record — names, acronyms and aliases, types, location (city, country, coordinates), website, domains, external ids (GRID/ISNI/Wikidata/Fundref) and relationships to parent/child organizations; /v1/affiliation?q=Department of Physics, Heidelberg University, Germany = match a free-text affiliation string to the most likely organizations, with a confidence score and a 'chosen' flag (ideal for cleaning author-affiliation data). ROR ids look like 04rcqnp59 (you may pass the full https://ror.org/ URL). Data from ROR (CC0). A research-organization identifier registry — distinct from a plain university directory. Ideal for scholarly metadata, author-affiliation disambiguation, CRIS/repository and research-analytics tools.",
        "source": "ROR — Research Organization Registry, v2 (ror.org)",
        "endpoints": [
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/ror-api
OpenAPI spec: https://www.oanor.com/api/ror-api/openapi.json
