X-Road (NIIS) Endpoints API

services' endpoints related endpoints

GitHub OpenAPI

Operations 6

GET /endpoints/{id} Get an endpoint by its id #
PATCH /endpoints/{id} Update an endpoint #
DELETE /endpoints/{id} delete endpoint #
GET /endpoints/{id}/service-clients get service clients who have access rights for the selected endpoint #
POST /endpoints/{id}/service-clients add access rights for given service clients to the selected endpoint #
POST /endpoints/{id}/service-clients/delete remove access rights from specified service clients to the selected endpoint #

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/x-road-global:x-road-global-endpoints-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

x-road-global-endpoints-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: X Road Global Endpoints API
  version: 2.1.0
  contact:
    name: Nordic Institute for Interoperability Solutions (NIIS)
    url: https://github.com/nordic-institute/X-Road-development/#enhancement-requests-and-error-reports
    email: info@niis.org
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  description: 'Operations tagged endpoints across 2 of this provider''s published API definitions: security-server-admin-openapi.yaml, x-road-global-security-server-admin-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /api/v1
  description: basepath for API v1
security:
- ApiKeyAuth: []
tags:
- name: Endpoints
  description: services' endpoints related endpoints
paths:
  /endpoints/{id}:
    get:
      tags:
      - Endpoints
      summary: Get an endpoint by its id
      operationId: getEndpoint
      description: Administrator fetches an endpoint.
      parameters:
      - in: path
        name: id
        description: id of the endpoint
        required: true
        schema:
          type: string
          example: 102
          format: text
          minLength: 1
      responses:
        '200':
          description: endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Endpoint'
        '400':
          description: request was invalid
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '406':
          description: request specified an invalid format
        '500':
          description: internal server error
    patch:
      tags:
      - Endpoints
      summary: Update an endpoint
      operationId: updateEndpoint
      description: Administrator updates an endpoint.
      parameters:
      - in: path
        name: id
        description: id of the endpoint
        required: true
        schema:
          type: string
          example: 102
          format: text
          minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndpointUpdate'
      responses:
        '200':
          description: endpoint updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Endpoint'
        '400':
          description: request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_response:
                  $ref: '#/components/examples/ErrorExample'
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '406':
          description: request specified an invalid format
        '409':
          description: an existing item already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '500':
          description: internal server error
    delete:
      tags:
      - Endpoints
      summary: delete endpoint
      operationId: deleteEndpoint
      description: Administrator removes an endpoint.
      parameters:
      - in: path
        name: id
        required: true
        description: id of the endpoint
        schema:
          type: string
          example: 102
          format: text
          minLength: 1
      responses:
        '204':
          description: endpoint deleted
        '400':
          description: request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_response:
                  $ref: '#/components/examples/ErrorExample'
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '406':
          description: request specified an invalid format
        '500':
          description: internal server error
    servers:
    - url: /api/v1
      description: basepath for API v1
  /endpoints/{id}/service-clients:
    get:
      tags:
      - Endpoints
      summary: get service clients who have access rights for the selected endpoint
      operationId: getEndpointServiceClients
      description: Administrator views endpoints access rights.
      parameters:
      - in: path
        name: id
        description: id of the endpoint
        required: true
        schema:
          type: string
          format: text
          minLength: 1
      responses:
        '200':
          description: list of access rights
          content:
            application/json:
              schema:
                type: array
                uniqueItems: true
                description: array of access right objects
                items:
                  $ref: '#/components/schemas/ServiceClient'
        '400':
          description: request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_response:
                  $ref: '#/components/examples/ErrorExample'
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '406':
          description: request specified an invalid format
        '500':
          description: internal server error
    post:
      tags:
      - Endpoints
      summary: add access rights for given service clients to the selected endpoint
      operationId: addEndpointServiceClients
      description: Administrator add access rights for a service clients to the selected endpoint.
      parameters:
      - in: path
        name: id
        description: id of the endpoint
        required: true
        schema:
          type: string
          format: text
          minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceClients'
            examples:
              id_array_example:
                $ref: '#/components/examples/IdArrayExample'
      responses:
        '201':
          description: access rights added
          content:
            application/json:
              schema:
                type: array
                uniqueItems: true
                description: array of added service client objects
                items:
                  $ref: '#/components/schemas/ServiceClient'
        '400':
          description: request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_response:
                  $ref: '#/components/examples/ErrorExample'
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
        '406':
          description: request specified an invalid format
        '409':
          description: an existing item already exists
        '500':
          description: internal server error
    servers:
    - url: /api/v1
      description: basepath for API v1
  /endpoints/{id}/service-clients/delete:
    post:
      tags:
      - Endpoints
      summary: remove access rights from specified service clients to the selected endpoint
      operationId: deleteEndpointServiceClients
      description: Administrator removes access rights from a service clients to an endpoint.
      parameters:
      - in: path
        name: id
        description: id of the endpoint
        required: true
        schema:
          type: string
          format: text
          minLength: 1
      requestBody:
        description: Service client to be removed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceClients'
            examples:
              id_array_example:
                $ref: '#/components/examples/IdArrayExample'
      responses:
        '204':
          description: access right(s) deleted
        '400':
          description: request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              examples:
                error_response:
                  $ref: '#/components/examples/ErrorExample'
                error_metadata_response:
                  $ref: '#/components/examples/ErrorWithMetadataExample'
        '401':
          description: authentication credentials are missing
        '403':
          description: request has been refused
        '404':
          description: resource requested does not exists
        '406':
          description: request specified an invalid format
        '500':
          description: internal server error
    servers:
    - url: /api/v1
      description: basepath for API v1
