openapi: 3.0.3 info: title: Rijksmuseum Collection API version: "1.0.0" description: | The Rijksmuseum Collection API exposes the Dutch national museum's collection of more than 800,000 object records (with public-domain web images for over 600,000 of them) through a JSON / JSON-P / XML REST interface. Three operations are provided: * **Search the collection** — list paginated, language-localised result pages with rich filters (maker, type, material, technique, century, dominant colour, image availability, top-piece flag) using the same filtering vocabulary as the museum's own advanced-search page. * **Get collection object details** — return the full record for a single object (title, descriptions, principal maker biography, dating, dimensions, materials, techniques, Iconclass classification, colours, bilingual plaque text, acquisition history, exhibitions, web image). * **Get collection image tiles** — return a multi-level tile pyramid for an object's web image so consumers can offer the same deep-zoom experience used on rijksmuseum.nl. Responses are localised through the `culture` path parameter (`nl` for Dutch, `en` for English). Every request must carry a `key` query parameter holding the caller's API key, which is issued instantly upon registering a free Rijksstudio account. termsOfService: https://www.rijksmuseum.nl/en/data/policy contact: name: Rijksmuseum Research Services url: https://www.rijksmuseum.nl/en/research/conduct-research/contact-form license: name: Public Domain (most object images) / CC-BY (modern works) — see Data Policy url: https://www.rijksmuseum.nl/en/data/policy x-generated-from: documentation x-source-url: https://data.rijksmuseum.nl/object-metadata/api/ x-last-validated: "2026-05-29" x-api-evangelist-pipeline: opensource servers: - url: https://www.rijksmuseum.nl/api description: Production tags: - name: Collection description: Search and browse the Rijksmuseum collection. - name: Object Details description: Retrieve the full record for a single object. - name: Images description: Deep-zoom tile pyramids for object web images. security: - ApiKeyQuery: [] paths: /{culture}/collection: get: operationId: searchCollection summary: Search The Rijksmuseum Collection description: | Returns a paginated list of objects in the Rijksmuseum collection. All filter parameters mirror the museum's advanced search experience. Pagination is capped so that `p * ps` cannot exceed 10,000 results — use the [OAI-PMH harvesting API](https://data.rijksmuseum.nl/object-metadata/harvest/) for full-corpus access. tags: [Collection] x-microcks-operation: delay: 0 dispatcher: FALLBACK parameters: - $ref: '#/components/parameters/Culture' - $ref: '#/components/parameters/ApiKey' - $ref: '#/components/parameters/Format' - name: p in: query description: Result page number (0-based). `p * ps` cannot exceed 10,000. required: false schema: type: integer minimum: 0 default: 0 example: 0 - name: ps in: query description: Number of results per page. required: false schema: type: integer minimum: 1 maximum: 100 default: 10 example: 10 - name: q in: query description: Free-text search terms applied across object fields. required: false schema: type: string example: nachtwacht - name: involvedMaker in: query description: Restrict to objects produced by this maker (e.g. `Rembrandt van Rijn`). required: false schema: type: string example: Rembrandt van Rijn - name: type in: query description: Object type (e.g. `schilderij`, `prent`). required: false schema: type: string example: schilderij - name: material in: query description: Material used to make the object (e.g. `doek`, `papier`). required: false schema: type: string example: doek - name: technique in: query description: Technique used to produce the object (e.g. `olieverf`, `ets`). required: false schema: type: string example: olieverf - name: f.dating.period in: query description: Century in which the object was made (0–21). required: false schema: type: integer minimum: 0 maximum: 21 example: 17 - name: f.normalized32Colors.hex in: query description: | Filter on the dominant colour palette (32-colour normalised). The literal `#` must be URL-encoded as `%23`. required: false schema: type: string pattern: '^#?[0-9A-Fa-f]{6}$' example: "#000000" - name: imgonly in: query description: Only return objects that have an image. required: false schema: type: boolean default: false example: true - name: toppieces in: query description: Only return objects flagged as top pieces. required: false schema: type: boolean default: false example: false - name: s in: query description: Sort order applied to the result set. required: false schema: type: string enum: - relevance - objecttype - chronologic - achronologic - artist - artistdesc example: chronologic responses: "200": description: A paginated page of art-object summaries matching the filters. content: application/json: schema: $ref: '#/components/schemas/CollectionSearchResponse' examples: rembrandt: $ref: '#/components/examples/SearchRembrandtVanRijn' "401": $ref: '#/components/responses/Unauthorized' "429": $ref: '#/components/responses/RateLimited' /{culture}/collection/{objectNumber}: get: operationId: getCollectionObject summary: Get Collection Object Details description: | Returns the full record for a single object identified by its case-sensitive `objectNumber` (e.g. `SK-C-5` for *The Night Watch*). Object numbers are obtained from the search response. tags: [Object Details] x-microcks-operation: delay: 0 dispatcher: FALLBACK parameters: - $ref: '#/components/parameters/Culture' - $ref: '#/components/parameters/ApiKey' - $ref: '#/components/parameters/Format' - name: objectNumber in: path required: true description: Case-sensitive object identifier (e.g. `SK-C-5`). schema: type: string pattern: '^[A-Za-z0-9-]+$' example: SK-C-5 responses: "200": description: Full art-object record for the requested identifier. content: application/json: schema: $ref: '#/components/schemas/CollectionObjectResponse' examples: nightwatch: $ref: '#/components/examples/GetNightWatch' "401": $ref: '#/components/responses/Unauthorized' "404": $ref: '#/components/responses/NotFound' "429": $ref: '#/components/responses/RateLimited' /{culture}/collection/{objectNumber}/tiles: get: operationId: getCollectionObjectTiles summary: Get Collection Object Image Tiles description: | Returns the tile-pyramid description for an object's web image. The response contains one entry per zoom level (`z0`–`z6`, where `z0` is the largest resolution and `z6` is the smallest), and each level carries a list of image tiles with x/y coordinates and a CDN URL. This endpoint only supports the JSON response format. tags: [Images] x-microcks-operation: delay: 0 dispatcher: FALLBACK parameters: - $ref: '#/components/parameters/Culture' - $ref: '#/components/parameters/ApiKey' - name: objectNumber in: path required: true description: Case-sensitive object identifier (e.g. `SK-C-5`). schema: type: string pattern: '^[A-Za-z0-9-]+$' example: SK-C-5 responses: "200": description: Tile pyramid for the requested object's web image. content: application/json: schema: $ref: '#/components/schemas/ImageTilesResponse' examples: nightwatchTiles: $ref: '#/components/examples/GetNightWatchTiles' "401": $ref: '#/components/responses/Unauthorized' "404": $ref: '#/components/responses/NotFound' "429": $ref: '#/components/responses/RateLimited' components: securitySchemes: ApiKeyQuery: type: apiKey in: query name: key description: | Free API key issued on creating a Rijksstudio account at https://www.rijksmuseum.nl/en/rijksstudio. The key is available from the account's advanced settings. parameters: Culture: name: culture in: path required: true description: Locale for both the query semantics and the response content (`nl` Dutch, `en` English). schema: type: string enum: [nl, en] example: en ApiKey: name: key in: query required: true description: The caller's Rijksstudio API key. schema: type: string pattern: '^[A-Za-z0-9]+$' example: 0fiuZxBwf Format: name: format in: query required: false description: Response format. `json` is the default; `jsonp` requires a `callback` parameter; `xml` is also offered. schema: type: string enum: [json, jsonp, xml] default: json example: json responses: Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested object number could not be found. content: application/json: schema: $ref: '#/components/schemas/Error' RateLimited: description: Daily quota or short-window rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: CollectionSearchResponse: type: object description: A page of summary art-object records. required: [count, artObjects] properties: elapsedMilliseconds: type: integer description: Server-side query time in milliseconds. example: 0 count: type: integer description: Total number of objects matching the query (across all pages). example: 3491 artObjects: type: array description: The art-object summaries for this page. items: $ref: '#/components/schemas/ArtObjectSummary' ArtObjectSummary: type: object description: Lightweight art-object record returned by the search endpoint. properties: links: $ref: '#/components/schemas/ArtObjectLinks' id: type: string description: Globally unique identifier including culture prefix. example: nl-SK-C-5 objectNumber: type: string description: Rijksmuseum inventory number. example: SK-C-5 title: type: string description: Short title in the requested culture. example: De Nachtwacht hasImage: type: boolean example: true principalOrFirstMaker: type: string description: Display name of the principal or first maker. example: Rembrandt van Rijn longTitle: type: string description: Long form title including maker and date. example: De Nachtwacht, Rembrandt van Rijn, 1642 showImage: type: boolean example: true permitDownload: type: boolean example: true webImage: $ref: '#/components/schemas/WebImage' headerImage: $ref: '#/components/schemas/WebImage' productionPlaces: type: array items: type: string example: [Amsterdam] ArtObjectLinks: type: object description: Hypermedia links for an art object. properties: self: type: string format: uri example: http://www.rijksmuseum.nl/api/nl/collection/SK-C-5 web: type: string format: uri example: http://www.rijksmuseum.nl/nl/collectie/SK-C-5 search: type: string format: uri description: Present on detail responses; points back to the collection search base. example: http://www.rijksmuseum.nl/api/nl/collection WebImage: type: object description: Reference to a CDN-hosted web image with offset and size metadata. properties: guid: type: string example: aa08df9c-0af9-4195-b31b-f578fbe0a4c9 offsetPercentageX: type: integer example: 0 offsetPercentageY: type: integer example: 1 width: type: integer example: 2500 height: type: integer example: 2034 url: type: string format: uri example: https://lh3.googleusercontent.com/J-mxAE7CPu-DXIOx4QKBtb0GC4ud37da1QK7CzbTIDswmvZHXhLm4Tv2-1H3iBXJWAW_bHm7dMl3j5wv_XiWAg55VOM=s0 CollectionObjectResponse: type: object description: Full art-object record returned by the details endpoint. properties: elapsedMilliseconds: type: integer example: 219 artObject: $ref: '#/components/schemas/ArtObject' ArtObject: type: object description: Full Rijksmuseum art-object record. properties: links: $ref: '#/components/schemas/ArtObjectLinks' id: type: string example: nl-SK-C-5 priref: type: string example: "5216" objectNumber: type: string example: SK-C-5 language: type: string enum: [nl, en] example: nl title: type: string example: De Nachtwacht copyrightHolder: type: string nullable: true webImage: $ref: '#/components/schemas/WebImage' colors: type: array items: $ref: '#/components/schemas/ColorWeight' colorsWithNormalization: type: array items: $ref: '#/components/schemas/ColorNormalization' normalizedColors: type: array items: $ref: '#/components/schemas/ColorWeight' normalized32Colors: type: array items: $ref: '#/components/schemas/ColorWeight' titles: type: array items: type: string description: type: string description: Long-form curatorial description (in the requested culture). labelText: type: string nullable: true objectTypes: type: array items: type: string example: [schilderij] objectCollection: type: array items: type: string example: [schilderijen] makers: type: array items: $ref: '#/components/schemas/Maker' principalMakers: type: array items: $ref: '#/components/schemas/Maker' plaqueDescriptionDutch: type: string plaqueDescriptionEnglish: type: string principalMaker: type: string example: Rembrandt van Rijn artistRole: type: string nullable: true associations: type: array items: type: object acquisition: $ref: '#/components/schemas/Acquisition' exhibitions: type: array items: $ref: '#/components/schemas/Exhibition' materials: type: array items: type: string example: [doek, olieverf] techniques: type: array items: type: string productionPlaces: type: array items: type: string example: [Amsterdam] dating: $ref: '#/components/schemas/Dating' classification: $ref: '#/components/schemas/Classification' hasImage: type: boolean example: true historicalPersons: type: array items: type: string inscriptions: type: array items: type: string documentation: type: array items: type: string catRefRPK: type: array items: type: string principalOrFirstMaker: type: string dimensions: type: array items: $ref: '#/components/schemas/Dimension' physicalProperties: type: array items: type: string physicalMedium: type: string example: olieverf op doek longTitle: type: string subTitle: type: string example: "h 379,5cm × b 453,5cm × g 337kg" scLabelLine: type: string label: $ref: '#/components/schemas/Label' showImage: type: boolean location: type: string description: Current location code within the museum. example: HG-2.31 Maker: type: object description: A person or entity who contributed to the production of the object. properties: name: type: string example: Rembrandt van Rijn unFixedName: type: string example: Rijn, Rembrandt van placeOfBirth: type: string example: Leiden dateOfBirth: type: string example: "1606-07-15" dateOfBirthPrecision: type: string nullable: true dateOfDeath: type: string example: "1669-10-08" dateOfDeathPrecision: type: string nullable: true placeOfDeath: type: string example: Amsterdam occupation: type: array items: type: string example: [prentmaker, tekenaar, schilder] roles: type: array items: type: string example: [schilder] nationality: type: string example: Noord-Nederlands biography: type: string nullable: true productionPlaces: type: array items: type: string example: [Amsterdam] qualification: type: string nullable: true Acquisition: type: object description: How and when the object entered the Rijksmuseum collection. properties: method: type: string example: bruikleen date: type: string example: "1808-01-01T00:00:00" creditLine: type: string example: Bruikleen van de gemeente Amsterdam Exhibition: type: object description: Past or upcoming exhibition that has featured this object. properties: title: type: string startDate: type: string endDate: type: string location: type: string Dating: type: object description: Date range and century context for the object's production. properties: presentingDate: type: string example: "1642" sortingDate: type: integer example: 1642 period: type: integer description: Century (0–21). example: 17 yearEarly: type: integer example: 1642 yearLate: type: integer example: 1642 Classification: type: object description: Subject classification using Iconclass and related vocabularies. properties: iconClassIdentifier: type: array items: type: string example: ["45(+26)"] iconClassDescription: type: array items: type: string motifs: type: array items: type: string events: type: array items: type: string objectNumbers: type: array items: type: string Dimension: type: object description: Physical dimension entry (height, width, weight, etc.). properties: unit: type: string example: cm type: type: string example: hoogte part: type: string nullable: true value: type: string example: "379,5" Label: type: object description: Curatorial label text for display. properties: title: type: string makerLine: type: string description: type: string notes: type: string date: type: string example: "2019-07-05" ColorWeight: type: object properties: percentage: type: integer example: 81 hex: type: string example: "#261808" ColorNormalization: type: object properties: originalHex: type: string example: "#261808" normalizedHex: type: string example: "#000000" ImageTilesResponse: type: object description: Tile pyramid description for an object's web image. properties: levels: type: array items: $ref: '#/components/schemas/ImageTileLevel' ImageTileLevel: type: object description: One zoom level of the tile pyramid. properties: name: type: string description: Level name. `z0` is largest; `z6` is smallest. example: z3 width: type: integer example: 1771 height: type: integer example: 1441 tiles: type: array items: $ref: '#/components/schemas/ImageTile' ImageTile: type: object description: A single tile in the pyramid. properties: x: type: integer example: 2 y: type: integer example: 2 url: type: string format: uri Error: type: object description: Standard error payload (shape inferred from API responses). properties: statusCode: type: integer example: 401 message: type: string example: Invalid API key. examples: SearchRembrandtVanRijn: summary: Search by maker — Rembrandt van Rijn value: elapsedMilliseconds: 0 count: 3491 artObjects: - links: self: http://www.rijksmuseum.nl/api/nl/collection/SK-C-5 web: http://www.rijksmuseum.nl/nl/collectie/SK-C-5 id: nl-SK-C-5 objectNumber: SK-C-5 title: De Nachtwacht hasImage: true principalOrFirstMaker: Rembrandt van Rijn longTitle: De Nachtwacht, Rembrandt van Rijn, 1642 showImage: true permitDownload: true webImage: guid: aa08df9c-0af9-4195-b31b-f578fbe0a4c9 offsetPercentageX: 0 offsetPercentageY: 1 width: 2500 height: 2034 url: https://lh3.googleusercontent.com/J-mxAE7CPu-DXIOx4QKBtb0GC4ud37da1QK7CzbTIDswmvZHXhLm4Tv2-1H3iBXJWAW_bHm7dMl3j5wv_XiWAg55VOM=s0 productionPlaces: [Amsterdam] GetNightWatch: summary: Get *The Night Watch* (SK-C-5) details value: elapsedMilliseconds: 219 artObject: id: nl-SK-C-5 priref: "5216" objectNumber: SK-C-5 language: nl title: De Nachtwacht principalMaker: Rembrandt van Rijn principalOrFirstMaker: Rembrandt van Rijn objectTypes: [schilderij] materials: [doek, olieverf] productionPlaces: [Amsterdam] dating: presentingDate: "1642" sortingDate: 1642 period: 17 yearEarly: 1642 yearLate: 1642 longTitle: De Nachtwacht, Rembrandt van Rijn, 1642 physicalMedium: olieverf op doek subTitle: "h 379,5cm × b 453,5cm × g 337kg" hasImage: true showImage: true location: HG-2.31 GetNightWatchTiles: summary: Tile pyramid for *The Night Watch* value: levels: - name: z3 width: 1771 height: 1441 tiles: - x: 2 y: 2 url: http://lh3.googleusercontent.com/-I1HN0VxmDySYN5oCqaykuTRukdFh-JemILAmTvHtGsGnBm968CiQpxkfgqQZnbKD5bS1m0tGZYx7v8HFnWjE3kizw=s0 - name: z4 width: 885 height: 720 tiles: - x: 1 y: 0 url: http://lh3.googleusercontent.com/-fBdzIPG0qlGnIkqKUFaX3dAiEnC9jnfCIR9ib32M1xh7bPHuK6ZTJMxgwn8jYsvymdupCFdtm3vHJg-n10JuhBD7w=s0