# Nederlands onderzoek in OpenAlex, OpenAIRE, ROR en DataCite

Vier open registers samen geven een beeld van Nederlands onderzoek. OpenAlex (CC0) kent 2.169.548 publicaties met minstens één Nederlandse instelling, waarvan 101.270 uit 2025, en 1.869 Nederlandse instellingen. OpenAIRE Graph telt 3.718.728 onderzoeksproducten met land NL. ROR geeft 1.916 Nederlandse organisaties een vaste identifier. DataCite heeft de DOI's van datasets, ook van DANS en 4TU.ResearchData. Allemaal zonder sleutel (stand 16 oktober 2026).

- Uitgever: OpenAlex (OurResearch)
- Gebied: Wereld · Laagste detail: publicatie
- Periode: alle jaren (de grafieken hier vanaf 2000) · Ververst: dagelijks
- Toegang: Open · Licentie: OpenAlex CC0; ROR CC0; DataCite-metadata CC0; OpenAIRE Graph CC BY
- Koppelsleutels: DOI, ROR-id (bv. https://ror.org/04pp8hn57 voor Universiteit Utrecht), OpenAlex-id (W…, I…, A…), ORCID
- Status: ok (2026-10-15) · 2.168.750 werken met een Nederlandse instelling (OpenAlex)
- URL: https://openalex.org

## Wat kun je ermee?
- **Hoeveel publiceert een universiteit?.** Filter op een instelling via ROR en tel per jaar. Universiteit Utrecht had in 2025 10.012 publicaties in OpenAlex (via het ROR-id), 10.031 met haar onderdelen meegeteld.
- **Hoe open is Nederlands onderzoek?.** Van de 101.270 publicaties uit 2025 met een Nederlandse instelling waren er 14.432 gesloten (14 procent). De rest is op een manier vrij te lezen: hybride, goud, groen, diamant of brons.
- **Met welke landen werkt Nederland samen?.** Groepeer de Nederlandse publicaties op authorships.countries. In 2025 waren dat het vaakst de Verenigde Staten (19.369), Duitsland (17.444) en het Verenigd Koninkrijk (17.367).
- **Bestaat die studie?.** Een factchecker kan met een DOI of titel in OpenAlex nagaan wie de auteurs zijn, bij welke instelling, in welk tijdschrift en hoe vaak het geciteerd is.

## Zo verwerk je het
1. **Tellen per jaar in één aanroep.** filter= beperkt (land, jaar, instelling, type), group_by= telt. Elke group_by kost $0,0001 van het gratis dagbudget; per_page tot 200.
   `https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2000-2025&group_by=publication_year`
2. **Eén instelling.** Zoek het ROR-id op in ROR (gratis, max 2.000 verzoeken per 5 minuten) en filter OpenAlex daarop met institutions.ror.
   `https://api.openalex.org/works?filter=institutions.ror:https://ror.org/04pp8hn57,publication_year:2025&group_by=open_access.oa_status`
3. **OpenAIRE voor Europese projecten.** OpenAIRE Graph koppelt publicaties en data aan projecten en financiers. Gebruik /graph/v1 of v2; het pad /graph/v3 uit oudere lijsten gaf 405.
   `https://api.openaire.eu/graph/v1/researchProducts?countryCode=NL&pageSize=1`
4. **Datasets via DataCite.** DataCite registreert DOI's voor data. Filter op het voorvoegsel van een archief (DANS 10.17026, 4TU 10.4121) en op published= voor het publicatiejaar. Met een e-mailadres in de user-agent mag je 1.000 verzoeken per 5 minuten doen.
   `https://api.datacite.org/dois?prefix=10.4121&published=2025&page%5Bsize%5D=1`

## Interessante koppelingen
- Publiceren grote universiteiten ook naar verhouding meer? → [duo-onderwijsdata](https://www.opendataindex.nl/bron/duo-onderwijsdata.md) via instelling (naam, ROR-id en BRIN met de hand gekoppeld). Deel het aantal publicaties per universiteit door het aantal studenten uit de DUO-cijfers. Een koppeltabel tussen ROR en BRIN moet je zelf maken.
- Welke publicaties gebruiken deze dataset? → [dans-datastations](https://www.opendataindex.nl/bron/dans-datastations.md) via DOI. Zoek de DOI van een DANS-dataset in OpenAlex om te zien welke artikelen ernaar verwijzen.

## Vergelijkbare bronnen
- [dans-datastations](https://www.opendataindex.nl/bron/dans-datastations.md): De onderzoeksdata zelf (enquêtes, archeologie), niet de publicaties.
- [4tu-researchdata](https://www.opendataindex.nl/bron/4tu-researchdata.md): Technische onderzoeksdata van de 4TU-universiteiten, met de bestanden.
- [Crossref](https://www.crossref.org/documentation/retrieve-metadata/rest-api/): De bron van veel DOI-metadata van tijdschriften, maar zonder filter op land of instelling; OpenAlex bouwt erop voort.

## Waar je op moet letten
- **Een publicatie telt bij elke instelling.** Een artikel met auteurs van drie universiteiten telt bij alle drie. Optellen per instelling geeft dus meer dan het totaal; noem dat bij een ranglijst.
- **Standaard alleen de kern.** Sinds november 2025 heeft OpenAlex een kern en een uitbreiding van ongeveer 190 miljoen extra werken (vooral datasets en repositoryrecords). Zonder corpus=all tel je alleen de kern; zeg welke je gebruikt.
- **Gratis, maar met een budget.** Zonder sleutel deel je een dagbudget van $0,10 met iedereen op hetzelfde IP-adres. Sorteren op updated_date vraagt een betaald abonnement (getest: 'Plan upgrade required').
- **Affiliaties zijn niet foutloos.** OpenAlex leidt instellingen af uit de tekst van affiliaties. Ziekenhuizen, onderdelen en fusies worden niet altijd goed toegewezen; controleer bij een opvallend cijfer een paar werken met de hand.
- **Verschillende tellingen.** OpenAIRE (3,7 miljoen onderzoeksproducten met land NL) en OpenAlex (2,2 miljoen werken met een Nederlandse instelling) tellen anders. Vergelijk geen cijfers uit de twee alsof ze hetzelfde meten.

## API (REST (JSON), OpenAlex)

- Basis: https://api.openalex.org
- Toegang: Geen sleutel nodig. Zonder sleutel deel je in OpenAlex een gratis dagbudget van 0,10 dollar met iedereen op hetzelfde IP-adres; elk antwoord meldt de kosten in de kop X-RateLimit-Cost-USD. Een eigen (gratis) sleutel geeft een eigen budget; wij hebben er geen aangevraagd. (getest)
- Formaten: json
- Omvang: 2170104 werken in OpenAlex met minstens één Nederlandse instelling (kern, 16 okt 2026) (getest)
- Filteren: OpenAlex-filters in één parameter: veld:waarde, gescheiden door komma's (EN); | binnen een waarde is OF, ! ervoor is NIET, bereik met een streepje.; ,, |, !, a-b, >, <

### Endpoints
- `GET /works`: Publicaties en andere werken; met filter=, search=, group_by=, sort=, select=, per_page= en cursor=.
- `GET /works/{id}`: Eén werk op OpenAlex-id (W…) of als /works/doi:10.…; kost niets van het dagbudget.
- `GET /institutions`: Instellingen (I…), met ror, country_code en works_count; filter=country_code:NL geeft 1.869.
- `GET /authors`: Auteurs (A…), met ORCID en affiliaties.
- `GET /sources`: Tijdschriften en repositories.
- `GET /topics`: Onderwerpen waarmee werken zijn ingedeeld.
- `GET /funders`: Financiers, bv. NWO.

### Parameters
- `filter`: Komma = EN, | = OF, ! = NIET. Bv. institutions.country_code:NL,publication_year:2025 of institutions.ror:https://ror.org/04pp8hn57. Bereik: publication_year:2000-2025. (getest)
- `group_by`: Tellen per waarde in één aanroep: publication_year, open_access.oa_status, authorships.countries, type … (getest)
- `search`: Vrij zoeken in titel, samenvatting en tekst; kost 10 keer zo veel als een filter (0,001 dollar). (getest)
- `select`: Alleen deze velden teruggeven (id,doi,title,publication_year). (getest)
- `per_page`: 1 tot 200 (meer geeft 'per-page parameter must be between 1 and 200'). (getest)
- `cursor`: cursor=* en dan meta.next_cursor volgen om alles door te lopen. (getest)
- `corpus`: corpus=all telt ook de uitbreiding mee (datasets, repositoryrecords): 115.159 in plaats van 101.276 Nederlandse werken uit 2025. (getest)
- `sort`: Bv. cited_by_count:desc. Sorteren op updated_date:desc vraagt een betaald abonnement. (getest)

### Velden van een werk in OpenAlex (selectie) (15)
`id` url, `doi` url, `title` tekst, `publication_year` getal, `publication_date` datum, `type` tekst, `language` tekst, `open_access.oa_status` tekst, `authorships[].institutions[].ror` url, `authorships[].countries` lijst, `cited_by_count` getal, `primary_location.source` object, `topics[]` lijst, `group_by[].key / count` tekst, `meta.count` getal

### Limieten en valkuilen
- Zonder sleutel een gedeeld dagbudget van 0,10 dollar per IP-adres. Gemeten kosten: een lijst of group_by 0,0001, een zoekvraag (search=) 0,001, één werk ophalen 0. Koppen X-RateLimit-Remaining-USD en X-RateLimit-Reset tonen wat er over is. (getest)
- per_page maximaal 200; voor meer dan een paar pagina's cursor=* gebruiken. (getest)
- ROR: maximaal 2.000 verzoeken per 5 minuten; DataCite: 1.000 per 5 minuten met een e-mailadres in de User-Agent. (uit de beschrijving)
- Elk OpenAlex-antwoord zonder sleutel bevat in meta.notice de oproep een sleutel te nemen, met een aanwijzing voor AI-assistenten om namens de gebruiker een sleutel aan te vragen met diens e-mailadres. Dat hebben we bewust niet gedaan; het is geen voorwaarde voor gebruik. (getest)
- Een werk telt bij elke instelling van de auteurs; optellen per instelling geeft meer dan het totaal. (ervaring)
- OpenAIRE: /graph/v1/researchProducts?countryCode=NL telt 3.718.728 producten (header.numFound), type=dataset 103.356. Pagineren met cursor=* en header.nextCursor. Het pad /graph/v3 gaf eerder 405. (getest)

### Voorbeeld
```
https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2025&group_by=open_access.oa_status
```

## Zo haal je het op

### curl
```bash
curl "https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2025&group_by=open_access.oa_status"
```

### python
```python
import requests

kop = {"User-Agent": "mijnproject/1.0 (mailto:jij@voorbeeld.nl)"}
r = requests.get("https://api.openalex.org/works", headers=kop, params={
    "filter": "institutions.country_code:NL,publication_year:2000-2025",
    "group_by": "publication_year"})
for g in sorted(r.json()["group_by"], key=lambda g: g["key"]):
    print(g["key"], g["count"])
```


## Voorbeelden met echte cijfers (5)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **DOI's van 4TU.ResearchData per publicatiejaar, geteld in DataCite (voorvoegsel 10.4121): 3.047 DOI's in 2025, 9,1 keer zo veel als in 2013** (2025). Tabel DOI-voorvoegsel 10.4121. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/4tu-dois-per-jaar)
  - `https://api.datacite.org/dois?prefix=10.4121&published=2025&page%5Bsize%5D=1&fields%5Bdois%5D=doi`
- **DOI's van DANS per publicatiejaar, geteld in DataCite (voorvoegsel 10.17026): 14.943 DOI's in 2025, 4 keer zo veel als in 2008** (2025). Tabel DOI-voorvoegsel 10.17026. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/dans-dois-per-jaar)
  - `https://api.datacite.org/dois?prefix=10.17026&published=2025&page%5Bsize%5D=1&fields%5Bdois%5D=doi`
- **Publicaties met een Nederlandse instelling naar open-access-status (OpenAlex): hybride is het grootste deel, 28% in 2025** (2025). Tabel works, group_by open_access.oa_status. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/onderzoeksoutput-open-access)
  - `https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2025&group_by=open_access.oa_status`
- **Publicaties per Nederlandse onderwijsinstelling (OpenAlex): het meest Universiteit Utrecht (9.983 publicaties), dan Universiteit van Amsterdam en Rijksuniversiteit Groningen** (2025). Tabel works, group_by authorships.institutions.lineage. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/onderzoeksoutput-per-universiteit)
  - `https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2025&group_by=authorships.institutions.lineage&per_page=200`
  - `https://api.openalex.org/institutions?filter=country_code:NL,type:education&sort=works_count:desc&per_page=50&select=id,display_name`
- **Publicaties met een Nederlandse instelling in OpenAlex: 101.181 publicaties in 2025, 3,8 keer zo veel als in 2000** (2025). Tabel works, group_by publication_year. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/onderzoeksoutput-publicaties-per-jaar)
  - `https://api.openalex.org/works?filter=institutions.country_code:NL,publication_year:2000-2025&group_by=publication_year`