components:
  schemas:
    ServiceClients:
      type: object
      description: object containing and array of ServiceClients
      properties:
        items:
          type: array
          uniqueItems: true
          description: array of ServiceClients
          items:
            $ref: '#/components/schemas/ServiceClient'
    ServiceClient:
      type: object
      description: service client. May be a subsystem, local group, or a global group
      required:
      - id
      properties:
        id:
          type: string
          format: text
          description: subject id - can be a subsystem id <instance_id>:<member_class>:<member_code>:<subsystem> | globalgroup id <instance_id>:<group_code> | localgroup resource id in number format <id>
          example: DEV:ORG:1234:Subsystem | DEV:security-server-owners | 123
          minLength: 1
          maxLength: 1279
        name:
          type: string
          format: text
          description: name of the ServiceClient - can be the name of a member or the description of a group
          example: Security server owners
          readOnly: true
          minLength: 1
          maxLength: 255
        local_group_code:
          type: string
          format: text
          description: group code in case the object is a local group
          example: My own Local group code
          minLength: 1
          maxLength: 255
          readOnly: true
        service_client_type:
          $ref: '#/components/schemas/ServiceClientType'
        rights_given_at:
          type: string
          format: date-time
          description: time when access right were given at. When listing client's service clients without specifying the service, the time when first service access right was given to this service client for any service. When listing service clients for a specific service, time when service client was added permission to that service.
          example: '2018-12-15T00:00:00.001Z'
          readOnly: true
    ServiceClientType:
      type: string
      format: text
      description: subject type
      example: GLOBALGROUP
      readOnly: true
      enum:
      - GLOBALGROUP
      - LOCALGROUP
      - SUBSYSTEM
    Endpoint:
      type: object
      description: Endpoint for a service
      required:
      - service_code
      - method
      - path
      properties:
        id:
          type: string
          description: unique identifier
          example: 15
        service_code:
          type: string
          example: example_service_code
          description: service code
        client_id:
          type: string
          format: text
          description: <instance_id>:<member_class>:<member_code>:<subsystem>(optional)
          example: FI:GOV:123:ABC
          readOnly: true
          minLength: 1
          maxLength: 255
        method:
          type: string
          description: http method mapped to this endpoint
          example: GET
          enum:
          - '*'
          - GET
          - POST
          - PUT
          - DELETE
          - PATCH
          - HEAD
          - OPTIONS
          - TRACE
        path:
          type: string
          description: relative path where this endpoint is mapped to
          example: /foo
        generated:
          type: boolean
          description: has endpoint been generated from openapi3 description
          example: true
          readOnly: true
    EndpointUpdate:
      type: object
      description: Object for updating endpoints method and/or path
      required:
      - method
      - path
      properties:
        method:
          type: string
          description: http method mapped to this endpoint
          example: GET
          enum:
          - '*'
          - GET
          - POST
          - PUT
          - DELETE
          - PATCH
          - HEAD
          - OPTIONS
          - TRACE
        path:
          type: string
          description: relative path where this endpoint is mapped to
          example: /foo
    ErrorInfo:
      $ref: ../../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/schemas/ErrorInfo
  examples:
    ErrorExample:
      $ref: ../../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/examples/ErrorExample
    IdArrayExample:
      summary: Id array request body example
      value:
        items:
        - DEV:ORG:1234:Subsystem
        - DEV:security-server-owners
        - '123'
    ErrorWithMetadataExample:
      $ref: ../../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/examples/ErrorWithMetadataExample
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: X-Road-ApiKey token=<api key>
x-refined-from:
- security-server-admin-openapi.yaml
- x-road-global-security-server-admin-openapi.yml