{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Digitalyser.io API changelog",
  "home_page_url": "https://developers.digitalyser.io/docs/operations/changelog",
  "feed_url": "https://developers.digitalyser.io/changelog.json",
  "description": "Every change to the public contract, dated.",
  "language": "en",
  "items": [
    {
      "id": "digitalyser-contract-2026-09-10",
      "url": "https://developers.digitalyser.io/docs/operations/changelog",
      "title": "2026-09-10",
      "date_published": "2026-09-10T00:00:00Z",
      "content_text": "Added:\n\n- Response bodies are documented. Fifteen of eighteen operations now carry a response schema. The\n  three that do not are the capability operations: invokeCapability returns the payload of whichever\n  capability was invoked, so it has no fixed shape.\n- Eighty-three fields carry a description, and forty-five carry an example — concentrated on\n  what a reader cannot guess: what a null score means, which clock a freshness field measures, and\n  why a cohort verdict does not qualify an individual axis.\n- Enum values are published on 128 fields. Where a field accepts a closed set, the contract now\n  lists it instead of declaring a bare string.\n- The contract is downloadable at /openapi.json (/openapi.json) — the same document the server\n  publishes, importable into Postman, Insomnia, Bruno or a client generator.\n- Developer portal published at developers.digitalyser.io, with a\n  cookbook (/docs/cookbook), a glossary (/docs/guides/glossary) and\n  flow diagrams (/docs/guides/flows).\n- Public status page at status.digitalyser.io (https://status.digitalyser.io), with capability-level\n  probes and an incident feed."
    }
  ]
}
