components:
  responses:
    "400":
      content:
        application/problem+json:
          schema:
            description: Problem JSON schema representing errors and status code
            properties:
              errors:
                items:
                  description: List of errors encountered during processing
                  properties:
                    code:
                      description: A code representing the type of error
                      example: date.format
                      type: string
                    detail:
                      description: A detailed message describing the error
                      example: must be ISO 8601
                      type: string
                    in:
                      description: Location of the error (e.g., body, query, header)
                      enum:
                      - body
                      - query
                      type: string
                    location:
                      description: Location in the document where the error occurred
                        (JSON Pointer)
                      example: '#/foo[0]/bar'
                      type: string
                  required:
                  - in
                  - location
                  - code
                  - detail
                  type: object
                type: array
              status:
                description: The HTTP status code generated by the origin server for
                  this occurrence of the problem
                example: 400
                type: integer
              title:
                description: A short, human-readable summary of the problem type
                example: Request validation failed
                type: string
            required:
            - status
            - title
            title: Problem JSON
            type: object
      description: Bad request
      headers:
        API-Version:
          description: Semver of this API
          example: 1.0.0
          schema:
            example: 1.0.0
            externalDocs:
              description: ' /core/version-header: Return the full version number
                in a response header'
              url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
            pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
            type: string
    "404":
      content:
        application/problem+json:
          schema:
            description: Problem JSON schema representing errors and status code
            properties:
              errors:
                items:
                  description: List of errors encountered during processing
                  properties:
                    code:
                      description: A code representing the type of error
                      example: date.format
                      type: string
                    detail:
                      description: A detailed message describing the error
                      example: must be ISO 8601
                      type: string
                    in:
                      description: Location of the error (e.g., body, query, header)
                      enum:
                      - body
                      - query
                      type: string
                    location:
                      description: Location in the document where the error occurred
                        (JSON Pointer)
                      example: '#/foo[0]/bar'
                      type: string
                  required:
                  - in
                  - location
                  - code
                  - detail
                  type: object
                type: array
              status:
                description: The HTTP status code generated by the origin server for
                  this occurrence of the problem
                example: 400
                type: integer
              title:
                description: A short, human-readable summary of the problem type
                example: Request validation failed
                type: string
            required:
            - status
            - title
            title: Problem JSON
            type: object
      description: Resource does not exist
      headers:
        API-Version:
          description: Semver of this API
          example: 1.0.0
          schema:
            example: 1.0.0
            externalDocs:
              description: ' /core/version-header: Return the full version number
                in a response header'
              url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
            pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
            type: string
  securitySchemes:
    apiKey:
      description: Read-only API keys for public endpoints can be requested at https://apis.developer.overheid.nl/apis/key-aanvragen.
      in: header
      name: X-Api-Key
      type: apiKey
    clientCredentials:
      flows:
        clientCredentials:
          scopes:
            apis:read: Read access to APIs
            apis:write: Write access to APIIs
            gitOrganisations:read: Read access to git organisations
            gitOrganisations:write: Write access to git organisations
            organisations:read: Read access to organisations
            organisations:write: Write access to organisations
            repositories:read: Read access to repositories
            repositories:write: Write access to repositories
            tools: Access to tools
          tokenUrl: https://auth.developer.overheid.nl/realms/don/protocol/openid-connect/token
      type: oauth2
