X-Road (NIIS) Security Servers API

resources related to Security Servers

GitHub OpenAPI

Operations 11

GET /members/{member_id}/owned-servers Get owned servers #
GET /members/{member_id}/used-servers Get used servers #
DELETE /members/{member_id}/servers/{server_id} delete a member #
GET /security-servers find security servers #
DELETE /security-servers/{server_id} delete a security server #
GET /security-servers/{server_id} get a security server by its id #
PATCH /security-servers/{server_id} update the security server's address #
GET /security-servers/{server_id}/authentication-certificates get a security server's authentication certificates #
DELETE /security-servers/{server_id}/authentication-certificates/{certificate_id} delete a security server's authentication certificate #
GET /security-servers/{server_id}/clients get a security server's clients #
GET /security-servers/{id} get security server information #

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-security-servers-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-security-servers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: X Road Global Security Servers API
  contact:
    email: info@niis.org
    name: Nordic Institute for Interoperability Solutions (NIIS)
    url: https://github.com/nordic-institute/X-Road-development/#enhancement-requests-and-error-reports
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: '1.0'
  description: 'Operations tagged security-servers across 4 of this provider''s published API definitions: central-server-admin-openapi.yaml, security-server-admin-openapi.yaml, x-road-global-central-server-admin-openapi.yml, x-road-global-security-server-admin-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: basepath for API v1
  url: /api/v1
security:
- ApiKeyAuth: []
tags:
- name: security-servers
  description: resources related to Security Servers
paths:
  /members/{member_id}/owned-servers:
    get:
      description: CS administrator views a members' owned servers.
      operationId: getOwnedServers
      parameters:
      - $ref: '#/components/parameters/MemberIdParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                description: array of member security servers
                items:
                  $ref: '#/components/schemas/SecurityServer'
                type: array
                uniqueItems: false
          description: List of member's global groups
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - security-servers
      summary: Get owned servers
      x-summary-source: derived
    servers:
    - description: basepath for API v1
      url: /api/v1
  /members/{member_id}/used-servers:
    get:
      description: CS administrator views a servers, where member is registered as a client.
      operationId: getUsedServers
      parameters:
      - $ref: '#/components/parameters/MemberIdParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                description: array of member security servers
                items:
                  $ref: '#/components/schemas/SecurityServer'
                type: array
                uniqueItems: false
          description: List of member's global groups
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - security-servers
      summary: Get used servers
      x-summary-source: derived
    servers:
    - description: basepath for API v1
      url: /api/v1
  /members/{member_id}/servers/{server_id}:
    delete:
      description: CS administrator unregisters a member from a Security Server
      operationId: unregisterMember
      parameters:
      - $ref: '#/components/parameters/MemberIdParam'
      - $ref: '#/components/parameters/ServerIdParam'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: delete a member
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers:
    get:
      description: CS administrator searches for X-Road Security Servers that are registered in the central server.
      operationId: findSecurityServers
      parameters:
      - description: 'An optional generic filtering query parameter selects only items that contain parameter value in visible properties server code, server owner name, server owner class and owner code. Needs to be properly encoded for the special characters, too. Empty value means the parameter is ignored.

          '
        in: query
        name: q
        required: false
        schema:
          example: foobar
          format: text
          maxLength: 255
          type: string
      - description: "optional paging and sorting parameters. Sorting possible according to one of the following values: <ul>\n    <li><b>xroad_id.server_code</b> for server code ,</li>\n    <li><b>owner_name</b> for server owner name,</li>\n    <li><b>xroad_id.member_class</b> for server owner class or</li>\n    <li><b>xroad_id.member_code</b> for owner code.</li>\n</ul>\n"
        in: query
        name: paging_sorting
        required: false
        schema:
          $ref: '#/components/schemas/PagingSortingParameters'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedSecurityServers'
          description: paged security servers results
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: find security servers
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers/{server_id}:
    parameters:
    - $ref: '#/components/parameters/ServerIdParam'
    delete:
      description: CS administrator deletes a security server. System generates deletion requests for the clients and authentication certificates registered for the deleted server.
      operationId: deleteSecurityServer
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: delete a security server
      tags:
      - security-servers
    get:
      description: CS administrator views a Security Server's details.
      operationId: getSecurityServer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecurityServer'
          description: a security server
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: get a security server by its id
      tags:
      - security-servers
    patch:
      description: CS administrator changes the address of a security server.
      operationId: updateSecurityServerAddress
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecurityServerAddress'
        description: security server address
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecurityServer'
          description: the updated security server
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: update the security server's address
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers/{server_id}/authentication-certificates:
    get:
      description: CS administrator views a Security Server's authentication certificates.
      operationId: getSecurityServerAuthCerts
      parameters:
      - $ref: '#/components/parameters/ServerIdParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                description: array of auth certs
                items:
                  $ref: '#/components/schemas/SecurityServerAuthenticationCertificateDetails'
                type: array
                uniqueItems: false
          description: list of auth certs
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: get a security server's authentication certificates
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers/{server_id}/authentication-certificates/{certificate_id}:
    delete:
      description: CS administrator deletes a Security Server's authentication certificate.
      operationId: deleteSecurityServerAuthCert
      parameters:
      - $ref: '#/components/parameters/ServerIdParam'
      - description: unique identifier of the authentication certificate
        in: path
        name: certificate_id
        required: true
        schema:
          minimum: 1
          format: int32
          type: integer
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: delete a security server's authentication certificate
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers/{server_id}/clients:
    get:
      description: CS administrator views a Security Server's clients.
      operationId: getSecurityServerClients
      parameters:
      - $ref: '#/components/parameters/ServerIdParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                description: clients
                items:
                  $ref: '#/components/schemas/Client'
                type: array
                uniqueItems: false
          description: list of clients
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: get a security server's clients
      tags:
      - security-servers
    servers:
    - description: basepath for API v1
      url: /api/v1
  /security-servers/{id}:
    get:
      tags:
      - security-servers
      summary: get security server information
      operationId: getSecurityServersById
      description: Administrator views the details of a security server.
      parameters:
      - in: path
        name: id
        description: id of the security server
        required: true
        schema:
          type: string
          format: text
          description: <instance_id>:<member_class>:<member_code>:<security_server_code>
          example: FI:GOV:123:sserver1
          minLength: 1
          maxLength: 1023
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecurityServer_2'
        '400':
          description: request was invalid
        '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
      x-operation-id-source: normalized
      x-operation-id-original: getSecurityServer
    servers:
    - url: /api/v1
      description: basepath for API v1
