Esheria API

Esheria API as documented publicly: 24 operations. Contract generated from the documentation by API Evangelist (2026-11-07); not the provider's own document.

GitHub OpenAPI

Operations 24

GET / GET / #
GET /api/v1/billing/plans Use esheria billing plans or GET /api/v1/billing/plans as the source of truth. #
POST /api/v1/billing/topups/checkout-session POST /api/v1/billing/topups/checkout-session #
GET /api/v1/domain-packs List Packs #
GET /api/v1/domain-packs/{packId} esheria packs inspect #
POST /api/v1/domain-packs/{packId}/applicability-check esheria applicability check #
GET /api/v1/domain-packs/{packId}/change-events esheria packs change-events #
GET /api/v1/domain-packs/{packId}/diff esheria packs diff #
GET /api/v1/domain-packs/{packId}/evidence-register esheria evidence list #
GET /api/v1/domain-packs/{packId}/export Export a pack #
GET /api/v1/domain-packs/{packId}/filing-calendar esheria calendar list #
GET /api/v1/domain-packs/{packId}/obligations esheria obligations list #
GET /api/v1/domain-packs/{packId}/penalty-facts esheria penalties list #
GET /api/v1/domain-packs/{packId}/versions esheria packs versions #
POST /api/v1/legal-status/verify-claim esheria claims verify #
POST /api/v1/regulatory-graph/query Query relationship context #
POST /api/v1/regulatory-monitoring/source-watches Monitor Source Currentness #
POST /api/v1/regulatory-monitoring/source-watches/check Monitor Source Currentness #
GET /healthz GET /healthz #
GET /mcp GET /mcp #
GET /metrics GET /metrics #
GET /readyz GET /readyz #
POST /ukpga/{ukpgaid}/{id}/contents POST /ukpga/{ukpgaId}/{id}/contents #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/esheria-ai:esheria-ai-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

esheria-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Esheria API
  version: '2026-11-07'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-07: 24 operation(s) read from 11 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Esheria has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 7
    documentation: 17
    pages-with-code: 7
    pages-read: 11
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-07'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.esheria.ai/api-reference/operations/healthz
  - https://docs.esheria.ai/quickstart.md
  - https://docs.esheria.ai/quickstart
  - https://docs.esheria.ai/api-reference/operations/readyz
  - https://docs.esheria.ai/api-reference/operations/metrics
  - https://docs.esheria.ai/solutions/use-cases
  - https://docs.esheria.ai/guides/authentication
  - https://docs.esheria.ai/guides/dashboard-self-serve
  - https://docs.esheria.ai/guides/billing-and-credits
  - https://docs.esheria.ai/guides/pack-catalog
  - https://docs.esheria.ai/guides/change-monitoring
