X-Road (NIIS) Subsystems API
resources related to Subsystems
resources related to Subsystems
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/x-road-global:x-road-global-subsystems-api"
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.
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: 3.2.0
info:
title: X Road Global Subsystems API
version: 1.0.0
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
description: 'Operations tagged subsystems across 2 of this provider''s published API definitions: central-server-admin-openapi.yaml, x-road-global-central-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: subsystems
description: resources related to Subsystems
paths:
/subsystems:
post:
description: 'CS administrator creates a new subsystem.
The subsystem id will be validated and if the validation fails a validation error is returned.
Subsystem''s association with security servers is created through management requests.'
operationId: addSubsystem
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubsystemAdd'
description: Subsystem details
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: new subsystem created
'400':
content:
application/json:
examples:
error_response:
$ref: '#/components/examples/ErrorExample'
validation_errors_response:
$ref: '#/components/examples/ValidationErrorsExample'
schema:
$ref: '#/components/schemas/ErrorInfo'
description: there are errors in the request
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
summary: add new subsystem to the central server
tags:
- subsystems
servers:
- description: basepath for API v1
url: /api/v1
/subsystems/{subsystem_id}:
parameters:
- $ref: '#/components/parameters/SubsystemIdParam'
delete:
description: CS administrator deletes a subsystem
operationId: deleteSubsystem
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 subsystem
tags:
- subsystems
patch:
description: CS administrator edits the name of a subsystem.
operationId: updateSubsystemName
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubsystemName'
description: subsystem name
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: the updated member
'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 name of a subsystem
tags:
- subsystems
servers:
- description: basepath for API v1
url: /api/v1
/subsystems/{subsystem_id}/servers/{server_id}:
delete:
description: CS administrator unregisters a subsystem from a Security Server
operationId: unregisterSubsystem
parameters:
- $ref: '#/components/parameters/SubsystemIdParam'
- $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 subsystem
tags:
- subsystems
servers:
- description: basepath for API v1
url: /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
Client:
allOf:
- $ref: '#/components/schemas/MemberName'
description: x-road member
required:
- client_id
properties:
client_id:
$ref: '#/components/schemas/ClientId'
type: object
ErrorInfo:
$ref: ../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/schemas/ErrorInfo
SubsystemAdd:
description: x-road subsystem to add
type: object
allOf:
- $ref: '#/components/schemas/SubsystemName'
required:
- subsystem_id
properties:
subsystem_id:
$ref: '#/components/schemas/NewSubsystemId'
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
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
NewMemberId:
description: ID for x-road member to add
type: object
allOf:
- $ref: '#/components/schemas/MemberId'
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
NewSubsystemId:
description: ID for x-road subsystem to add
type: object
allOf:
- $ref: '#/components/schemas/NewMemberId'
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
required:
- subsystem_code
SubsystemName:
description: x-road subsystem name
properties:
subsystem_name:
description: Subsystem name.
example: Subsystem123
format: text
maxLength: 255
minLength: 0
type: string
type: object
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
Forbidden:
description: request has been refused
Unauthorized:
description: authentication credentials are missing
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
SubsystemIdParam:
in: path
name: subsystem_id
description: the encoded string representation of the subsystem id
example: FI:GOV:123:SUBSYSTEM1
required: true
schema:
format: text
maxLength: 1023
minLength: 1
type: string
examples:
ValidationErrorsExample:
summary: Validation errors response body example
value:
error:
code: validation_failure
validation_errors:
initialServerConfDto.instanceIdentifier:
- IdentifierChars
status: 400
ErrorExample:
$ref: ../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/examples/ErrorExample
securitySchemes:
ApiKeyAuth:
description: X-Road-ApiKey token=<api key>
in: header
name: Authorization
type: apiKey
x-refined-from:
- central-server-admin-openapi.yaml
- x-road-global-central-server-admin-openapi.yml