These docs are in progress. Some pages are incomplete or may change. Report a problem
Changelog
What changed when: schema versions, REST, MCP, icons, agent skills, and the frozen v1 and v0 APIs.
Developer docs menu
Most recent first. Grouped by surface. See the repository for the full commit history.
2026-10-19
Site
- The docs moved to dtpr.io. dtpr.ai and docs.dtpr.io now redirect to the matching page here, and the old dtpr.io API and icon URLs redirect to api.dtpr.io. References: Developers, Deployers.
2026-10-07
Schema
dtpr@2026-09-01-betareads for sensors as well as AI systems. Category and element descriptions that said "this AI system" or "the AI" now say "this system", so a disclosure for a plain data-collecting device reads correctly: 73 English strings across purpose, accountable, risks, rights, input and output data, processing, access, retention and storage. Processing elements open with "Techniques that…" rather than "AI systems that…".right_to_noticeis retitled Right to Be Informed and covers data collection as well as automated decisions. Theinput_datasetdescription no longer mentions training data. Wording left over from the device taxonomy ("data collection activity", "data collector") is generalized the same way. All ten translations follow.- Two risks for data-collecting systems.
privacy_loss(Loss of privacy) andsecurity_breach(Security & data breach) joinrisks_mitigation, each with its own symbol. The version now has 139 elements and 472 composed icons. References: Concepts. dtpr@2026-09-01-betaadds Dutch and German.nlanddejoin the version's locales for all 377 localized strings, machine-translated and independently machine-reviewed.?locales=nland?locales=deselect them, and region tags resolve (nl-BE→nl,de-AT→de). Both aremachine_reviewed; the open term and layout questions are listed in the translation status. References:GET /schemas/:version/translations.
2026-10-05
REST + MCP
- Translation status is served by the API.
GET /schemas/:version/translationsand theget_translation_statusMCP tool report how far each locale of a schema version has been reviewed (source,unverified,machine_draft,machine_reviewed,human_reviewed) and list the questions translators and reviewers flagged, each withtargetsnaming the element, category or datachain type it concerns. The data is review metadata kept outsidecontent_hash, so settling a flag does not look like a taxonomy change. References:GET /schemas/:version/translations,get_translation_status.
2026-08-26
Schema
dtpr@2026-09-01-beta— consolidated datachain type (#326) Theaianddevicetaxonomies merge into a singledtprtype, so the version prefix moves fromai@todtpr@and every category'sdatachain_typefollows. Content carries over fromai@2026-08-24-beta: 137 elements across 14 categories, withcollection(capture technology) andmanifestation(the form the output takes when people encounter it) holding the device-side concepts. Thedata_flowsubchain iscollection → input_dataset → processing → output_dataset → manifestation. Theai@line is superseded and receives no further versions; versions already published under it stay served, so pinned consumers keep resolving. References: Schema version, Concepts.- Icon overhaul across five categories.
collectionandmanifestationget 15 literal device/encounter glyphs in place of borrowed symbols; the fiverightselements that shared one target glyph get distinct action glyphs; 10 legacy fine-line composites are redrawn as single bold objects legible at 36px. Icon counts are unchanged — 468 composed icons. References: Icon composition, Symbols.
2026-05-07
MCP
prompts/capability — agent skills served over MCP. The MCP server now registers each of the seven DTPR agent skills (and the two shared reference documents) as named MCP prompts. Any MCP-aware client (Cursor, Continue, Cline, Claude Desktop, the Anthropic Agent SDK, custom clients) can list and load them viaprompts/list+prompts/getwithout a Claude-specific install. Bundled at build time fromplugin/dtpr/skills/— single source of truth shared with the Claude Code plugin install path.- New CLI:
pnpm --filter ./api bundle:skillsregeneratesapi/src/mcp/prompts/skills.generated.ts. - Drift detection:
pnpm test:pluginfails if a skill or reference exists in the plugin tree but not in the API bundle (or vice versa). - References: Prompts, Other harnesses.
- New CLI:
Agent skills
- Plugin v0.3.0 — symbol-design split + seven-skill studio. Symbol drafting moves out of
dtpr-element-designinto a dedicateddtpr-symbol-designskill that proposes three SVG variants per round with a local HTML preview. The agent skills docs also pick up the previously-undocumenteddtpr-translateskill from 0.2.1, so the public skill table now lists all seven peers. References: Skills,dtpr-symbol-design,dtpr-translate.
2026-04-18
Icons
- Icon composition pipeline (#270)
Shape × symbol × variant composition with
default/dark/ context-colored variants and the WCAGinnerColorrule. Adds pre-baked R2 point-read with on-the-fly fallback. New REST routes:GET /api/v2/shapes/:shape.svg,GET /api/v2/schemas/:version/symbols/:symbol_id.svg,GET /api/v2/schemas/:version/elements/:element_id/icon[.<variant>].svg. New MCP tool:get_icon_url. References: Icon composition, REST icon routes.
2026-04-17
MCP
render_datachaintool + MCP Apps resource (#267) New MCP tool:render_datachain, which validates an instance and renders it to a self-contained HTML document. New MCP resource:ui://dtpr/datachain/view.html(MCP Apps iframe handoff). References: Resources.- Read path on Cloudflare Workers (#265)
Hand-rolled JSON-RPC over HTTP handler (workerd nodejs_compat can't load the SDK's CJS Ajv dep). Supported methods:
initialize,notifications/initialized,tools/list,tools/call,resources/list,resources/read,ping. Sharedok/errenvelope with_meta.content_hash/_meta.version. Initial tools:list_schema_versions,get_schema,list_categories,list_elements,get_element,get_elements,validate_datachain. References: Connecting, Envelope.
REST v2
api.dtpr.io/api/v2read path (#265) Public, read-only JSON + SVG. Opaque cursor pagination (MAX_LIMIT = 200), field/locale projection,DTPR-Content-Hash+Cache-Controlon version-scoped responses, static CORS allow-list.POST /schemas/:version/validateruns shape + semantic validation and always returns HTTP 200. References: REST v2, Pagination & fields, Errors.
API infrastructure
- Standalone API scaffold + AI content migration (#262)
Extracts DTPR content from the v1 site into a standalone API workspace. Establishes the schema authoring flow and migrates the
aidatachain type. - Drafting CLI + preview deploys + Claude Code plugin (#266)
Earlier API versions
Move to api.dtpr.io
Every DTPR API surface now lives on api.dtpr.io. Two things changed, not one: the hostname, and the path — the retired base carried an extra dtpr segment between /api/ and the version, and that segment is gone. A find-and-replace of the hostname alone will not work.
| Version | New base URL |
|---|---|
| v0 | https://api.dtpr.io/api/v0 |
| v1 | https://api.dtpr.io/api/v1 |
| v2 | https://api.dtpr.io/api/v2 |
Icons moved with them, from a flat host into per-version namespaces — https://api.dtpr.io/api/v0/icons/{id}.svg (123 icons) and https://api.dtpr.io/api/v1/icons/{id}.svg (148). The icon URLs inside v0 and v1 response bodies are absolute and already point at the new namespaces, so a consumer that follows the URL it is given needs no separate change.
The old dtpr.io/api/dtpr/v0, dtpr.io/api/dtpr/v1 and dtpr.io/dtpr-icons/ URLs redirect (308) to the matching api.dtpr.io URL. Point integrations at api.dtpr.io directly.
v1 (Frozen)
Released: 2024-06-11
The first versioned release of the DTPR API with typed endpoints and locale filtering.
Endpoints
GET /api/v1/elements— All elements across all datachain typesGET /api/v1/elements/:datachain_type— Elements filtered by datachain type (device,ai)GET /api/v1/categories/:datachain_type— Categories for a datachain typeGET /api/v1/icons/:icon_id.svg— Element icon (148 icons)
Features
- Structured schema metadata on every response object
- Locale array format for all user-facing text
?locales=query parameter for filtering locale content- Category-level element variables with inheritance
- Version timestamps calculated from the latest update across all locales
dtpr.io served — byte for byte, apart from the rewritten icon URLs — and its content will not change again, including the defect where GET /api/v1/elements?locales=… returns 500 Server Error. Use the typed endpoints for locale filtering, and v2 for new integrations.v0 (Frozen)
The original unversioned API. Returns a flat locale-specific response format without schema metadata.
Endpoints
GET /api/v0/:locale— Pre-rendered elements for one locale (en,fr,es,pt,tl,km)GET /api/v0/icons/:icon_id.svg— Element icon (123 icons)
Source of truth
Every entry maps to a pull request on github.com/helpful-places/dtpr. Commit history on main is authoritative if this changelog falls behind.