servers:
- url: https://api.esheria.ai
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://docs.esheria.ai/quickstart
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl and jq \n Python 3.11+ for the optional Python and CLI examples \n Node.js 20.17+ only if you want to preview these Mintlify\
          \ docs locally \n ​ 0. Create A Token \n Open https://dashboard.esheria.ai/ , sign up with verified Google/GitHub OAuth\nor sign in,\
          \ choose your Sandbox packs under Settings , then create a data\ntoken from API Tokens . Store the token secret immediately; it is shown\
          \ only\nonce."
  /api/v1/billing/plans:
    get:
      operationId: get_api_v1_billing_plans
      tags:
      - Api
      summary: Use esheria billing plans or GET /api/v1/billing/plans as the source of truth.
      description: Returns the billing plans, including exact prices, available SKUs, workspace plan and pack policy, and the active pricing‑rule
        catalog.
      x-source: https://docs.esheria.ai/guides/billing-and-credits
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1BillingPlansResponse'
      x-evidence:
        kind: documentation
  /api/v1/billing/topups/checkout-session:
    post:
      operationId: post_api_v1_billing_topups_checkout_session
      tags:
      - Api
      summary: POST /api/v1/billing/topups/checkout-session
      x-source: https://docs.esheria.ai/guides/billing-and-credits
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1BillingTopupsCheckoutSessionRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --compressed -sS -X POST  \"https://api.esheria.ai/api/v1/billing/topups/checkout-session\"  -H \"content-type: application/json\"\
          \  -H \"x-api-key: $ESHERIA_API_KEY \"  -H \"idempotency-key: $( uuidgen )\"  -d '{\"sku_id\":\"developer-topup-1000\"}' | jq \n The\
          \ API creates an internal order before redirecting to Stripe. Payment\nwebhooks validate the Stripe Price and line item against that\
          \ order. Credit\ngr"
  /api/v1/domain-packs:
    get:
      operationId: get_api_v1_domain_packs
      tags:
      - Api
      summary: List Packs
      description: Pack discovery returns only the packs actually loaded and published in the environment your key can access.
      x-source: https://docs.esheria.ai/quickstart.md
      parameters:
      - name: readiness_label
        in: query
        required: false
        schema:
          type: string
        description: Filter packs by readiness label, e.g., verified_published
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: Maximum number of packs to return
      - name: jurisdiction
        in: query
        required: false
        schema:
          type: string
        description: Filter packs by jurisdiction, e.g., EU or UK
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1DomainPacksResponse'
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}:
    get:
      operationId: get_api_v1_domain_packs_packId
      tags:
      - Api
      summary: esheria packs inspect
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/applicability-check:
    post:
      operationId: post_api_v1_domain_packs_packId_applicability_check
      tags:
      - Api
      summary: esheria applicability check
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1DomainPacksPackidApplicabilityCheckRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/change-events:
    get:
      operationId: get_api_v1_domain_packs_packId_change_events
      tags:
      - Api
      summary: esheria packs change-events
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/diff:
    get:
      operationId: get_api_v1_domain_packs_packId_diff
      tags:
      - Api
      summary: esheria packs diff
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/evidence-register:
    get:
      operationId: get_api_v1_domain_packs_packId_evidence_register
      tags:
      - Api
      summary: esheria evidence list
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/export:
    get:
      operationId: get_api_v1_domain_packs_packId_export
      tags:
      - Api
      summary: Export a pack
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/filing-calendar:
    get:
      operationId: get_api_v1_domain_packs_packId_filing_calendar
      tags:
      - Api
      summary: esheria calendar list
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/legal-review-audit:
    get:
      operationId: get_api_v1_domain_packs_packId_legal_review_audit
      tags:
      - Api
      summary: esheria legal-review audit
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/obligations:
    get:
      operationId: get_api_v1_domain_packs_packId_obligations
      tags:
      - Api
      summary: esheria obligations list
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/penalty-facts:
    get:
      operationId: get_api_v1_domain_packs_packId_penalty_facts
      tags:
      - Api
      summary: esheria penalties list
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domain-packs/{packId}/versions:
    get:
      operationId: get_api_v1_domain_packs_packId_versions
      tags:
      - Api
      summary: esheria packs versions
      x-source: https://docs.esheria.ai/solutions/use-cases
      parameters:
      - name: packId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/legal-status/verify-claim:
    post:
      operationId: post_api_v1_legal_status_verify_claim
      tags:
      - Api
      summary: esheria claims verify
      x-source: https://docs.esheria.ai/solutions/use-cases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1LegalStatusVerifyClaimRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/regulatory-graph/query:
    post:
      operationId: post_api_v1_regulatory_graph_query
      tags:
      - Api
      summary: Query relationship context
      x-source: https://docs.esheria.ai/solutions/use-cases
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/regulatory-monitoring/source-watches:
    post:
      operationId: post_api_v1_regulatory_monitoring_source_watches
      tags:
      - Api
      summary: Monitor Source Currentness
      x-source: https://docs.esheria.ai/guides/change-monitoring
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1RegulatoryMonitoringSourceWatchesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1RegulatoryMonitoringSourceWatchesResponse'
      x-evidence:
        kind: documentation
  /api/v1/regulatory-monitoring/source-watches/check:
    post:
      operationId: post_api_v1_regulatory_monitoring_source_watches_check
      tags:
      - Api
      summary: Monitor Source Currentness
      x-source: https://docs.esheria.ai/guides/change-monitoring
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1RegulatoryMonitoringSourceWatchesCheckRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1RegulatoryMonitoringSourceWatchesCheckResponse'
      x-evidence:
        kind: documentation
  /healthz:
    get:
      operationId: get_healthz
      tags:
      - Healthz
      summary: GET /healthz
      x-source: https://docs.esheria.ai/api-reference/operations/healthz
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHealthzResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url https://api.esheria.ai/healthz import requests\nurl = \"https://api.esheria.ai/healthz\"\nresponse\
          \ = requests.get(url)\nprint(response.text) const options = {method: 'GET'};\nfetch('https://api.esheria.ai/healthz', options)\n .then(res\
          \ => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); <?php"
  /mcp:
    get:
      operationId: get_mcp
      tags:
      - Mcp
      summary: GET /mcp
      x-source: https://docs.esheria.ai/quickstart
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMcpResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python CLI MCP 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 \n import os \n import httpx \n base_url = os.environ[ \"ESHERIA_API_BASE_URL\" ].rstrip(\
          \ \"/\" ) \n api_key = os.environ[ \"ESHERIA_API_KEY\" ] \n response = httpx.get( \n f \" {base_url} /api/v1/domain-packs\" , \n params\
          \ = { \"jurisdiction"
  /metrics:
    get:
      operationId: get_metrics
      tags:
      - Metrics
      summary: GET /metrics
      x-source: https://docs.esheria.ai/api-reference/operations/metrics
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetricsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url https://api.esheria.ai/metrics import requests\nurl = \"https://api.esheria.ai/metrics\"\nresponse\
          \ = requests.get(url)\nprint(response.text) const options = {method: 'GET'};\nfetch('https://api.esheria.ai/metrics', options)\n .then(res\
          \ => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); <?php"
  /readyz:
    get:
      operationId: get_readyz
      tags:
      - Readyz
      summary: GET /readyz
      x-source: https://docs.esheria.ai/api-reference/operations/readyz
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReadyzResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url https://api.esheria.ai/readyz import requests\nurl = \"https://api.esheria.ai/readyz\"\nresponse\
          \ = requests.get(url)\nprint(response.text) const options = {method: 'GET'};\nfetch('https://api.esheria.ai/readyz', options)\n .then(res\
          \ => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); <?php"
  /ukpga/{ukpgaid}/{id}/contents:
    post:
      operationId: post_ukpga_ukpgaid_id_contents
      tags:
      - Ukpga
      summary: POST /ukpga/{ukpgaId}/{id}/contents
      x-source: https://docs.esheria.ai/guides/change-monitoring
      parameters:
      - name: ukpgaid
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostUkpgaUkpgaidIdContentsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --compressed -sS -X POST  \" $ESHERIA_API_BASE_URL /api/v1/regulatory-monitoring/source-watches\"  -H \"content-type:\
          \ application/json\"  -H \"x-api-key: $ESHERIA_API_KEY \"  -H \"idempotency-key: $( uuidgen )\"  -d '{ \n \"domain_pack_id\": \"UK-DATA-USE-AND-ACCESS\"\
          , \n \"source_asset_id\": \"uk_duaa_2025\", \n \"source_uri\": \"https://www.legislation.gov.uk/ukpga/2025/18/contents\", \n \"source_kind\"\
          : \"bindi"
components:
  schemas:
    GetResponse:
      type: object
      properties:
        jurisdiction:
          type: string
        readiness_label:
          type: string
        limit:
          type: integer
    GetApiV1BillingPlansResponse:
      type: object
      properties:
        prices:
          type: string
          description: Exact prices for each plan.
        skus:
          type: string
          description: Available top‑up SKUs.
        workspace_plan:
          type: string
          description: Workspace plan and pack policy.
        pricing_rule_catalog:
          type: string
          description: Active pricing‑rule catalog.
    PostApiV1BillingTopupsCheckoutSessionRequest:
      type: object
      properties:
        sku_id:
          type: string
    GetApiV1DomainPacksResponse:
      type: object
      properties:
        status:
          type: string
          description: Overall response status
        data:
          type: object
          description: Payload containing packs and pagination
        data.packs:
          type: array
          description: List of pack objects
        data.packs[].domain_pack_id:
          type: string
          description: Identifier of the domain pack
        data.packs[].domain_pack_version:
          type: string
          description: Version string of the pack
        data.packs[].readiness_label:
          type: string
          description: Readiness label of the pack
        data.packs[].limitations:
          type: array
          description: Any limitations associated with the pack
        data.pagination:
          type: object
          description: Pagination info
        data.pagination.limit:
          type: integer
          description: Limit used for the request
        data.pagination.offset:
          type: integer
          description: Offset of the result set
        errors:
          type: array
          description: List of error objects if any
        trace_id:
          type: string
          description: Trace identifier for the request
    PostApiV1DomainPacksPackidApplicabilityCheckRequest:
      type: object
      properties:
        entity_profile:
          type: object
        profile_facts:
          type: array
        limit:
          type: integer
      required:
      - entity_profile
    PostApiV1LegalStatusVerifyClaimRequest:
      type: object
      properties:
        claim:
          type: string
        pack:
          type: string
      required:
      - claim
    PostApiV1RegulatoryMonitoringSourceWatchesRequest:
      type: object
      properties:
        domain_pack_id:
          type: string
        source_asset_id:
          type: string
        source_uri:
          type: string
        source_kind:
          type: string
        authority_type:
          type: string
      required:
      - domain_pack_id
      - source_asset_id
      - source_uri
      - source_kind
      - authority_type
    PostApiV1RegulatoryMonitoringSourceWatchesResponse:
      type: object
      properties:
        status:
          type: string
        data:
          type: object
        trace_id:
          type: string
    PostApiV1RegulatoryMonitoringSourceWatchesCheckRequest:
      type: object
      properties:
        domain_pack_id:
          type: string
      required:
      - domain_pack_id
    PostApiV1RegulatoryMonitoringSourceWatchesCheckResponse:
      type: object
      properties:
        status:
          type: string
        data:
          type: object
        trace_id:
          type: string
    GetHealthzResponse:
      type: object
      properties:
        method:
          type: string
    GetMcpResponse:
      type: object
      properties:
        jurisdiction:
          type: string
        readiness_label:
          type: string
        limit:
          type: integer
    GetMetricsResponse:
      type: object
      properties:
        method:
          type: string
    GetReadyzResponse:
      type: object
      properties:
        method:
          type: string
    PostUkpgaUkpgaidIdContentsRequest:
      type: object
      properties:
        domain_pack_id:
          type: string
        source_asset_id:
          type: string
        source_uri:
          type: string
        source_kind:
          type: string
        authority_type:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
security:
- apiKey: []
tags:
- name: Api
- name: Healthz
- name: Mcp
- name: Metrics
- name: Readyz
- name: Ukpga