/Machine readable
For AI agents and developers
How machines should read the DPDP Wiki - Markdown twins of every page, Accept text/markdown negotiation, llms.txt, a JSON API of the Act and Rules, and the terms of automated use.
Everything has a Markdown twin#
Every HTML page on this wiki has a Markdown version with the same content and a small front matter block (title, URL, kind, official source, licence, disclaimer). Three ways to get it:
- Append
index.mdto any directory URL:https://dpdp.myndsolution.com/wiki/act/section-8-general-obligations-of-data-fiduciary/index.md - Or append
.mdto the path without the trailing slash:.../section-8-general-obligations-of-data-fiduciary.md - Or send
Accept: text/markdownto the normal URL; the server answers withContent-Type: text/markdown; charset=utf-8and aVary: Acceptheader.
Every HTML page also declares <link rel="alternate" type="text/markdown" href="…">, so you can discover the twin from the page itself.
llms.txt#
/wiki/llms.txt follows the llms.txt convention: an annotated index of every page with a one-line summary and the Markdown URL. /wiki/llms-full.txt is the whole official corpus (Act, Rules, Schedules, notifications, glossary) concatenated as Markdown, for agents that want everything in one request.
JSON API#
Static JSON under /wiki/api/v1/, regenerated on every build, Access-Control-Allow-Origin: *:
| Endpoint | Content |
|---|---|
manifest.json | Endpoint list, build time, licence |
act.json | The whole Act: chapters, sections (structured body blocks, verbatim text, commencement, status) and the Schedule |
act/sections/{n}.json | One section, with a markdown rendering |
act/schedule.json | The penalty schedule |
rules.json, rules/rules/{n}.json, rules/schedules/{n}.json | The Rules, likewise |
notifications.json, notifications/{id}.json | Every notification with its verbatim text and effects |
glossary.json | Every defined term with official definition |
status.json | In-force status of every section and rule as of the build date |
timeline.json, map.json, sources.json, updates.json, pages.json | Timeline, Act-to-Rules map, source registry with checksums, daily updates, page list |
search-index.json | Title, URL and text of every page for your own retrieval |
Body blocks use a small grammar: subsection/subrule "(1)", clause "(a)", subclause "(i)", proviso, explanation, illustration, paragraph, table, each with label, text and optional children. The schema is documented in the repository file CONTENT-SCHEMA.md.
Ask DPDP endpoint#
POST /wiki/api/ask with {"question": "..."} returns {"answer", "html", "citations": [{"label", "url"}], "model", "cached"}. Answers are grounded in retrieved official passages and refuse when the text does not cover the question. Rate limited per IP per day; not for bulk use.
Ground rules for automated use#
- Cite the wiki page URL and, for legal text, the official source URL in
sources.json. - Treat anything under "Interpretation", guides, FAQ and Ask answers as interpretation, not as the law.
robots.txtallows all crawlers, including AI training and answer crawlers. Please keep to reasonable request rates; the whole corpus is one file (llms-full.txt), so there is no need to crawl thousands of pages.- The corpus updates daily; check
manifest.jsongeneratedAtor the RSS feed before assuming freshness.