Skip to main content

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.

Set shared environment variables first.
export ESHERIA_API_BASE_URL="https://reg-api.esheria.co.ke"
export ESHERIA_API_KEY="YOUR_ESHERIA_API_KEY"
export PACK_ID="KE-DATA-PROTECTION"

Pack Discovery

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs?jurisdiction=KE&limit=10" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq
Expected: data.packs[] with domain_pack_id, readiness metadata, limitations, and pagination. Common failures: unauthorized for invalid keys, empty result for overly narrow filters.

Obligation Listing

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$PACK_ID/obligations?duty_holder=data_controller&limit=5" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq
Expected: data.obligations[] with duty holders, action text, citation IDs, quote spans, and pagination. Common failures: wrong pack_id, unsupported filter value, or a broad query returning more rows than the client expects.

Applicability Check

curl --compressed -sS -X POST \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$PACK_ID/applicability-check" \
  -H "content-type: application/json" \
  -H "x-api-key: $ESHERIA_API_KEY" \
  -H "idempotency-key: applicability-$(date +%s)" \
  -d '{
    "entity_roles": ["data_controller"],
    "activities": ["personal_data_processing"],
    "sector_tags": ["financial_services"],
    "limit": 5
  }' | jq
Expected: data.applicable_obligations[] with applicability status, score, reasons, and citation IDs. Common failures: missing idempotency key, profile terms that do not match pack vocabulary, or over-interpreting potentially_applies as legal advice.

Evidence Register

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$PACK_ID/evidence-register" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq
Expected: data.evidence_register[] grouped by evidence type with linked obligations and citations. Common failures: assuming every obligation has a structured evidence type, or dropping citation IDs when transforming evidence into a checklist.

Filing Calendar

curl --compressed -sS \
  "$ESHERIA_API_BASE_URL/api/v1/domain-packs/$PACK_ID/filing-calendar?limit=10" \
  -H "x-api-key: $ESHERIA_API_KEY" | jq
Expected: data.calendar_items[] with deadline context, workflow target, forms where available, and citation metadata. Common failures: treating relative deadlines as calendar dates without the triggering event.

Claim Verification

curl --compressed -sS -X POST \
  "$ESHERIA_API_BASE_URL/api/v1/legal-status/verify-claim" \
  -H "content-type: application/json" \
  -H "x-api-key: $ESHERIA_API_KEY" \
  -H "idempotency-key: claim-verify-$(date +%s)" \
  -d '{
    "claim": "The Public Service Commission shall invite applications for the position of Data Commissioner within seven days of being notified of a vacancy.",
    "jurisdiction": "KE",
    "domain": "data_protection",
    "pack_id": "KE-DATA-PROTECTION",
    "limit": 3
  }' | jq
Expected: data.status, publication_mode, citation_ids, quote_spans, and correction labels where applicable. Common failures: missing idempotency key, claim outside pack scope, or unsupported claim verifier for a pack.

Relationship Graph

curl --compressed -sS -X POST \
  "$ESHERIA_API_BASE_URL/api/v1/regulatory-graph/query" \
  -H "content-type: application/json" \
  -H "x-api-key: $ESHERIA_API_KEY" \
  -H "idempotency-key: graph-query-$(date +%s)" \
  -d '{
    "pack_ids": ["KE-DATA-PROTECTION"],
    "limit": 10
  }' | jq
Expected: relationship facts with source pack, target pack, relationship type, evidence basis, and trace ID. Common failures: relationship filters that exclude all facts, or treating graph context as a substitute for pack-specific obligations.