Rijksmuseum Collection API

Search and browse the Rijksmuseum collection.

OpenAPI Specification

rijksmuseum-collection-api-openapi.yml Raw ↑
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\nof more than 800,000 object records (with public-domain web images for over\n600,000 of them) through a JSON / JSON-P / XML REST interface. Three\noperations are provided:\n\n* **Search the collection** — list paginated, language-localised result\n  pages with rich filters (maker, type, material, technique, century,\n  dominant colour, image availability, top-piece flag) using the same\n  filtering vocabulary as the museum's own advanced-search page.\n* **Get collection object details** — return the full record for a single\n  object (title, descriptions, principal maker biography, dating,\n  dimensions, materials, techniques, Iconclass classification, colours,\n  bilingual plaque text, acquisition history, exhibitions, web image).\n* **Get collection image tiles** — return a multi-level tile pyramid for an\n  object's web image so consumers can offer the same deep-zoom experience\n  used on rijksmuseum.nl.\n\nResponses are localised through the `culture` path parameter (`nl` for\nDutch, `en` for English). Every request must carry a `key` query parameter\nholding the caller's API key, which is issued instantly upon registering a\nfree Rijksstudio account.\n"
  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
security:
- ApiKeyQuery: []
tags:
- name: Collection
  description: Search and browse the Rijksmuseum collection.
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'
components:
  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
  schemas:
    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
    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.
    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
    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
    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'
  parameters:
    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
    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
  responses:
    RateLimited:
      description: Daily quota or short-window rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  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.

        '