About the registry
The Metacrafter Registry is a reference catalog of semantic data types: what a value means, not only how it is stored. Examples are an email address, a Russian INN, an IBAN or an ISO country code.
Each datatype has an ID, a name and a description. It may also have:
- categories (contexts of use)
- countries and languages
- a flag that marks personal data (PII)
- a regular expression
- examples
- translations
- links to Wikipedia, Wikidata, Schema.org and standards
Each record has a status. Stable records have been reviewed. Draft records, for example those generated from detection rule keys, have not been reviewed yet and may be incomplete. Each record also has a quality score from 0 to 100 that lists what is missing.
A pattern is one specific representation of a datatype, for example the UK passport number format. A tool record lists the registry types that a piece of software supports.
Metacrafter labels the fields of tables and data files with these IDs. For every detected type, it links to http://registry.apicrafter.io/datatype/<id>. Its detection rules live in metacrafter-rules, and each rule key is a registry ID.
How it is built
The source of truth is one YAML file per record in the GitHub repository. Every change is validated in CI. Each merge to main rebuilds this static site and the JSON files, and deploys them to GitHub Pages. This build:
version 1.3.0.dev0, commit 9685732, 2026-11-05.
API
All endpoints are static files: plain GET requests, with no key, no rate limit and no query parameters. They are described in OpenAPI 3.1.
| Path | Content |
|---|---|
| /api/v1/index.json | Manifest: data version, git SHA, counts, size and SHA-256 of every bulk file, datatype URL template |
| /api/v1/datatypes/<id>.json | One datatype or pattern, normalized: references are ID strings |
| /api/v1/datatypes.json | All datatypes and patterns (array); also .jsonl and .csv |
| /api/v1/tools/<id>.json | One tool; all tools in /api/v1/tools.json |
| /api/v1/categories.json | Categories with counts; also countries.json, languages.json |
| /api/v1/aliases.json | Retired IDs and the record each one now resolves to |
| /schema/*.schema.json | JSON Schemas of the source YAML records (datatype, pattern, tool) |
| /registry.json | Legacy: all records keyed by ID, in the shape used by metacrafter's RegistryClient |
| /datatype/<id>.json | Legacy: one record, same shape as in registry.json |
The legacy files keep the release 1.02 shape: fields are added, never removed or retyped. New integrations should use /api/v1/.
License
The repository, code and data, is published under the Apache License 2.0. Some descriptions quote Wikipedia, which is licensed under CC BY-SA 4.0; their source is linked on each record.
Contributing
Every record page has an “edit on GitHub” link. To propose a new datatype, open a pull request or fill in the “Propose a datatype” form. The rules are in CONTRIBUTING.md.
Maintainer: Ivan Begtin, ivan@begtin.tech.