Download OpenAPI specification:
Read-only data gateway exposing entity records, catalog metadata, and SHACL/DCAT-AP shapes for governed datasets.
Abstract HTTP contract for Registry Relay v0.1. Paths use placeholders ({dataset_id}, {entity}, {id}, ...) because dataset and entity names are runtime configuration, not part of the contract. For the instance-specific document that lists the concrete datasets and entities exposed by one running gateway, fetch the auth-gated GET /openapi.json route on that deployment. Hand-authored from docs/api.md; keep both in sync.
Returns the dataset summary: entities, publishers, sensitivity, update frequency, and links to JSON, JSON-LD, and SHACL artifacts. Acts as Relay-native discovery for the standards adapters mounted under /ogc/v1/* and /dci/*.
| dataset_id required | string Configured dataset identifier ( |
{ }Returns the Draft 2020-12 JSON Schema for one entity, scoped to the caller's metadata visibility.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
{ }Entity collection, single record, and relationship reads. Field set, allowed filters, and required filters are per-entity configuration.
Returns paginated entity records. Supports projection via fields, relationship expansion via expand, configured filters via <field>[.<op>] query parameters, opaque cursor pagination, and If-None-Match conditional requests. Entities with require_purpose_header: true require the Data-Purpose header. Entities with required_filters reject unfiltered enumeration.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
| limit | integer >= 1 Maximum records to return on a single page. Capped by the entity's configured |
| cursor | string Opaque server-owned pagination cursor. Pass the value from a previous response's |
| fields | string Comma-separated projection of fields to return. Only fields declared in |
| expand | string Comma-separated list of relationships to expand inline, drawn from |
| Data-Purpose | string <uri> Stable, reviewable purpose IRI. Required when the entity has |
| If-None-Match | string Conditional-request validator. The gateway returns |
{- "data": [
- { }
], - "pagination": {
- "has_more": true,
- "next_cursor": "string"
}
}Returns one entity record by primary key. fields projection, expand expansion, and the Data-Purpose header behave the same as on the collection route.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
| id required | string Primary key of one entity record. |
| fields | string Comma-separated projection of fields to return. Only fields declared in |
| expand | string Comma-separated list of relationships to expand inline, drawn from |
| Data-Purpose | string <uri> Stable, reviewable purpose IRI. Required when the entity has |
| If-None-Match | string Conditional-request validator. The gateway returns |
| Accept | string Enum: "application/json" "application/vc+jwt" Opt in to a VC-JWT compact serialization. Available only when |
{ }Returns records reachable from one entity record via a declared relationship. Pagination, projection, filtering, and the Data-Purpose header behave the same as on the collection route.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
| id required | string Primary key of one entity record. |
| relationship required | string Configured relationship name on the source entity. |
| limit | integer >= 1 Maximum records to return on a single page. Capped by the entity's configured |
| cursor | string Opaque server-owned pagination cursor. Pass the value from a previous response's |
| fields | string Comma-separated projection of fields to return. Only fields declared in |
| Data-Purpose | string <uri> Stable, reviewable purpose IRI. Required when the entity has |
| If-None-Match | string Conditional-request validator. The gateway returns |
{- "data": [
- { }
], - "pagination": {
- "has_more": true,
- "next_cursor": "string"
}
}Pre-declared aggregate discovery and execution. Disclosure control is per-aggregate configuration. Indicator and dimension discovery routes are dataset-scoped and generated from the aggregate declarations: reused identifiers are merged into single records with queryable_via links. CSV output is available via ?f=csv and carries X-Registry-Relay-* and X-SPDCI-* disclosure/freshness headers plus a Link: rel="describedby" to aggregate metadata. When built with ogcapi-edr, configured admin_area aggregates are also exposed as OGC EDR /area collections.
Returns every aggregate declared for the dataset, with their declared group-by columns, measures, and disclosure-control policy.
| dataset_id required | string Configured dataset identifier ( |
{- "data": [
- { }
]
}Executes a declared aggregate with no body. Use the POST .../query variant when you need to pass dimension filters or temporal bounds.
| dataset_id required | string Configured dataset identifier ( |
| aggregate_id required | string Pre-declared aggregate identifier ( |
{- "rows": [
- { }
]
}Executes a declared aggregate with dimension filters and optional temporal bounds. Temporal bounds are accepted only for aggregates that declare a temporal_field. CSV output is available with ?f=csv or request body "format": "csv"; the response then carries X-Registry-Relay-* and X-SPDCI-* disclosure/freshness headers and a Link: rel="describedby" to the aggregate metadata.
| dataset_id required | string Configured dataset identifier ( |
| aggregate_id required | string Pre-declared aggregate identifier ( |
object | |
| datetime | string RFC 3339 instant or interval. |
| property name* additional property | any |
{- "filters": { },
- "datetime": "string"
}{- "rows": [
- { }
]
}Returns descriptive metadata for one aggregate (group-by columns, measures, disclosure-control policy, optional temporal field, linked indicators and dimensions).
| dataset_id required | string Configured dataset identifier ( |
| aggregate_id required | string Pre-declared aggregate identifier ( |
{ }Returns the indicators discovered from aggregate declarations. Reused indicator identifiers are merged into one record, with queryable_via, valid_dimensions, and links back to the aggregate routes that can compute them.
| dataset_id required | string Configured dataset identifier ( |
{ }Returns the merged discovery record for one indicator, including the aggregates that can compute it and the dimensions it accepts.
| dataset_id required | string Configured dataset identifier ( |
| indicator_id required | string Indicator identifier discovered from aggregate declarations. |
{ }Returns the dimensions discovered from aggregate declarations. Reused dimension identifiers are merged into one record with queryable_via links back to the aggregate routes.
| dataset_id required | string Configured dataset identifier ( |
{ }Returns the merged discovery record for one dimension, including the aggregates that expose it.
| dataset_id required | string Configured dataset identifier ( |
| dimension_id required | string Dimension identifier discovered from aggregate declarations. |
{ }Standards-facing metadata: catalog JSON, DCAT, BRegDCAT-AP, SHACL, JSON Schema, OGC Records bodies, dataset-scoped metadata. Filtered to the caller's metadata scopes.
Returns the requested DCAT application profile as JSON-LD. Profile examples include bregdcat-ap for BRegDCAT-AP.
| profile required | string DCAT application profile identifier (for example |
{ }Returns the profile descriptor (identifier, label, conforming standards) for the named profile.
| profile required | string DCAT application profile identifier (for example |
{ }Returns the entity descriptors that belong to one dataset, filtered to the caller's metadata visibility.
| dataset_id required | string Configured dataset identifier ( |
{ }Returns metadata for one entity (declared fields, allowed filters, required filters, policy links).
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
{ }Returns the Draft 2020-12 JSON Schema for one entity, scoped to the caller's metadata visibility.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
{ }Returns the SHACL node shape that constrains one entity, as JSON-LD.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
{ }URL-stable JSON Schema endpoint for one entity, suitable for $ref from external SHACL or contract validators that pin schema URLs. Identical content to the entity schema metadata route.
| dataset_id required | string Configured dataset identifier ( |
| entity required | string Configured entity name ( |
{ }Returns the link-free OGC API - Records bodies for visible datasets. This is the metadata-side projection of the Records adapter and is always available, independent of the ogcapi-records runtime feature.
{ }Discovery records for Registry Notary. Relay publishes the metadata; claims and evidence are submitted to Registry Notary, not Relay.
Returns one evidence-offering discovery record. Submitting claims and evidence is handled by Registry Notary, not by Relay.
| offering_id required | string Evidence offering identifier. |
{- "id": "string",
- "title": "string",
}The auth-gated, metadata-filtered OpenAPI document for the running instance. Use this abstract document for the contract; fetch /openapi.json from a running gateway for the instance shape.
Returns an OpenAPI 3.1 document that lists the operations and dataset/entity tags visible to the caller's metadata scopes. The shape depends on the gateway's configuration; this abstract document describes the contract, not any one deployment.
{ }Read-only GeoJSON Features over entities configured with a spatial block. Available only when the gateway is built with the ogcapi-features feature.
OGC API - Features landing page with links to conformance, collections, and openapi. Available only when the gateway is built with ogcapi-features.
{- "title": "string",
- "description": "string",
}Returns every spatial collection visible to the caller across every dataset. Equivalent to the union of /ogc/v1/datasets/{dataset_id}/collections.
{- "collections": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}
],
}Returns every spatial collection declared on entities in this dataset.
| dataset_id required | string Configured dataset identifier ( |
{- "collections": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}
],
}Returns the collection metadata for one spatial entity.
| dataset_id required | string Configured dataset identifier ( |
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
{- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}Returns GeoJSON Features for one spatial entity. Item routes require the entity's row-read scope and preserve required filters, purpose headers, projection, audit, and opaque cursor pagination. bbox-crs accepts CRS84 only; datetime requires spatial.datetime_field on the entity.
| dataset_id required | string Configured dataset identifier ( |
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| bbox | string WGS84 bounding box |
| bbox-crs | string Value: "http://www.opengis.net/def/crs/OGC/1.3/CRS84" CRS for |
| datetime | string RFC 3339 instant or interval. Requires |
| limit | integer >= 1 Maximum records to return on a single page. Capped by the entity's configured |
| cursor | string Opaque server-owned pagination cursor. Pass the value from a previous response's |
| Data-Purpose | string <uri> Stable, reviewable purpose IRI. Required when the entity has |
{- "type": "FeatureCollection",
- "features": [
- {
- "type": "Feature",
- "id": "string",
- "geometry": { },
- "properties": { }
}
],
}Returns a single GeoJSON Feature by primary key.
| dataset_id required | string Configured dataset identifier ( |
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| feature_id required | string Feature identifier (matches the entity's primary key). |
{- "type": "Feature",
- "id": "string",
- "geometry": { },
- "properties": { }
}Metadata-only catalog view conforming to OGC API - Records. The initial collection is datasets; each item describes a visible dcat:Dataset. Available only when built with the ogcapi-records feature.
Returns the available record collections. The initial Records surface has one collection, datasets.
{- "collections": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}
],
}Returns the collection metadata for one record collection.
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
{- "type": "FeatureCollection",
- "features": [
- { }
],
}Returns records in one collection. The datasets collection supports q (case-insensitive text search across visible dataset and entity metadata), limit (1..1000), and after (opaque signed pagination cursor from a rel=next link). Unsupported spatial or search parameters return 400.
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| q | string Case-insensitive text search across visible dataset and entity metadata. |
| limit | integer >= 1 Maximum records to return on a single page. Capped by the entity's configured |
| after | string Opaque signed pagination cursor from a |
{- "type": "FeatureCollection",
- "features": [
- { }
],
}Returns one record. In the datasets collection, the record describes a visible dcat:Dataset.
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| record_id required | string Record identifier. |
{ }Environmental Data Retrieval views over configured admin_area spatial aggregates. Available only when built with the ogcapi-edr feature.
Returns every admin_area spatial aggregate exposed as an EDR collection.
{- "collections": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}
],
}Returns the EDR collection metadata for one admin_area aggregate.
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
{- "id": "string",
- "title": "string",
- "description": "string",
- "itemType": "string",
- "crs": [
- "string"
], - "extent": { },
}Returns aggregate values for the area defined by coords (WKT polygon).
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| coords required | string WKT polygon describing the query area. |
| datetime | string RFC 3339 instant or interval. |
| parameter-name | string Comma-separated parameters to return. |
{ }POST variant of the area query for callers whose query polygons exceed practical URL lengths.
| collection_id required | string OGC collection identifier. Matches a spatial entity collection ( |
| coords required | string WKT polygon describing the query area. |
| datetime | string RFC 3339 instant or interval. |
| parameter-name | Array of strings |
{- "coords": "string",
- "datetime": "string",
- "parameter-name": [
- "string"
]
}{ }SP DCI sync-search adapter. sync/search is generic across configured standards.spdci.registries entries; the disability-specific paths require standards.spdci.disability_registry. Available only when built with spdci-api-standards and the relevant config is set.
Generic SP DCI sync-search endpoint. Works against any registry configured under standards.spdci.registries. Supports idtype-value queries, expression $and with eq, in, ge, le, and predicate conditions joined with and.
| registry required | string Registry key configured under |
| property name* additional property | any |
{ }{ }Returns whether the queried subject is recorded as disabled. Available only when {registry} resolves to the dataset/entity referenced by standards.spdci.disability_registry; other registries return an unknown-resource error.
| registry required | string Registry key configured under |
| property name* additional property | any |
{ }{ }Returns disability-detail attributes for the queried subject. Available only when {registry} resolves to the dataset/entity referenced by standards.spdci.disability_registry.
| registry required | string Registry key configured under |
| property name* additional property | any |
{ }{ }Returns disability-support attributes for the queried subject. Available only when {registry} resolves to the dataset/entity referenced by standards.spdci.disability_registry.
| registry required | string Registry key configured under |
| property name* additional property | any |
{ }{ }Verifier-support routes (DID Web, JSON Schemas, JSON-LD contexts) used when callers opt in to VC-JWT responses with Accept: application/vc+jwt. Mounted only when provenance.enabled: true.
Returns the Draft 2020-12 JSON Schema for one Verifiable Credential subject claim type. Mounted only when provenance.enabled: true. Unauthenticated.
| claim_type required | string Claim type the JSON Schema describes. |
| version required | string Schema version identifier. |
{ }Returns a JSON-LD context referenced by VC-JWT responses. Mounted only when provenance.enabled: true. Unauthenticated.
| vocab required | string Vocabulary identifier. |
| version required | string Context version identifier. |
{ }