X-Road (NIIS) Signing Keys API
resources related to Global Configuration Signing Keys
resources related to Global Configuration Signing Keys
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-signing-keys-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 Signing Keys 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 signing-keys 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: signing-keys
description: resources related to Global Configuration Signing Keys
paths:
/signing-keys/{sign_key_id}:
delete:
description: Administrator deletes the configuration signing key.
operationId: deleteKey
parameters:
- $ref: '#/components/parameters/SigningKeyIdParam'
responses:
'204':
description: key deletion was successful
'400':
content:
application/json:
examples:
error_response:
$ref: '#/components/examples/ErrorExample'
warnings_response:
$ref: '#/components/examples/DeleteKeyWarningExample'
schema:
$ref: '#/components/schemas/ErrorInfo'
description: request was invalid
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: delete key
tags:
- signing-keys
servers:
- description: basepath for API v1
url: /api/v1
/signing-keys/{sign_key_id}/activate:
put:
description: Administrator activates a configuration signing key.
operationId: activateKey
parameters:
- $ref: '#/components/parameters/SigningKeyIdParam'
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: activate key
tags:
- signing-keys
servers:
- description: basepath for API v1
url: /api/v1
/configuration-sources/{configuration_type}/signing-keys:
post:
description: Adds configuration signing key for selected configuration source and token.
operationId: addKey
parameters:
- $ref: '#/components/parameters/ConfigurationTypeParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConfigurationSigningKeyAdd'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ConfigurationSigningKey'
description: created signing key
'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: add new key
tags:
- signing-keys
servers:
- description: basepath for API v1
url: /api/v1
components:
responses:
NotFound:
description: resource requested does not exists
NoContent:
description: request was successful
Forbidden:
description: request has been refused
Unauthorized:
description: authentication credentials are missing
InternalServerError:
description: internal server error
BadRequest:
description: request was invalid
schemas:
ConfigurationSigningKey:
description: Signing context (key identifier used by the signer and signing certificate) for signing the global configuration. Also includes the possible actions that can be done to this object, e.g DELETE (only for key related operations and does not consider user authorization).
properties:
active:
description: if the key is active
example: true
type: boolean
available:
description: if the key is available
example: true
type: boolean
created_at:
description: configuration signing key created at
example: '2022-01-12T00:00:00.001Z'
format: date-time
maxLength: 24
minLength: 24
type: string
id:
type: string
description: unique identifier
example: 123
minLength: 1
key_hash:
description: key hash
example: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
format: text
minLength: 1
readOnly: true
type: string
token_id:
type: string
format: text
description: token id
example: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
minLength: 1
readOnly: true
label:
$ref: '#/components/schemas/KeyLabel'
possible_actions:
description: array containing the possible actions that can be done for this item
items:
$ref: '#/components/schemas/PossibleKeyAction'
type: array
source_type:
$ref: '#/components/schemas/ConfigurationType'
key_algorithm:
$ref: '#/components/schemas/KeyAlgorithm'
required:
- id
- label
- created_at
- active
- available
- possible_actions
type: object
KeyLabel:
properties:
label:
description: label for the new key
format: text
maxLength: 255
minLength: 1
type: string
type: object
KeyAlgorithm:
description: Key type
enum:
- RSA
- EC
example: RSA
type: string
ConfigurationSigningKeyAdd:
properties:
key_label:
description: label for the new key
format: text
maxLength: 255
minLength: 1
type: string
token_id:
description: token id
example: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
format: text
minLength: 1
type: string
required:
- token_id
- key_label
type: object
PossibleKeyAction:
description: an action to change state or edit keys
enum:
- DELETE
- ACTIVATE
example: DELETE
type: string
ErrorInfo:
$ref: ../../../../../common/common-admin-api/src/main/resources/common-openapi-definition.yaml#/components/schemas/ErrorInfo
ConfigurationType:
description: configuration type
enum:
- INTERNAL
- EXTERNAL
example: INTERNAL
type: string
parameters:
SigningKeyIdParam:
in: path
name: sign_key_id
description: Id of the signing key
required: true
schema:
format: text
minLength: 1
type: string
ConfigurationTypeParam:
in: path
name: configuration_type
description: the type of the configuration for which the anchor is fetched for
required: true
schema:
$ref: '#/components/schemas/ConfigurationType'
examples:
DeleteKeyWarningExample:
summary: Warning response when trying to delete an authentication key with a registered authentication certificate
value:
error:
code: warnings_detected
status: 400
warnings:
- code: auth_key_with_registered_cert_warning
metadata:
- 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
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