# Rijksmuseum collectie

Het Rijksmuseum deelt de gegevens van zijn collectie via zes diensten zonder sleutel (plus het verouderde SRU): een zoek-API, een resolver voor de vaste identifiers (Linked Art), OAI-PMH, een wijzigingsstroom (LDES), IIIF voor beelden en datadumps. Op 16 oktober 2026 telde de zoek-API 841.378 objecten, waarvan 735.784 met een digitale afbeelding, 425.961 onder prenten en 5.337 schilderijen.

- Uitgever: Rijksmuseum
- Gebied: Nederland · Laagste detail: object
- Periode: actuele collectie (objecten uit de oudheid tot nu) · Ververst: dagelijks
- Toegang: Open · Licentie: Publiek domein of CC0; CC BY 4.0 waar auteursrecht geldt; enkele stukken met beperkingen (per object aangegeven)
- Koppelsleutels: objectnummer (SK-C-5), persistent identifier (id.rijksmuseum.nl), maker
- Status: ok (2026-10-16) · LDES, dag 2026-10-16: 10 wijzigingen op de eerste pagina
- URL: https://data.rijksmuseum.nl

## Wat kun je ermee?
- **Alle schilderijen van één kunstenaar.** Combineer creator en type: Rembrandt van Rijn met type painting geeft 25 schilderijen. Haal per object de gegevens op via de resolver en zet ze op een tijdlijn.
- **Beelden voor een infographic.** 735.784 objecten hebben een digitale afbeelding. Via IIIF vraag je precies het formaat dat je nodig hebt, bijvoorbeeld De Nachtwacht op 800 pixels breed. Controleer per object de rechten.
- **Wat verandert er in de collectie?.** De LDES-stroom geeft per dag welke objecten zijn aangemaakt, gewijzigd of verwijderd. Volg zo nieuwe aanwinsten of verbeterde beschrijvingen zonder alles opnieuw te downloaden.
- **Een eeuw in prenten en foto's.** Zoek met creationDate en een jokerteken (19??) en een type, bijvoorbeeld photograph. Vergelijk de aantallen met 19*: die verschillen flink (zie beperkingen), dus zeg welke zoekvraag je gebruikte.

## Zo verwerk je het
1. **Zoeken en tellen.** De zoek-API geeft per pagina 100 identifiers en in partOf.totalItems het totaal. Filters: creator, type, material, technique, title, objectNumber, creationDate, description, aboutActor en imageAvailable. Nederlandse en Engelse termen werken allebei.
   `https://data.rijksmuseum.nl/search/collection?creator=Rembrandt%20van%20Rijn&type=painting`
2. **Gegevens van één object.** Zoek het object op nummer (SK-C-5 is De Nachtwacht) en vraag de identifier op met _profile=la-framed voor Linked Art als JSON-LD. Zonder profiel stuurt een browser je door naar de collectiewebsite.
   `https://id.rijksmuseum.nl/200107928?_profile=la-framed`
3. **Het beeld via IIIF.** In de Linked Art-gegevens staat een IIIF-adres (iiif.micr.io). Vervang full/max door full/800, voor een plaatje van 800 pixels breed; info.json geeft de afmetingen.
   `https://iiif.micr.io/PJEZO/full/800,/0/default.jpg`
4. **Alles of alleen de wijzigingen.** Voor de hele collectie: OAI-PMH (formaten edm en oai_dc) of de datadumps. Voor bijhouden: de LDES-stroom, ingedeeld per jaar, maand en dag.
   `https://data.rijksmuseum.nl/ldes/collection.json`

