Collection Details API

Returns the full record for a single object identified by its object-number (e.g. `SK-C-5`). Includes title, descriptions, principal maker biography, dating, dimensions, materials, techniques, classification (Iconclass), colours, plaque text in both Dutch and English, acquisition history, exhibitions, and the web image with offset percentages.

OpenAPI Specification

rijksmuseum-collection-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
    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