info:
  contact:
    email: developer.overheid@geonovum.nl
    name: Team developer.overheid.nl
    url: https://github.com/developer-overheid-nl/don-api-register/issues
  description: |
    API to access the API register of developer.overheid.nl.

    ## Auth

    This API distinguishes between public and private endpoints.
    Public endpoints can be accessed with either an API key or a client credentials token.
    Private endpoints can only be accessed with a client credentials token.

    ### API key

    Using an API key, you can access all public endpoints of the API register.
    These requests can also be made from the browser.
    Request a read-only API key at https://apis.developer.overheid.nl/apis/key-aanvragen.
    Simply pass the obtained API key with each request using the `X-Api-Key` header.

    ### Client credentials token

    Using a client credentials token, you can access both public and private endpoints of the API register.
    To obtain the token, you need to perform a `POST` request to `https://auth.developer.overheid.nl/realms/don/protocol/openid-connect/token` with the following Form URL Encoded body:
    - `grant_type`: `client_credentials`
    - `scope`: depending on the access you need and the client you are, you can request one or more of the following scopes:
      - `apis:read`
      - `apis:write`
      - `organisations:read`
      - `organisations:write`
    - `client_id`: the client id you received from us
    - `client_secret`: the client secret you received from us

    Pass the obtained token with each request using the `Authorization` header. Example:

    `Authorization`: `Bearer {ACCESS_TOKEN}` (replace `{ACCESS_TOKEN}` with the obtained `access_token`)

    ## Pagination

    Pagination of collections is done using the `Link` header.
    There are various libraries available (such as [parse-link-header](https://www.npmjs.com/package/parse-link-header) for Javascript) that can parse this header.
    Additionally, the following headers provide extra support for implementing pagination in the client:
    - `Current-Page`: the current page in the collection
    - `Per-Page`: the number of items per page
    - `Total-Count`: the total number of items
    - `Total-Pages`: the total number of pages
  title: API register API v1
  version: 1.0.0
openapi: 3.1.0
paths:
  /apis:
    get:
      description: List all APIs
      operationId: listApis
      parameters:
      - description: Page number (1-based).
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: integer
      - description: Number of results per page.
        in: query
        name: perPage
        required: false
        schema:
          default: 20
          maximum: 100
          minimum: 1
          type: integer
      - description: Filter on organisation URI.
        in: query
        name: organisation
        required: false
        schema:
          format: uri
          type: string
      - description: Comma-separated list of API IDs.
        in: query
        name: ids
        required: false
        schema:
          example: dicF0B3HR,diC1D4EHR
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: An API from the catalog
                  properties:
                    adrScore:
                      description: The ADR score of the API
                      examples:
                      - 85
                      maximum: 100
                      minimum: 0
                      type:
                      - number
                      - "null"
                    contact:
                      description: Contact details
                      properties:
                        email:
                          description: The email address of the contact
                          examples:
                          - developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          description: The name of the contact
                          examples:
                          - Developer Overheid
                          type: string
                        url:
                          description: The URL of the contact
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      title: Contact
                      type: object
                    description:
                      description: The description of the API
                      examples:
                      - This is version 1 of the API register. This description can
                        also contain Markdown.
                      type: string
                    id:
                      description: The unique identifier for an API
                      examples:
                      - dicF0B3HR
                      readOnly: true
                      type: string
                    lifecycle:
                      description: The lifecycle status of the API
                      properties:
                        from:
                          description: The date from which the lifecycle status is/has
                            been deprecated, sunset or retired.
                          examples:
                          - "2025-01-15"
                          format: date
                          type:
                          - string
                          - "null"
                        status:
                          description: The lifecycle status
                          enum:
                          - active
                          - deprecated
                          - sunset
                          - retired
                          examples:
                          - deprecated
                          - sunset
                          - retired
                          type: string
                        version:
                          description: The version of the API
                          examples:
                          - 1.0.0
                          type: string
                      required:
                      - status
                      - version
                      title: Lifecycle
                      type: object
                    organisation:
                      description: An organisation from the catalog
                      properties:
                        label:
                          description: The label of the organisation
                          examples:
                          - developer.overheid.nl
                          type: string
                        uri:
                          description: The unique identifier for an organisation
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          title: Organisation URI
                          type: string
                      required:
                      - uri
                      - label
                      title: Organisation summary
                      type: object
                    title:
                      description: The title of the API
                      examples:
                      - API register API v1
                      type: string
                  required:
                  - id
                  - contact
                  - title
                  - description
                  - organisation
                  - adrScore
                  - lifecycle
                  title: API
                  type: object
                type: array
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
            Current-Page:
              description: Current page number
              example: 1
              schema:
                example: 1
                type: integer
            Link:
              description: Links to the previous, next, last or first pages
              example: <https://api.developer.overheid.nl/api-register/v1/apis?page=2>;
                rel='prev', <https://api.developer.overheid.nl/api-register/v1/apis?page=3>;
                rel='next'
              schema:
                example: <https://api.developer.overheid.nl/api-register/v1/apis?page=2>;
                  rel='prev', <https://api.developer.overheid.nl/api-register/v1/apis?page=3>;
                  rel='next'
                externalDocs:
                  description: W3C reference
                  url: https://www.w3.org/wiki/LinkHeader
                type: string
            Per-Page:
              description: Number of items per page
              example: 10
              schema:
                example: 10
                type: integer
            Total-Count:
              description: Total number of items available
              example: 124
              schema:
                example: 124
                type: integer
            Total-Pages:
              description: Total number of pages available
              example: 13
              schema:
                example: 13
                type: integer
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: List all APIs
      tags:
      - Public endpoints
      - APIs
    post:
      description: Register a new API
      operationId: createApi
      requestBody:
        content:
          application/json:
            schema:
              description: An OSS repository from the catalog
              properties:
                contact:
                  description: Contact details
                  properties:
                    email:
                      description: The email address of the contact
                      examples:
                      - developer.overheid@geonovum.nl
                      format: email
                      type: string
                    name:
                      description: The name of the contact
                      examples:
                      - Developer Overheid
                      type: string
                    url:
                      description: The URL of the contact
                      examples:
                      - https://developer.overheid.nl
                      format: uri
                      type: string
                  required:
                  - email
                  - name
                  - url
                  title: Contact
                  type: object
                oasUrl:
                  description: The URL of the OAS document
                  examples:
                  - https://api.developer.overheid.nl/api-register/v1/openapi.json
                  format: uri
                  title: OAS Url
                  type: string
                organisationUri:
                  description: The unique identifier for an organisation
                  examples:
                  - https://developer.overheid.nl
                  format: uri
                  title: Organisation URI
                  type: string
              required:
              - oasUrl
              - organisationUri
              title: API Input
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                allOf:
                - description: An API from the catalog
                  properties:
                    adrScore:
                      description: The ADR score of the API
                      examples:
                      - 85
                      maximum: 100
                      minimum: 0
                      type:
                      - number
                      - "null"
                    contact:
                      description: Contact details
                      properties:
                        email:
                          description: The email address of the contact
                          examples:
                          - developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          description: The name of the contact
                          examples:
                          - Developer Overheid
                          type: string
                        url:
                          description: The URL of the contact
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      title: Contact
                      type: object
                    description:
                      description: The description of the API
                      examples:
                      - This is version 1 of the API register. This description can
                        also contain Markdown.
                      type: string
                    id:
                      description: The unique identifier for an API
                      examples:
                      - dicF0B3HR
                      readOnly: true
                      type: string
                    lifecycle:
                      description: The lifecycle status of the API
                      properties:
                        from:
                          description: The date from which the lifecycle status is/has
                            been deprecated, sunset or retired.
                          examples:
                          - "2025-01-15"
                          format: date
                          type:
                          - string
                          - "null"
                        status:
                          description: The lifecycle status
                          enum:
                          - active
                          - deprecated
                          - sunset
                          - retired
                          examples:
                          - deprecated
                          - sunset
                          - retired
                          type: string
                        version:
                          description: The version of the API
                          examples:
                          - 1.0.0
                          type: string
                      required:
                      - status
                      - version
                      title: Lifecycle
                      type: object
                    organisation:
                      description: An organisation from the catalog
                      properties:
                        label:
                          description: The label of the organisation
                          examples:
                          - developer.overheid.nl
                          type: string
                        uri:
                          description: The unique identifier for an organisation
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          title: Organisation URI
                          type: string
                      required:
                      - uri
                      - label
                      title: Organisation summary
                      type: object
                    title:
                      description: The title of the API
                      examples:
                      - API register API v1
                      type: string
                  required:
                  - id
                  - contact
                  - title
                  - description
                  - organisation
                  - adrScore
                  - lifecycle
                  title: API
                  type: object
                - properties:
                    auth:
                      description: The authentication methods supported by the API
                      items:
                        examples:
                        - OAuth2
                        - API Key
                        type: string
                      type: array
                    docsUrl:
                      description: The URL to the documentation of the API
                      examples:
                      - https://developer.overheid.nl/kennisbank/
                      format: uri
                      type:
                      - string
                      - "null"
                    oasUrl:
                      description: The URL of the OAS document
                      examples:
                      - https://api.developer.overheid.nl/api-register/v1/openapi.json
                      format: uri
                      type:
                      - string
                      - "null"
                    servers:
                      items:
                        properties:
                          description:
                            description: A description of the server
                            examples:
                            - Production server
                            type: string
                          url:
                            description: The URL of the server
                            examples:
                            - https://api.developer.overheid.nl/api-register/v1
                            format: uri
                            type: string
                        required:
                        - url
                        - description
                        type: object
                  required:
                  - oasUrl
                  - auth
                  - docsUrl
                  - servers
                  type: object
                description: An API from the catalog
                title: API
                type: object
          description: Created
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - clientCredentials:
        - apis:write
      summary: Register a new API
      tags:
      - Private endpoints
      - APIs
  /apis/_search:
    get:
      description: Returns a list of repositories matching the search query.
      operationId: searchApis
      parameters:
      - description: Page number (1-based).
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: integer
      - description: Number of results per page.
        in: query
        name: perPage
        required: false
        schema:
          default: 20
          maximum: 100
          minimum: 1
          type: integer
      - description: Filter on organisation URI.
        in: query
        name: organisation
        required: false
        schema:
          format: uri
          type: string
      - description: Search term.
        in: query
        name: q
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: An API from the catalog
                  properties:
                    adrScore:
                      description: The ADR score of the API
                      examples:
                      - 85
                      maximum: 100
                      minimum: 0
                      type:
                      - number
                      - "null"
                    contact:
                      description: Contact details
                      properties:
                        email:
                          description: The email address of the contact
                          examples:
                          - developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          description: The name of the contact
                          examples:
                          - Developer Overheid
                          type: string
                        url:
                          description: The URL of the contact
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      title: Contact
                      type: object
                    description:
                      description: The description of the API
                      examples:
                      - This is version 1 of the API register. This description can
                        also contain Markdown.
                      type: string
                    id:
                      description: The unique identifier for an API
                      examples:
                      - dicF0B3HR
                      readOnly: true
                      type: string
                    lifecycle:
                      description: The lifecycle status of the API
                      properties:
                        from:
                          description: The date from which the lifecycle status is/has
                            been deprecated, sunset or retired.
                          examples:
                          - "2025-01-15"
                          format: date
                          type:
                          - string
                          - "null"
                        status:
                          description: The lifecycle status
                          enum:
                          - active
                          - deprecated
                          - sunset
                          - retired
                          examples:
                          - deprecated
                          - sunset
                          - retired
                          type: string
                        version:
                          description: The version of the API
                          examples:
                          - 1.0.0
                          type: string
                      required:
                      - status
                      - version
                      title: Lifecycle
                      type: object
                    organisation:
                      description: An organisation from the catalog
                      properties:
                        label:
                          description: The label of the organisation
                          examples:
                          - developer.overheid.nl
                          type: string
                        uri:
                          description: The unique identifier for an organisation
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          title: Organisation URI
                          type: string
                      required:
                      - uri
                      - label
                      title: Organisation summary
                      type: object
                    title:
                      description: The title of the API
                      examples:
                      - API register API v1
                      type: string
                  required:
                  - id
                  - contact
                  - title
                  - description
                  - organisation
                  - adrScore
                  - lifecycle
                  title: API
                  type: object
                type: array
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
            Current-Page:
              description: Current page number
              example: 1
              schema:
                example: 1
                type: integer
            Link:
              description: Links to the previous, next, last or first pages
              example: <https://api.developer.overheid.nl/api-register/v1/apis?page=2>;
                rel='prev', <https://api.developer.overheid.nl/api-register/v1/apis?page=3>;
                rel='next'
              schema:
                example: <https://api.developer.overheid.nl/api-register/v1/apis?page=2>;
                  rel='prev', <https://api.developer.overheid.nl/api-register/v1/apis?page=3>;
                  rel='next'
                externalDocs:
                  description: W3C reference
                  url: https://www.w3.org/wiki/LinkHeader
                type: string
            Per-Page:
              description: Number of items per page
              example: 10
              schema:
                example: 10
                type: integer
            Total-Count:
              description: Total number of items available
              example: 124
              schema:
                example: 124
                type: integer
            Total-Pages:
              description: Total number of pages available
              example: 13
              schema:
                example: 13
                type: integer
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      summary: Search apis
      tags:
      - Public endpoints
      - APIs
  /apis/{id}:
    get:
      description: Retrieve a specific API
      operationId: retreiveApi
      responses:
        "200":
          content:
            application/json:
              schema:
                allOf:
                - description: An API from the catalog
                  properties:
                    adrScore:
                      description: The ADR score of the API
                      examples:
                      - 85
                      maximum: 100
                      minimum: 0
                      type:
                      - number
                      - "null"
                    contact:
                      description: Contact details
                      properties:
                        email:
                          description: The email address of the contact
                          examples:
                          - developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          description: The name of the contact
                          examples:
                          - Developer Overheid
                          type: string
                        url:
                          description: The URL of the contact
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      title: Contact
                      type: object
                    description:
                      description: The description of the API
                      examples:
                      - This is version 1 of the API register. This description can
                        also contain Markdown.
                      type: string
                    id:
                      description: The unique identifier for an API
                      examples:
                      - dicF0B3HR
                      readOnly: true
                      type: string
                    lifecycle:
                      description: The lifecycle status of the API
                      properties:
                        from:
                          description: The date from which the lifecycle status is/has
                            been deprecated, sunset or retired.
                          examples:
                          - "2025-01-15"
                          format: date
                          type:
                          - string
                          - "null"
                        status:
                          description: The lifecycle status
                          enum:
                          - active
                          - deprecated
                          - sunset
                          - retired
                          examples:
                          - deprecated
                          - sunset
                          - retired
                          type: string
                        version:
                          description: The version of the API
                          examples:
                          - 1.0.0
                          type: string
                      required:
                      - status
                      - version
                      title: Lifecycle
                      type: object
                    organisation:
                      description: An organisation from the catalog
                      properties:
                        label:
                          description: The label of the organisation
                          examples:
                          - developer.overheid.nl
                          type: string
                        uri:
                          description: The unique identifier for an organisation
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          title: Organisation URI
                          type: string
                      required:
                      - uri
                      - label
                      title: Organisation summary
                      type: object
                    title:
                      description: The title of the API
                      examples:
                      - API register API v1
                      type: string
                  required:
                  - id
                  - contact
                  - title
                  - description
                  - organisation
                  - adrScore
                  - lifecycle
                  title: API
                  type: object
                - properties:
                    auth:
                      description: The authentication methods supported by the API
                      items:
                        examples:
                        - OAuth2
                        - API Key
                        type: string
                      type: array
                    docsUrl:
                      description: The URL to the documentation of the API
                      examples:
                      - https://developer.overheid.nl/kennisbank/
                      format: uri
                      type:
                      - string
                      - "null"
                    oasUrl:
                      description: The URL of the OAS document
                      examples:
                      - https://api.developer.overheid.nl/api-register/v1/openapi.json
                      format: uri
                      type:
                      - string
                      - "null"
                    servers:
                      items:
                        properties:
                          description:
                            description: A description of the server
                            examples:
                            - Production server
                            type: string
                          url:
                            description: The URL of the server
                            examples:
                            - https://api.developer.overheid.nl/api-register/v1
                            format: uri
                            type: string
                        required:
                        - url
                        - description
                        type: object
                  required:
                  - oasUrl
                  - auth
                  - docsUrl
                  - servers
                  type: object
                description: An API from the catalog
                title: API
                type: object
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "404":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Resource does not exist
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: Retrieve a specific API
      tags:
      - Public endpoints
      - APIs
    parameters:
    - description: Unique identifier of the resource.
      in: path
      name: id
      required: true
      schema:
        type: string
    put:
      description: Update a specific API
      operationId: updateApi
      requestBody:
        content:
          application/json:
            schema:
              description: An OSS repository from the catalog
              properties:
                contact:
                  description: Contact details
                  properties:
                    email:
                      description: The email address of the contact
                      examples:
                      - developer.overheid@geonovum.nl
                      format: email
                      type: string
                    name:
                      description: The name of the contact
                      examples:
                      - Developer Overheid
                      type: string
                    url:
                      description: The URL of the contact
                      examples:
                      - https://developer.overheid.nl
                      format: uri
                      type: string
                  required:
                  - email
                  - name
                  - url
                  title: Contact
                  type: object
                oasUrl:
                  description: The URL of the OAS document
                  examples:
                  - https://api.developer.overheid.nl/api-register/v1/openapi.json
                  format: uri
                  title: OAS Url
                  type: string
                organisationUri:
                  description: The unique identifier for an organisation
                  examples:
                  - https://developer.overheid.nl
                  format: uri
                  title: Organisation URI
                  type: string
              required:
              - oasUrl
              - organisationUri
              title: API Input
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                allOf:
                - description: An API from the catalog
                  properties:
                    adrScore:
                      description: The ADR score of the API
                      examples:
                      - 85
                      maximum: 100
                      minimum: 0
                      type:
                      - number
                      - "null"
                    contact:
                      description: Contact details
                      properties:
                        email:
                          description: The email address of the contact
                          examples:
                          - developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          description: The name of the contact
                          examples:
                          - Developer Overheid
                          type: string
                        url:
                          description: The URL of the contact
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      title: Contact
                      type: object
                    description:
                      description: The description of the API
                      examples:
                      - This is version 1 of the API register. This description can
                        also contain Markdown.
                      type: string
                    id:
                      description: The unique identifier for an API
                      examples:
                      - dicF0B3HR
                      readOnly: true
                      type: string
                    lifecycle:
                      description: The lifecycle status of the API
                      properties:
                        from:
                          description: The date from which the lifecycle status is/has
                            been deprecated, sunset or retired.
                          examples:
                          - "2025-01-15"
                          format: date
                          type:
                          - string
                          - "null"
                        status:
                          description: The lifecycle status
                          enum:
                          - active
                          - deprecated
                          - sunset
                          - retired
                          examples:
                          - deprecated
                          - sunset
                          - retired
                          type: string
                        version:
                          description: The version of the API
                          examples:
                          - 1.0.0
                          type: string
                      required:
                      - status
                      - version
                      title: Lifecycle
                      type: object
                    organisation:
                      description: An organisation from the catalog
                      properties:
                        label:
                          description: The label of the organisation
                          examples:
                          - developer.overheid.nl
                          type: string
                        uri:
                          description: The unique identifier for an organisation
                          examples:
                          - https://developer.overheid.nl
                          format: uri
                          title: Organisation URI
                          type: string
                      required:
                      - uri
                      - label
                      title: Organisation summary
                      type: object
                    title:
                      description: The title of the API
                      examples:
                      - API register API v1
                      type: string
                  required:
                  - id
                  - contact
                  - title
                  - description
                  - organisation
                  - adrScore
                  - lifecycle
                  title: API
                  type: object
                - properties:
                    auth:
                      description: The authentication methods supported by the API
                      items:
                        examples:
                        - OAuth2
                        - API Key
                        type: string
                      type: array
                    docsUrl:
                      description: The URL to the documentation of the API
                      examples:
                      - https://developer.overheid.nl/kennisbank/
                      format: uri
                      type:
                      - string
                      - "null"
                    oasUrl:
                      description: The URL of the OAS document
                      examples:
                      - https://api.developer.overheid.nl/api-register/v1/openapi.json
                      format: uri
                      type:
                      - string
                      - "null"
                    servers:
                      items:
                        properties:
                          description:
                            description: A description of the server
                            examples:
                            - Production server
                            type: string
                          url:
                            description: The URL of the server
                            examples:
                            - https://api.developer.overheid.nl/api-register/v1
                            format: uri
                            type: string
                        required:
                        - url
                        - description
                        type: object
                  required:
                  - oasUrl
                  - auth
                  - docsUrl
                  - servers
                  type: object
                description: An API from the catalog
                title: API
                type: object
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "404":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Resource does not exist
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - clientCredentials:
        - apis:write
      summary: Update a specific API
      tags:
      - Private endpoints
      - APIs
  /apis/{id}/oas/{version}:
    get:
      description: Returns the OAS 3.0 or 3.1 specification in JSON or YAML.
      operationId: getOasVersion
      responses:
        "200":
          content:
            application/json:
              schema:
                description: OpenAPI document in JSON format.
                type: object
            application/yaml:
              schema:
                description: OpenAPI document in YAML format.
                type: string
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
            OAS-Source:
              description: Source of the OAS document.
              example: repository
              schema:
                example: repository
                type: string
            OAS-Version:
              description: Returned OAS version (e.g. 3.0 or 3.1).
              example: "3.1"
              schema:
                example: "3.1"
                type: string
        "400":
          $ref: '#/components/responses/400'
        "404":
          $ref: '#/components/responses/404'
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: Download OAS document
      tags:
      - Public endpoints
      - APIs
    parameters:
    - description: Unique identifier of the resource.
      in: path
      name: id
      required: true
      schema:
        type: string
    - description: OAS version and format, e.g. 3.0.json or 3.1.yaml.
      in: path
      name: version
      required: true
      schema:
        example: 3.0.json
        type: string
  /apis/{id}/postman:
    get:
      description: Returns the generated Postman JSON.
      operationId: getPostman
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Postman collection.
                type: object
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "404":
          $ref: '#/components/responses/404'
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: Download Postman collection
      tags:
      - Public endpoints
      - APIs
    parameters:
    - description: Unique identifier of the resource.
      in: path
      name: id
      required: true
      schema:
        type: string
  /lint-results:
    get:
      description: Returns all lint results.
      operationId: listLintResults
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  properties:
                    ApiID:
                      type: string
                    CreatedAt:
                      format: date-time
                      type: string
                    ID:
                      type: string
                    failures:
                      type: integer
                    messages:
                      items:
                        properties:
                          CreatedAt:
                            format: date-time
                            type: string
                          code:
                            type: string
                          column:
                            type: integer
                          id:
                            type: string
                          infos:
                            items:
                              properties:
                                id:
                                  type: string
                                lintMessageId:
                                  type: string
                                message:
                                  type: string
                                path:
                                  type: string
                              required:
                              - id
                              - lintMessageId
                              - message
                              - path
                              type: object
                            type: array
                          line:
                            type: integer
                          lintResultId:
                            type: string
                          severity:
                            type: string
                        required:
                        - id
                        - lintResultId
                        - line
                        - column
                        - severity
                        - code
                        - CreatedAt
                        type: object
                      type: array
                    rulesetVersion:
                      type: string
                    successes:
                      type: boolean
                    warnings:
                      type: integer
                  required:
                  - ID
                  - ApiID
                  - successes
                  - failures
                  - warnings
                  - CreatedAt
                  type: object
                type: array
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - clientCredentials:
        - apis:read
      summary: List all lint results
      tags:
      - Private endpoints
      - APIs
  /openapi.json:
    get:
      description: Download the OpenAPI specification for this API.
      operationId: getOpenApiSpecification
      responses:
        "200":
          content:
            application/json:
              schema:
                description: OpenAPI 3 specification for the API.
                type: object
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      summary: OpenAPI documentation
      tags:
      - Public endpoints
      - APIs
  /organisations:
    get:
      description: List all organisations
      operationId: listOrganisations
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: An organisation from the catalog
                  properties:
                    label:
                      description: The label of the organisation
                      examples:
                      - developer.overheid.nl
                      type: string
                    uri:
                      description: The unique identifier for an organisation
                      examples:
                      - https://developer.overheid.nl
                      format: uri
                      title: Organisation URI
                      type: string
                  required:
                  - uri
                  - label
                  title: Organisation summary
                  type: object
                type: array
          description: OK
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - organisations:read
      summary: List all organisations
      tags:
      - Public endpoints
      - Organisations
    post:
      description: Create a new organisation.
      operationId: createOrganisation
      requestBody:
        content:
          application/json:
            schema:
              description: An organisation from the catalog
              properties:
                label:
                  description: The label of the organisation
                  examples:
                  - developer.overheid.nl
                  type: string
                uri:
                  description: The unique identifier for an organisation
                  examples:
                  - https://developer.overheid.nl
                  format: uri
                  title: Organisation URI
                  type: string
              required:
              - uri
              - label
              title: Organisation summary
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                allOf:
                - description: An organisation from the catalog
                  properties:
                    label:
                      description: The label of the organisation
                      examples:
                      - developer.overheid.nl
                      type: string
                    uri:
                      description: The unique identifier for an organisation
                      examples:
                      - https://developer.overheid.nl
                      format: uri
                      title: Organisation URI
                      type: string
                  required:
                  - uri
                  - label
                  title: Organisation summary
                  type: object
                description: An organisation from the catalog
                title: Organisation
                type: object
          description: Created
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                description: Problem JSON schema representing errors and status code
                properties:
                  errors:
                    items:
                      description: List of errors encountered during processing
                      properties:
                        code:
                          description: A code representing the type of error
                          example: date.format
                          type: string
                        detail:
                          description: A detailed message describing the error
                          example: must be ISO 8601
                          type: string
                        in:
                          description: Location of the error (e.g., body, query, header)
                          enum:
                          - body
                          - query
                          type: string
                        location:
                          description: Location in the document where the error occurred
                            (JSON Pointer)
                          example: '#/foo[0]/bar'
                          type: string
                      required:
                      - in
                      - location
                      - code
                      - detail
                      type: object
                    type: array
                  status:
                    description: The HTTP status code generated by the origin server
                      for this occurrence of the problem
                    example: 400
                    type: integer
                  title:
                    description: A short, human-readable summary of the problem type
                    example: Request validation failed
                    type: string
                required:
                - status
                - title
                title: Problem JSON
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - {}
      - apiKey: []
      - clientCredentials:
        - organisations:write
      summary: Create organisation
      tags:
      - Private endpoints
      - Organisations
security:
- clientCredentials: []
servers:
- description: Production
  url: https://api.developer.overheid.nl/api-register/v1
- description: Test
  url: https://api.don.apps.digilab.network/api-register/v1
tags:
- description: Endpoints for listing and managing APIs.
  name: APIs
- description: Endpoints for listing and managing organisations.
  name: Organisations
- description: Public endpoints, accessible with an API key or client credentials
    token.
  name: Public endpoints
- description: Private endpoints of the API register, accessible with a client credentials
    token.
  name: Private endpoints
