Rijksmuseum · Capability

Rijksmuseum Usersets API — User Generated Content

Usersets — User Generated Content. 2 operations. Lead operation: List Rijksstudio User Sets. Self-contained Naftiko capability covering one Rijksmuseum business surface.

Run with Naftiko RijksmuseumUser Generated ContentRijksstudio

What You Can Do

GET
Listusersets — List Rijksstudio User Sets.
/v1/cultures/{culture}/usersets
GET
Getuserset — Get Rijksstudio User Set Details.
/v1/cultures/{culture}/usersets/{set-id}

MCP Tools

list-user-sets

List Rijksstudio User Sets.

read-only idempotent
get-user-set

Get Rijksstudio User Set Details.

read-only idempotent

Capability Spec

user-sets-user-generated-content.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Rijksmuseum Usersets API — User Generated Content"
  description: >-
    Usersets — User Generated Content. 2 operations. Lead operation: List
    Rijksstudio User Sets. Self-contained Naftiko capability covering one
    Rijksmuseum business surface.
  tags:
    - Rijksmuseum
    - User Generated Content
    - Rijksstudio
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys:
      RIJKSMUSEUM_API_KEY: RIJKSMUSEUM_API_KEY

capability:

  consumes:
    - type: http
      namespace: "user-sets-ugc"
      baseUri: "https://www.rijksmuseum.nl/api"
      description: "Rijksmuseum Usersets API — User Generated Content business capability. Self-contained, no shared references."
      authentication:
        type: apikey
        key: key
        value: "{{env.RIJKSMUSEUM_API_KEY}}"
        placement: query
      resources:
        - name: "usersets"
          path: "/{culture}/usersets"
          operations:
            - name: "listUserSets"
              method: GET
              description: "List paginated Rijksstudio user sets."
              inputParameters:
                - name: "culture"
                  in: path
                  type: string
                  required: true
                  description: "Locale: `nl` or `en`."
                - name: "format"
                  in: query
                  type: string
                  required: false
                  description: "Response format."
                - name: "page"
                  in: query
                  type: integer
                  required: false
                  description: "Result page (0-based). page * pageSize <= 10,000."
                - name: "pageSize"
                  in: query
                  type: integer
                  required: false
                  description: "Results per page (1-100)."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

        - name: "userset"
          path: "/{culture}/usersets/{setId}"
          operations:
            - name: "getUserSet"
              method: GET
              description: "Return a single Rijksstudio user set with its items."
              inputParameters:
                - name: "culture"
                  in: path
                  type: string
                  required: true
                  description: "Locale: `nl` or `en`."
                - name: "setId"
                  in: path
                  type: string
                  required: true
                  description: "Composite set identifier `{userId}-{slug}`."
                - name: "format"
                  in: query
                  type: string
                  required: false
                  description: "Response format."
                - name: "page"
                  in: query
                  type: integer
                  required: false
                  description: "Result page (0-based) for the embedded setItems list."
                - name: "pageSize"
                  in: query
                  type: integer
                  required: false
                  description: "Items per page."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "user-sets-ugc-rest"
      port: 8080
      description: "REST adapter for Rijksmuseum Usersets API — User Generated Content."
      resources:
        - path: "/v1/cultures/{culture}/usersets"
          name: "usersets"
          description: "REST surface for Rijksstudio user sets."
          operations:
            - method: GET
              name: "listUserSets"
              description: "List Rijksstudio User Sets."
              call: "user-sets-ugc.listUserSets"
              with:
                culture: "rest.culture"
                format: "rest.format"
                page: "rest.page"
                pageSize: "rest.pageSize"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/cultures/{culture}/usersets/{set-id}"
          name: "userset"
          description: "REST surface for a single Rijksstudio user set."
          operations:
            - method: GET
              name: "getUserSet"
              description: "Get Rijksstudio User Set Details."
              call: "user-sets-ugc.getUserSet"
              with:
                culture: "rest.culture"
                setId: "rest.set-id"
                format: "rest.format"
                page: "rest.page"
                pageSize: "rest.pageSize"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "user-sets-ugc-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Rijksmuseum Usersets API — User Generated Content."
      tools:
        - name: "list-user-sets"
          description: "List Rijksstudio User Sets."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "user-sets-ugc.listUserSets"
          with:
            culture: "tools.culture"
            format: "tools.format"
            page: "tools.page"
            pageSize: "tools.pageSize"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-user-set"
          description: "Get Rijksstudio User Set Details."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "user-sets-ugc.getUserSet"
          with:
            culture: "tools.culture"
            setId: "tools.setId"
            format: "tools.format"
            page: "tools.page"
            pageSize: "tools.pageSize"
          outputParameters:
            - type: object
              mapping: "$."