components:
  schemas:
    EncodedId:
      type: object
      description: Encoded identifier
      properties:
        encoded_id:
          readOnly: true
          type: string
          description: Encoded ID of Security Server, Member or Subsystem Id
    SecurityServer:
      allOf:
      - $ref: '#/components/schemas/SecurityServerAddress'
      - $ref: '#/components/schemas/ModificationTimestamps'
      description: security server information
      properties:
        server_id:
          $ref: '#/components/schemas/SecurityServerId'
        owner_name:
          type: string
          readOnly: true
        in_maintenance_mode:
          description: true if the security server is in maintenance mode, false otherwise
          type: boolean
          readOnly: true
        maintenance_mode_message:
          description: optional message of maintenance mode
          type: string
          readOnly: true
      required:
      - server_id
      - in_maintenance_mode
      type: object
    Client:
      allOf:
      - $ref: '#/components/schemas/MemberName'
      description: x-road member
      required:
      - client_id
      properties:
        client_id:
          $ref: '#/components/schemas/ClientId'
      type: object
    PagingSortingParameters:
      description: parameters for sorting and paging search results
      properties:
        sort:
          description: Indicates item property that is to be used as sorting key.
          example: title
          minLength: 2
          pattern: '[a-zA-Z_.]+'
          maxLength: 25
          type: string
        desc:
          description: 'Used sorting direction. Value ''true''  indicates descending and ''false'' or omitted parameter indicates ascending direction.

            '
          default: false
          type: boolean
        limit:
          description: 'Indicates the maximum number of items for the returned page.   If parameter is omitted, then the default amount of 25   is returned.

            '
          default: 25
          type: integer
          format: int32
        offset:
          description: 'Offset in pages from the beginning of the query result after filtering and sorting parameters are taken into account.  If the parameter omitted or the value 0 (zero) is given, the first page is returned.

            '
          default: 0
          type: integer
          format: int32
      type: object
    KeyUsage:
      description: certificate key usage
      enum:
      - DIGITAL_SIGNATURE
      - NON_REPUDIATION
      - KEY_ENCIPHERMENT
      - DATA_ENCIPHERMENT
      - KEY_AGREEMENT
      - KEY_CERT_SIGN
      - CRL_SIGN
      - ENCIPHER_ONLY
      - DECIPHER_ONLY
      example: NON_REPUDIATION
      type: string
    PagedSecurityServers:
      description: array of SecurityServers with paging metadata
      properties:
        items:
          description: Security Servers
          items:
            $ref: '#/components/schemas/SecurityServer'
          type: array
        paging_metadata:
          $ref: '#/components/schemas/PagingMetadata'
      required:
      - items
      - paging_metadata
      type: object
    XRoadId:
      type: object
      description: X-Road identifier
      discriminator:
        propertyName: type
        mapping:
          MEMBER: '#/components/schemas/ClientId'
          SERVER: '#/components/schemas/SecurityServerId'
          SUBSYSTEM: '#/components/schemas/ClientId'
      properties:
        instance_id:
          description: Xroad instance id. Cannot contain colons, semicolons, slashes, backslashes, percent signs or control characters
          example: FI
          format: text
          maxLength: 255
          minLength: 1
          type: string
          readOnly: true
        type:
          type: string
          enum:
          - MEMBER
          - SUBSYSTEM
          - SERVER
          - GLOBALGROUP
          - SERVICE
          - LOCALGROUP
      required:
      - instance_id
      - type
    SecurityServerAuthenticationCertificateDetails:
      allOf:
      - $ref: '#/components/schemas/CertificateDetails'
      description: Security server's authentication certificate
      properties:
        id:
          description: unique identifier
          example: 123
          format: int32
          readOnly: true
          type: integer
    SecurityServerAddress:
      description: security server address
      properties:
        server_address:
          description: security server address (ip or name)
          example: 192.168.1.100
          format: text
          maxLength: 255
          type: string
      required:
      - server_address
      type: object
    ModificationTimestamps:
      description: created_at and updated_at timestamps
      properties:
        created_at:
          description: object creation time
          example: '2022-01-20T00:00:00.001Z'
          format: date-time
          readOnly: true
          type: string
        updated_at:
          description: last time updated
          example: '2022-01-22T07:30:00.001Z'
          format: date-time
          readOnly: true
          type: string
      type: object
    ClientId:
      type: object
      description: Client identifier
      allOf:
      - $ref: '#/components/schemas/XRoadId'
      - $ref: '#/components/schemas/MemberId'
      - $ref: '#/components/schemas/EncodedId'
      properties:
        subsystem_code:
          type: string
          format: text
          description: Subsystem code. Cannot contain colons, semicolons, slashes, backslashes, percent signs or control characters
          example: ABC
          minLength: 1
          maxLength: 255
    MemberName:
      description: x-road member name
      properties:
        member_name:
          description: Member name.
          example: Member123
          format: text
          maxLength: 255
          minLength: 1
          type: string
      type: object
    SecurityServerId:
      allOf:
      - $ref: '#/components/schemas/XRoadId'
      - $ref: '#/components/schemas/MemberId'
      - $ref: '#/components/schemas/EncodedId'
      type: object
      properties:
        server_code:
          description: security server code
          example: server123
          format: text
          maxLength: 255
          minLength: 1
          type: string
      required:
      - server_code
    PagingMetadata:
      description: metadata about paged results
      properties:
        total_items:
          description: Total number of items in the query results
          type: integer
          format: int32
        items:
          description: Number of items on the current page of query results
          type: integer
          format: int32
        limit:
          description: 'Indicates the maximum number of items for the returned page.

            '
          default: 25
          type: integer
          format: int32
        offset:
          description: 'Offset in pages from the beginning of the query result after filtering and sorting parameters are taken into account.

            '
          default: 0
          type: integer
          format: int32
      required:
      - total_items
      - items
      - limit
      - offset
      type: object
    CertificateDetails:
      description: certificate details for any kind of certificate (TLS, auth, sign)
      properties:
        hash:
          description: certificate SHA-256 hash
          example: 1234567890ABCDEF
          format: text
          maxLength: 64
          minLength: 1
          type: string
        issuer_common_name:
          description: certificate issuer common name
          example: domain.com
          format: text
          maxLength: 255
          minLength: 1
          type: string
        issuer_distinguished_name:
          description: certificate issuer distinguished name
          example: issuer123
          format: text
          maxLength: 255
          minLength: 1
          type: string
        key_usages:
          description: certificate key usage array
          items:
            $ref: '#/components/schemas/KeyUsage'
          type: array
          uniqueItems: false
        not_after:
          description: certificate validity not after
          example: '2022-01-17T00:00:00.001Z'
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        not_before:
          description: certificate validity not before
          example: '2022-01-17T00:00:00.001Z'
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        public_key_algorithm:
          description: certificate public key algorithm
          example: sha256WithRSAEncryption
          format: sha-256
          maxLength: 255
          minLength: 1
          type: string
        rsa_public_key_exponent:
          description: RSA public key exponent (if RSA key) as an integer
          example: 65537
          format: int32
          type: integer
        rsa_public_key_modulus:
          description: hex encoded RSA public key modulus (if RSA key)
          example: c44421d601...
          format: hex
          maxLength: 1000
          minLength: 1
          type: string
        ec_public_parameters:
          description: EC public key named curve (if EC key)
          example: secp256r1(1.2.840.10045.3.1.7)
          format: text
          maxLength: 255
          minLength: 1
          type: string
        ec_public_key_point:
          description: hex encoded EC public key point (if EC key)
          example: c44421d601...
          format: hex
          maxLength: 1000
          minLength: 1
          type: string
        serial:
          description: serial number
          example: '123456789'
          format: text
          maxLength: 255
          minLength: 1
          type: string
        signature:
          description: hex encoded certificate signature
          example: 30af2fdc1780...
          format: text
          maxLength: 255
          minLength: 1
          type: string
        signature_algorithm:
          description: certificate signature algorithm
          example: sha256WithRSAEncryption
          format: sha-256
          maxLength: 255
          minLength: 1
          type: string
        subject_alternative_names:
          description: certificate subject alternative names
          example: DNS:*.example.org
          format: text
          maxLength: 1000
          minLength: 1
          type: string
        subject_common_name:
          description: certificate subject common name
          example: domain.com
          format: text
          maxLength: 255
          minLength: 1
          type: string
        subject_distinguished_name:
          description: certificate subject distinguished name
          example: subject123
          format: text
          maxLength: 255
          minLength: 1
          type: string
        version:
          description: version
          example: 3
          format: int32
          type: integer
      required:
      - issuer_distinguished_name
      - issuer_common_name
      - subject_distinguished_name
      - subject_common_name
      - not_before
      - not_after
      - serial
      - version
      - signature_algorithm
      - signature
      - public_key_algorithm
      - rsa_public_key_modulus
      - rsa_public_key_exponent
      - hash
      - key_usages
      - subject_alternative_names
      type: object
    MemberId:
      type: object
      description: Member identifier
      properties:
        member_class:
          description: Member class. Cannot contain colons, semicolons, slashes, backslashes, percent signs or control characters
          example: GOV
          format: text
          maxLength: 255
          minLength: 1
          type: string
        member_code:
          description: Member code. Cannot contain colons, semicolons, slashes, backslashes, percent signs or control characters
          example: 123
          format: text
          maxLength: 255
          minLength: 1
          type: string
      required:
      - member_class
      - member_code
    SecurityServer_2:
      type: object
      description: security server information
      required:
      - id
      properties:
        id:
          type: string
          format: text
          description: <instance_id>:<member_class>:<member_code>:<security_server_code>
          example: FI:GOV:123:sserver1
        instance_id:
          type: string
          format: text
          description: xroad instance id
          example: FI
          minLength: 1
          maxLength: 255
        member_class:
          type: string
          format: text
          description: member class
          example: GOV
          minLength: 1
          maxLength: 255
        member_code:
          type: string
          format: text
          description: member code
          example: 123
          minLength: 1
          maxLength: 255
        server_code:
          type: string
          format: text
          description: security server code
          example: server123
          minLength: 1
          maxLength: 255
        server_address:
          type: string
          format: text
          description: security server address (ip or name)
          example: 192.168.1.100
          maxLength: 255
    SecurityServer_3:
      type: object
      description: security server information
      required:
      - id
      properties:
        id:
          type: string
          format: text
          description: <instance_id>:<member_class>:<member_code>:<security_server_code>
          example: FI:GOV:123:sserver1
        instance_id:
          type: string
          format: text
          description: xroad instance id
          example: FI
          minLength: 1
          maxLength: 255
        member_class:
          type: string
          format: text
          description: member class
          example: GOV
          minLength: 1
          maxLength: 255
        member_code:
          type: string
          format: text
          description: member code
          example: 123
          minLength: 1
          maxLength: 255
        server_code:
          type: string
          format: text
          description: security server code
          example: server123
          minLength: 1
          maxLength: 255
        server_address:
          type: string
          format: text
          description: security server address (ip or name)
          example: 192.168.1.100
          maxLength: 255
  responses:
    Conflict:
      description: an existing item already exists
    BadRequest:
      description: request was invalid
    NoContent:
      description: request was successful
    NotFound:
      description: resource requested does not exists
    Unauthorized:
      description: authentication credentials are missing
    Forbidden:
      description: request has been refused
    InternalServerError:
      description: internal server error
  parameters:
    ServerIdParam:
      in: path
      name: server_id
      description: the encoded string representation of the Security Server id
      example: FI:GOV:123:sserver1
      required: true
      schema:
        format: text
        maxLength: 1023
        minLength: 1
        type: string
    MemberIdParam:
      in: path
      name: member_id
      description: the encoded string representation of the x-road member id
      example: FI:GOV:123
      required: true
      schema:
        format: text
        maxLength: 1023
        minLength: 1
        type: string
  securitySchemes:
    ApiKeyAuth:
      description: X-Road-ApiKey token=<api key>
      in: header
      name: Authorization
      type: apiKey
x-refined-from:
- central-server-admin-openapi.yaml
- security-server-admin-openapi.yaml
- x-road-global-central-server-admin-openapi.yml
- x-road-global-security-server-admin-openapi.yml