## Interessante koppelingen
- Hoe staat dit stuk in Europeana? → [europeana](https://www.opendataindex.nl/bron/europeana.md) via objectnummer of identifier van het Rijksmuseum. Het Rijksmuseum biedt zijn gegevens ook aan in het Europeana Data Model (EDM, via OAI-PMH en de resolver). Zoek in Europeana op titel of objectnummer om een stuk naast vergelijkbare stukken uit andere landen te zetten.
- Wat werd er gedrukt in de tijd van deze prent? → [kb-linked-data](https://www.opendataindex.nl/bron/kb-linked-data.md) via naam van maker of auteur. Zet prenten uit de 17e en 18e eeuw naast de titels die de STCN voor hetzelfde jaar of dezelfde drukker kent.

## Vergelijkbare bronnen
- [europeana](https://www.opendataindex.nl/bron/europeana.md): Europeana bundelt collecties van duizenden Europese instellingen, ook Nederlandse, maar de API vraagt een (gratis) sleutel.
- [rijksmonumenten](https://www.opendataindex.nl/bron/rijksmonumenten.md): Ook erfgoed van het Rijk, maar gebouwen en archeologie op de kaart in plaats van museumstukken.
- [Netwerk Digitaal Erfgoed, Datasetregister](https://datasetregister.netwerkdigitaalerfgoed.nl): Catalogus van ruim 3.400 erfgoeddatasets van Nederlandse musea en archieven; daar vind je collecties die niet in deze index staan.

## Waar je op moet letten
- **Soorten overlappen.** Het zoekveld type is een deel-overeenkomst: print vindt ook photomechanical print, en schilderij (4.893) geeft andere aantallen dan painting (5.337). Tel daarom per term en noem welke term je gebruikte.
- **Bibliotheek en archief niet in de zoek-API.** De zoek-API dekt alleen museumobjecten. Gegevens van de bibliotheek van het museum staan in de datadumps, onder meer 321.354 titelbeschrijvingen (work.tar.gz).
- **Rechten per object.** De meeste gegevens en beelden zijn publiek domein of CC0, maar bij werk waarop nog auteursrecht rust geldt CC BY 4.0 of een beperking. Dat staat per object op de collectiewebsite.
- **Jaartallen zijn tekst.** creationDate met 16?? vindt 44.973 objecten, 16* vindt er 103.635. De documentatie zegt niet hoe perioden worden gematcht. Gebruik voor een echte datering begin_of_the_begin en end_of_the_end in de Linked Art-gegevens.
- **Oude API met sleutel.** Veel voorbeelden op internet gebruiken de oude Rijksmuseum-API op rijksmuseum.nl/api met een sleutel. De diensten op data.rijksmuseum.nl werken zonder sleutel en hebben andere identifiers.

## API (Linked Art (JSON-LD), OAI-PMH, LDES, IIIF)

- Basis: https://data.rijksmuseum.nl
- Toegang: Geen sleutel (de oude API op rijksmuseum.nl/api met sleutel is iets anders). (getest)
- Formaten: json-ld, json, xml, RDF/XML (EDM), n-triples, jpeg
- Omvang: 841378 objecten in de Search API (16 okt 2026), waarvan 735.885 met afbeelding (getest)
- Filteren: Queryparameters, onderling te combineren (EN); creator, material, technique en aboutActor mogen vaker. Deel-overeenkomst op tekst, jokertekens * en ? alleen bij objectNumber en creationDate.; veld=waarde, herhaald veld, *, ?

### Endpoints
- `GET /search/collection`: Zoeken in de museumcollectie; 100 identifiers per pagina, totaal in partOf.totalItems, volgende pagina in next.id.
- `GET https://id.rijksmuseum.nl/{nummer}?_profile=la-framed`: Resolver: alle gegevens van een object, persoon, plaats … als Linked Art JSON-LD. Zonder _profile stuurt een browser je naar de collectiewebsite.
- `GET /{nummer}`: Dezelfde gegevens op data.rijksmuseum.nl, altijd als data (niet de canonieke URI).
- `GET /oai?verb=…`: OAI-PMH: Identify, ListMetadataFormats (edm, oai_dc), ListSets, ListIdentifiers, ListRecords, GetRecord. Alleen museumobjecten.
- `GET /ldes/collection.json`: LDES-wijzigingsstroom (Create, Update, Delete), ingedeeld per jaar, maand en dag via tree:relation; ook per dataset: /ldes/dataset/{nummer}/collection.json.
- `GET /cd/collection.json`: IIIF Change Discovery: Activity Streams met wijzigingen, begin bij de laatste pagina.
- `GET https://iiif.micr.io/{id}/full/{breedte},/0/default.jpg`: IIIF Image API: een beeld in elk formaat; info.json geeft de afmetingen, /manifest de IIIF Presentation-manifest.

### Parameters
- `creator`: Maker, deel-overeenkomst (Rembrandt vindt Rembrandt van Rijn); mag vaker. (uit de beschrijving)
- `type`: Soort object, Nederlands of Engels (painting, schilderij); deel-overeenkomst. (uit de beschrijving)
- `title`: Titel, bv. Night Watch. (uit de beschrijving)
- `objectNumber`: Objectnummer met jokertekens: SK-C-5* vindt SK-C-5, SK-C-50 … (uit de beschrijving)
- `creationDate`: Jaar of periode met * en ? (16??). Let op: 16?? gaf 44.973 objecten, 16* 103.635. (ervaring)
- `material / technique`: Materiaal (canvas, oil paint) en techniek; mogen vaker. (uit de beschrijving)
- `description`: Woorden in de beschrijving. (uit de beschrijving)
- `aboutActor`: Objecten over of met een persoon of groep. (uit de beschrijving)
- `imageAvailable`: true of false: alleen objecten met (of zonder) digitale afbeelding. (getest)
- `memberOfSetId`: Objecten in een set, bv. https://id.rijksmuseum.nl/260251. (uit de beschrijving)
- `pageToken`: Paginering; neem het hele adres uit next.id over. (uit de beschrijving)
- `_profile`: Resolver: la-framed (Linked Art), * (standaard) of andere profielen zoals EDM; ook via Accept-Profile-kop. (uit de beschrijving)

### Velden in Search en Linked Art (selectie) (12)
`partOf.totalItems` getal, `orderedItems[].id` uri, `next.id` url, `identified_by[].content` tekst, `produced_by.part[].carried_out_by` uri, `produced_by.timespan` object, `classified_as[]` uri, `made_of[]` uri, `dimension[]` object, `shows[]` uri, `subject_of[].digitally_carried_by[].access_point` url, `current_location` uri

### Limieten en valkuilen
- Search: altijd 100 resultaten per pagina; geen limiet op het aantal pagina's (volgens de documentatie). (uit de beschrijving)
- Geen gedocumenteerde rate limit. robots.txt van data.rijksmuseum.nl bestaat niet (404); iiif.micr.io heeft wél Disallow: / voor alle bots: haal beelden op als losse weergave, niet geautomatiseerd in bulk. (getest)
- type is een deel-overeenkomst: print vindt ook photomechanical print, schilderij en painting geven verschillende aantallen. Noem de term die je gebruikte. (ervaring)
- OAI-PMH ListSets gaf op 16 okt 2026 'An unhandled exception occurred.'; ListIdentifiers met metadataPrefix=edm werkte (completeListSize 846.804). (getest)
- Sinds 11 juni 2026 is de EDM in OAI-PMH strikt volgens de Europeana-schema's; wie de XML zelf parseert, moet dat nakijken. (uit de beschrijving)
- Bibliotheek en archief zitten niet in Search en OAI-PMH. Bibliotheekgegevens staan wel in de LDES-stroom en de datadumps (o.a. 321.354 titelbeschrijvingen in work.tar.gz). (uit de beschrijving)

### Voorbeeld
```
https://data.rijksmuseum.nl/search/collection?creator=Rembrandt%20van%20Rijn&type=painting
```

## Zo haal je het op

### curl
```bash
curl "https://data.rijksmuseum.nl/search/collection?creator=Rembrandt%20van%20Rijn&type=painting"
```

### python
```python
import requests

zoek = "https://data.rijksmuseum.nl/search/collection"
r = requests.get(zoek, params={"objectNumber": "SK-C-5"}).json()
pid = r["orderedItems"][0]["id"]                  # https://id.rijksmuseum.nl/200107928
obj = requests.get(pid, params={"_profile": "la-framed"}).json()
print([x["content"] for x in obj["identified_by"]][:2])   # ['SK-C-5', 'De Nachtwacht']
```

## Wat je ermee kunt bouwen
- [Monumentenwandeling door je eigen buurt](https://www.opendataindex.nl/bouwen/monumentenwandeling.md): Een app die rond elk startpunt een wandeling langs tien rijksmonumenten maakt, met adres, beschrijving, foto, een oud beeld uit het Rijksmuseum en een café onderweg.


## Voorbeelden met echte cijfers (2)

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

- **Objecten van het Rijksmuseum met en zonder digitale afbeelding (cijfers van de Rijksmuseum-API): met afbeelding is het grootste deel, 87% in oktober 2026** (oktober 2026). Tabel search/collection. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rijksmuseum-met-afbeelding)
  - `https://data.rijksmuseum.nl/search/collection?imageAvailable=true`
  - `https://data.rijksmuseum.nl/search/collection?imageAvailable=false`
- **Objecten in de collectie van het Rijksmuseum per soort: het meest prenten (425.961 objecten), dan foto's en tekeningen** (oktober 2026). Tabel search/collection. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rijksmuseum-objecten-per-soort)
  - `https://data.rijksmuseum.nl/search/collection`
  - `https://data.rijksmuseum.nl/search/collection?type=print`
  - `https://data.rijksmuseum.nl/search/collection?type=photograph`
  - `https://data.rijksmuseum.nl/search/collection?type=drawing`
