GQTS Core API (1.0.0-draft)

Download OpenAPI specification:

License: MIT

OpenAPI normative surface for GQTS Core discovery and linear signed-token replication.

This OpenAPI file is the normative endpoint contract for GQTS Core.

Semantics:

  • GET operations are synchronous retrieval operations.
  • POST ingest/gossip operations are logically asynchronous and return 202 Accepted.
  • Integrity acceptance is based on proof/signature verification over canonicalized token content.
  • Standalone content-hash fields are not acceptance inputs and MUST be ignored.

Versioning strategy:

  • Major/minor profile semantics are encoded in info.version and media types.
  • Backward-incompatible changes require a new API version and explicit migration text.

scheme

Governance-scoped scheme metadata.

Get scheme descriptor.

Returns governance-scoped naming, canonicalization, proof profile, and publication-floor metadata.

path Parameters
governanceCode
required
string (GovernanceCode) ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
Examples: eu fi-traficom us-nist

Lowercase ASCII governance identifier. Producers MUST normalize to lowercase before publication.

header Parameters
If-None-Match
string

ETag validator for conditional retrieval.

Responses

Response samples

Content type
{
  • "kind": "scheme",
  • "governanceCode": "eu",
  • "version": "v1",
  • "canonicalization": "JCS",
  • "integrityModel": "signature-bound-content",
  • "chainModel": "directed-linear-signed-token-chain",
  • "proofSuites": [
    ],
  • "endpointKinds": [
    ],
  • "publicationFloor": [],
  • "endpointKindsRef": "../dictionary",
  • "discovery": {
    }
}

Get endpoint-kind catalog.

Returns the normative endpoint-kind mapping (scheme, type, event) for a governance profile. This operation provides machine-readable requirement-level conformance metadata.

path Parameters
governanceCode
required
string (GovernanceCode) ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
Examples: eu fi-traficom us-nist

Lowercase ASCII governance identifier. Producers MUST normalize to lowercase before publication.

header Parameters
If-None-Match
string

ETag validator for conditional retrieval.

Responses

Response samples

Content type
{
  • "governanceCode": "eu",
  • "generatedAt": "2026-02-18T00:00:00Z",
  • "endpointKinds": [
    ]
}

type

Trust-service instance metadata and current token-chain head state.

Get service descriptor.

Returns metadata for one trust-service instance, including the current token-chain head state.

path Parameters
serviceId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Trust-service instance identifier.

header Parameters
If-None-Match
string

ETag validator for conditional retrieval.

Responses

Response samples

Content type
{
  • "kind": "type",
  • "serviceId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "serviceType": "gdis-binding",
  • "governanceCode": "eu",
  • "profileVersion": "v1",
  • "eventLog": {
    },
  • "verificationSources": []
}

event

Append-only linear signed-token log retrieval and ingest.

Get event log head or event page.

Returns either a compact head-token view (default) or paged tokens for an append-only linear chain. Implementations SHOULD use conditional retrieval and compare headTokenId before expensive sync work.

path Parameters
logId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Signed-token history namespace identifier.

query Parameters
view
string
Default: "head"
Enum: "head" "events"

Controls head-only versus paged-token retrieval.

fromTokenId
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: fromTokenId=a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c fromTokenId=eu-qts-registry

Resume cursor for paged token retrieval.

limit
integer [ 1 .. 200 ]
Default: 50

Page size for event retrieval.

header Parameters
If-None-Match
string

ETag validator for conditional retrieval.

Responses

Response samples

Content type
{
  • "kind": "event",
  • "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "view": "head",
  • "headTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "activeVerificationMethod": "string",
  • "linearChain": true,
  • "events": [
    ],
  • "nextFromTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
}

Submit an event for ingest/gossip.

Accepts a signed history token for asynchronous processing. Successful acceptance returns 202 Accepted; replication and merge-reconciliation outcomes are observed via GET event-log views.

path Parameters
logId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Signed-token history namespace identifier.

Request Body schema:
required
required
object (EventEnvelope)

Signed history token. Acceptance is determined by schema validity, directed linear chain-link validity, and proof verification. Standalone content-hash claims are ignored by protocol.

expectedHeadEventId
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
correlationId
string [ 8 .. 128 ] characters

Responses

Request samples

Content type
{
  • "event": {
    },
  • "expectedHeadEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "correlationId": "stringst"
}

Response samples

Content type
{
  • "status": "accepted",
  • "correlationId": "string",
  • "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "acceptedAt": "2019-08-24T14:15:22Z",
  • "queuedEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
}

Get compact token-chain head metadata.

Returns compact head-token metadata for opportunistic synchronization. Peers SHOULD compare this result before requesting token pages or merge-reconciliation processing.

path Parameters
logId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Signed-token history namespace identifier.

header Parameters
If-None-Match
string

ETag validator for conditional retrieval.

Responses

Response samples

Content type
{
  • "kind": "event",
  • "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "headTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "activeVerificationMethod": "string",
  • "linearChain": true,
  • "eventCount": 0,
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "recommendedPollSeconds": 1
}

Get immutable history token.

Retrieves one immutable signed history token by identifier.

path Parameters
logId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Signed-token history namespace identifier.

eventId
required
string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$
Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry

Immutable signed-token identifier.

Responses

Response samples

Content type
Example
{
  • "eventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "sequence": 0,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "eventType": "rotate",
  • "previousEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
  • "actorController": "string",
  • "delegatedIdentityContext": {
    },
  • "declaredVerificationMethod": "string",
  • "nextVerificationMethod": "string",
  • "mergedCandidateHeadEventIds": [
    ],
  • "gossipEndpoints": [
    ],
  • "reportEndpoint": "../dictionary",
  • "blindVerificationMaterial": {
    },
  • "payload": { },
  • "proofs": [
    ]
}