Skip to content
Beta

These docs are in progress. Some pages are incomplete or may change. Report a problem

Developer docs

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-beta reads 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_notice is retitled Right to Be Informed and covers data collection as well as automated decisions. The input_dataset description 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) and security_breach (Security & data breach) join risks_mitigation, each with its own symbol. The version now has 139 elements and 472 composed icons. References: Concepts.
  • dtpr@2026-09-01-beta adds Dutch and German. nl and de join the version's locales for all 377 localized strings, machine-translated and independently machine-reviewed. ?locales=nl and ?locales=de select them, and region tags resolve (nl-BE → nl, de-AT → de). Both are machine_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/translations and the get_translation_status MCP 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 with targets naming the element, category or datachain type it concerns. The data is review metadata kept outside content_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) The ai and device taxonomies merge into a single dtpr type, so the version prefix moves from ai@ to dtpr@ and every category's datachain_type follows. Content carries over from ai@2026-08-24-beta: 137 elements across 14 categories, with collection (capture technology) and manifestation (the form the output takes when people encounter it) holding the device-side concepts. The data_flow subchain is collection → input_dataset → processing → output_dataset → manifestation. The ai@ 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. collection and manifestation get 15 literal device/encounter glyphs in place of borrowed symbols; the five rights elements 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 via prompts/list + prompts/get without a Claude-specific install. Bundled at build time from plugin/dtpr/skills/ — single source of truth shared with the Claude Code plugin install path.
    • New CLI: pnpm --filter ./api bundle:skills regenerates api/src/mcp/prompts/skills.generated.ts.
    • Drift detection: pnpm test:plugin fails if a skill or reference exists in the plugin tree but not in the API bundle (or vice versa).
    • References: Prompts, Other harnesses.

Agent skills

  • Plugin v0.3.0 — symbol-design split + seven-skill studio. Symbol drafting moves out of dtpr-element-design into a dedicated dtpr-symbol-design skill that proposes three SVG variants per round with a local HTML preview. The agent skills docs also pick up the previously-undocumented dtpr-translate skill 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 WCAG innerColor rule. 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_datachain tool + 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. Shared ok / err envelope 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/v2 read path (#265) Public, read-only JSON + SVG. Opaque cursor pagination (MAX_LIMIT = 200), field/locale projection, DTPR-Content-Hash + Cache-Control on version-scoped responses, static CORS allow-list. POST /schemas/:version/validate runs 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 ai datachain 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.

VersionNew base URL
v0https://api.dtpr.io/api/v0
v1https://api.dtpr.io/api/v1
v2https://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 types
  • GET /api/v1/elements/:datachain_type — Elements filtered by datachain type (device, ai)
  • GET /api/v1/categories/:datachain_type — Categories for a datachain type
  • GET /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
v1 is frozen. It serves exactly what 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)
v0 is frozen and preserved as-is, quirks included. It will not be extended.

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.