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.