REST API for DDI (Data Documentation Initiative) metadata: study units, datasets, variables, concepts, schemes, and related resources.
Interactive OpenAPI 3.1 documentation — browse every endpoint and try requests against the live mock.
The mock server is at ddi-api.making-sense.info (base path /ddi/v1). The contract itself lives in ddi-rest.yaml.
# Catalog of all mock items
curl https://ddi-api.making-sense.info/ddi/v1/items
# Variables (DDI JSON is the default)
curl https://ddi-api.making-sense.info/ddi/v1/variables
# Same list as DDI XML
curl -H "Accept: application/vnd.ddi.structure+xml;version=3.3" \
https://ddi-api.making-sense.info/ddi/v1/variablesMore examples, filters, and identifier rules: Mock API endpoints.
- Entry points:
GET /items(fullItemCatalog) andGET /items/{itemIdentifier}(one object, any type). Use/variables,/concepts, etc. when you already know the type. - Identifiers: a DDI URN (
urn:ddi:{agency}:{id}:{version}) is enough. A plain ID needsagencyIDandversionon the same request (400otherwise). - Lists are always paginated (
limitdefault 100, max 1000;offsetdefault 0). Page metadata is inContent-RangeandLink, not in the DDI body.GET /itemsand single-item GETs are not paginated. - Media types:
application/vnd.ddi.structure+json;version=3.3(default) andapplication/vnd.ddi.structure+xml;version=3.3. Genericapplication/jsonorapplication/xmlreturn406.
Full rules are in the Swagger UI description and in ddi-rest.yaml.
yarn mock # mock server → http://localhost:4010
yarn build:swagger && yarn preview:swagger # local Swagger UI → http://localhost:8080You can also paste ddi-rest.yaml into Swagger Editor. Node 24+ is required (engines.node).