MACH ODM
Stop shipping a recollection of the standard as if it were the standard.
Quickstart · Get it working.
Your First MACH ODM Transform: Markdown In, JSON Schema Out
The MACH Alliance publishes its Open Data Model (ODM) as entity documentation: Markdown files with prose, a field table, embedded YAML schema definitions, and sample objects. That is a great format for humans and a frustrating one for machines - you cannot validate a payload against a Markdown page.
API · Drive it from the Integration API.
MACH ODM over HTTP: One Converter, Two Importers, and an Honest "No Export"
Every schema format on the CoreModels transform surface declares its direction, and we hold ourselves to those declarations in public. The `odm` format - MACH Alliance Open Data Model entity documents - is **decode-only**: ODM entities are authored documentation, not a generated artifact, so there is no encode back to prose. Rather than paper over that, the HTTP surface is built around it. This article walks the complete set of routes that touch ODM, with real request and response bodies, the role each route requires, and exactly what happens when you try the direction that does not exist.
MCP · Drive it from an agent.
Converting MACH ODM Entities with an Agent: transform_schema over MCP
Picture the request as it actually arrives: someone pastes a MACH Alliance Open Data Model entity document into a chat and asks their agent, "stand up a Postgres table for this." The document is Markdown - an H1, some prose, YAML blocks inside a schema section. Between that paste and a `CREATE TABLE` statement sits exactly one tool call.
Automation · Put it in CI.
ODM at Scale: Batch Conversion, Deterministic Pipelines, and Replayable Plans
One entity document is a demo. A standards repository is dozens of them - identity, product, inventory, pricing - revised by pull request, consumed by teams who need formal schemas, not Markdown. The moment MACH Open Data Model documents become an input to your build, three engineering questions appear: can the conversion run unattended, will the same input always produce the same output, and what happens when one file in the batch is broken?
Deep dive · Understand what it does.
Inside the MACH ODM Coder: What Maps, What Rides Along, What Gets Reported
A MACH Alliance Open Data Model entity document is five things wearing one Markdown file: an H1 that names the entity, an `## Entity purpose` section of prose, an `## Object` table with normative practice levels, a `## YAML Schema Definition` section holding the actual schema, and a `## Sample Object`. The CoreModels `odm` coder reads all five - and this article is the precise account of where each one lands, what travels as annotation rather than structure, which situations produce lossiness records, and why this format is the one place in our lineup where round-trip is deliberately not the goal.
Why this matters
The case for MACH ODM — the problem it fixes and what changes when it is fixed — is on coremodels.io.
Read the MACH ODM guides →