> ## Documentation Index
> Fetch the complete documentation index at: https://docs.esheria.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Regulatory Packs

> Discover available packs, inspect readiness labels, and choose the right pack for a workflow.

Regulatory packs are source-backed fact bundles for a jurisdiction and legal
domain. Esheria is catalog-first: select a `pack_id` explicitly, then use that
same ID across API, CLI, and MCP workflows.

The sanitized discovery release contains 69 pack records across 27 jurisdiction labels. 60 are `verified_published`; 9 remain discoverable as `not_ready` metadata records without published legal-status facts. Catalog version: `2026-07-15-v1+sha256:c5732893a6156d077166b60ea5016166ac5b178bb024162320d3a54e0ce745eb`.

<Card title="View the complete production catalog" icon="library" href="/guides/pack-catalog">
  Browse every current pack, jurisdiction, legal domain, readiness state, and
  published-fact count from the July 13, 2026 production snapshot.
</Card>

## Discover Packs

Omit the jurisdiction filter to discover everything entitled to the token, or
filter by any jurisdiction returned by the catalog.

<CodeGroup>
  ```bash curl theme={null}
  curl --compressed -sS \
    "$ESHERIA_API_BASE_URL/api/v1/domain-packs?readiness_label=verified_published&limit=100" \
    -H "x-api-key: $ESHERIA_API_KEY" | jq
  ```

  ```python Python theme={null}
  import os
  import httpx

  response = httpx.get(
      f"{os.environ['ESHERIA_API_BASE_URL'].rstrip('/')}/api/v1/domain-packs",
      params={"jurisdiction": "UK", "readiness_label": "verified_published", "limit": 100},
      headers={"x-api-key": os.environ["ESHERIA_API_KEY"]},
      timeout=30,
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```bash CLI theme={null}
  esheria packs list --jurisdiction EU --readiness verified_published --format json
  ```

  ```json MCP theme={null}
  {
    "tool": "esheria_list_packs",
    "arguments": {
      "jurisdiction": "SG",
      "readiness_label": "verified_published",
      "limit": 100
    }
  }
  ```
</CodeGroup>

Treat the API response as the source of truth. Catalog entries can change when
a pack is promoted, superseded, or temporarily marked not ready.

## Select A Pack Explicitly

```bash theme={null}
export ESHERIA_PACK_ID="UK-DATA-PROTECTION-PRIVACY"

esheria packs inspect "$ESHERIA_PACK_ID" --format json
esheria obligations list "$ESHERIA_PACK_ID" --limit 25 --format json
```

Inspect these fields before using a pack:

* `jurisdiction`
* `legal_domain`
* `readiness_label`
* `limitations`
* `published_legal_status_count`
* current version and version history

<Warning>
  `not_ready` packs are catalog metadata, not production legal-intelligence
  sources. Use packs marked `verified_published` for published-fact workflows.
</Warning>

## Version History And Diffs

Use the selected pack ID rather than relying on a product-wide default.

```bash theme={null}
curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$ESHERIA_PACK_ID/versions?limit=10" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$ESHERIA_PACK_ID/diff?from_version=$FROM_VERSION&to_version=$TO_VERSION" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$ESHERIA_PACK_ID/change-events?from_version=$FROM_VERSION&to_version=$TO_VERSION&limit=25" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq
```

Diff and change-event rows include change type, fact type, impacted fact IDs,
source/citation basis, materiality, confidence, and limitations.

## Multi-Jurisdiction Examples

| Jurisdiction/domain          | Example pack                     |
| ---------------------------- | -------------------------------- |
| UK data protection           | `UK-DATA-PROTECTION-PRIVACY`     |
| EU cybersecurity             | `EU-NIS2-CYBERSECURITY`          |
| Singapore financial services | `SG-MAS-TRM-OUTSOURCING`         |
| US sanctions                 | `US-OFAC-SANCTIONS`              |
| Australia AML/CTF            | `AU-AML-CTF-REFORMS`             |
| Global tax                   | `OECD-PILLAR-TWO-GLOBE`          |
| Kenya employment             | `KE-EMPLOYMENT-LABOUR-WORKPLACE` |

These are examples, not defaults. Any entitled `verified_published` pack can
use the generic pack workflows for obligations, applicability, filing calendar,
evidence, penalties, `legal-review-audit`, versions, diffs, change events,
relationships, and export.

Claim verification is evaluator-gated. A pack may return
`unsupported_capability` for claim verification while its generic fact
workflows remain available.

## Readiness Labels

| Label                    | Meaning                                                                   |
| ------------------------ | ------------------------------------------------------------------------- |
| `verified_published`     | The current pack exposes published facts through production workflows     |
| `not_ready`              | Metadata is discoverable, but the pack has no approved published fact set |
| `unsupported_capability` | The pack exists, but a specific optional workflow is not enabled          |

Production API mode serves published rows only. Internal draft and
citation-verification tiers are not customer API tiers.
