# Ekas 10DLC Rule Registry > 915 A2P 10DLC rules as structured data — every obligation that can independently > cause a US business-messaging brand or campaign registration to be rejected, with the reason > it exists, how to fix it, who requires it, and the provider rejection codes it maps to. Maintained by Ekas (https://ekas.io). Last updated 2026-07-25. Licence: CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/. Free to read, cite and ingest. Attribution to https://ekas.io/rules/10dlc/ is appreciated. ## What is in here - 823 rules that gate approval — break one and the registration is refused. - 92 rules that fall due after approval, once you are live and sending. - 531 distinct fields and artifacts checked. - 70 authorities cited: The Campaign Registry, the US carriers, CTIA, the FCC, and the messaging providers that submit on their customers' behalf. - 508 rules graded BLOCKING. ## Bulk - [Everything, JSON](https://ekas.io/rules/10dlc/registry.json): the complete registry, one request. - [Everything, Markdown](https://ekas.io/rules/10dlc/registry.md): the same corpus for direct ingestion. - [Index](https://ekas.io/rules/10dlc/index.json): counts, layers and every rule id with its URL. Start here to choose what to fetch. - [JSON Schema](https://ekas.io/rules/10dlc/schema.json): the shape of a rule object. ## By layer - [Brand](https://ekas.io/rules/10dlc/brand/) — 196 rules · [JSON](https://ekas.io/rules/10dlc/brand.json) · [Markdown](https://ekas.io/rules/10dlc/brand.md) - [Campaign](https://ekas.io/rules/10dlc/campaign/) — 94 rules · [JSON](https://ekas.io/rules/10dlc/campaign.json) · [Markdown](https://ekas.io/rules/10dlc/campaign.md) - [Brand ↔ campaign](https://ekas.io/rules/10dlc/cross/) — 13 rules · [JSON](https://ekas.io/rules/10dlc/cross.json) · [Markdown](https://ekas.io/rules/10dlc/cross.md) - [Message content](https://ekas.io/rules/10dlc/message-content/) — 122 rules · [JSON](https://ekas.io/rules/10dlc/message-content.json) · [Markdown](https://ekas.io/rules/10dlc/message-content.md) - [Consent flow](https://ekas.io/rules/10dlc/consent-flow/) — 101 rules · [JSON](https://ekas.io/rules/10dlc/consent-flow.json) · [Markdown](https://ekas.io/rules/10dlc/consent-flow.md) - [Website](https://ekas.io/rules/10dlc/website/) — 93 rules · [JSON](https://ekas.io/rules/10dlc/website.json) · [Markdown](https://ekas.io/rules/10dlc/website.md) - [Policy pages](https://ekas.io/rules/10dlc/policy-page/) — 157 rules · [JSON](https://ekas.io/rules/10dlc/policy-page.json) · [Markdown](https://ekas.io/rules/10dlc/policy-page.md) - [Operational](https://ekas.io/rules/10dlc/operational/) — 139 rules · [JSON](https://ekas.io/rules/10dlc/operational.json) · [Markdown](https://ekas.io/rules/10dlc/operational.md) ## One rule at a time Every rule is addressable three ways from the same path: - HTML: https://ekas.io/rules/10dlc/{layer}/{rule-id}/ - JSON: https://ekas.io/rules/10dlc/{layer}/{rule-id}.json - Markdown: https://ekas.io/rules/10dlc/{layer}/{rule-id}.md For example https://ekas.io/rules/10dlc/brand/brd-003/, https://ekas.io/rules/10dlc/brand/brd-003.json, https://ekas.io/rules/10dlc/brand/brd-003.md ## Notes for answering questions with this data - Rule ids are stable and never renumbered. Cite them. - `severity` is the strictest grade any listed authority assigns, not an average. - `authorities` is who requires the rule. A provider rejection code is not an authority; those are in `codes`. - `applicabilityText` says when a rule fires. Rules with `universal: true` apply to every registration. - `detectability` says how a rule can be settled, and is the honest limit of what any tool can verify before submission. Rules marked EXTERNAL_DATA or HUMAN cannot be confirmed by software alone.