> ## 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.

# Query published regulatory relationship facts across packs



## OpenAPI

````yaml /openapi.json post /api/v1/regulatory-graph/query
openapi: 3.1.0
info:
  title: Esheria Regulatory API
  version: 1.0.0
  description: >-
    Citation-backed regulatory pack API for pack discovery, obligations,
    applicability checks, version history, diffs, change events, evidence
    requirements, filing rules, penalty facts, legal review audit metadata,
    graph queries, and claim verification.
servers:
  - url: https://api.esheria.ai
    description: Production API
  - url: http://127.0.0.1:8080
    description: Local development runtime
security: []
paths:
  /api/v1/regulatory-graph/query:
    post:
      tags:
        - Regulatory Graph API
      summary: Query published regulatory relationship facts across packs
      operationId: regulatory_graph_query_api_v1_regulatory_graph_query_post
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegulatoryGraphQueryRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                status: error
                errors:
                  - code: unauthorized
                    message: Invalid API key
                trace_id: trace-123
        '402':
          description: Credits exhausted
          content:
            application/json:
              example:
                status: error
                errors:
                  - code: credits_exhausted
                    message: API credits exhausted
                trace_id: trace-123
        '409':
          description: Conflict
          content:
            application/json:
              example:
                status: error
                errors:
                  - code: duplicate_token_name
                    message: An active data token already uses that name.
                trace_id: trace-123
        '422':
          description: Validation error
          content:
            application/json:
              example:
                status: error
                errors:
                  - code: validation_error
                    message: Invalid payload
                    field: body.name
                trace_id: trace-123
        '503':
          description: Billing or dependency unavailable
          content:
            application/json:
              example:
                status: error
                errors:
                  - code: billing_unavailable
                    message: Billing ledger is unavailable
                trace_id: trace-123
      security:
        - ApiKeyAuth: []
components:
  parameters:
    IdempotencyKey:
      name: idempotency-key
      in: header
      required: true
      schema:
        type: string
      description: Unique key for mutating request replay protection.
      example: claim-verify-2026-06-01T120000Z
  schemas:
    RegulatoryGraphQueryRequest:
      properties:
        pack_ids:
          items:
            type: string
          type: array
          minItems: 1
          title: Pack Ids
        relationship_types:
          items:
            type: string
          type: array
          title: Relationship Types
        source_pack_id:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: Source Pack Id
        target_pack_id:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: Target Pack Id
        evidence_basis:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: Evidence Basis
        query:
          anyOf:
            - type: string
              maxLength: 500
            - type: 'null'
          title: Query
        publication_mode:
          anyOf:
            - type: string
              enum:
                - published
                - citation_verified
                - blocked
                - draft
            - type: 'null'
          title: Publication Mode
        explain:
          type: boolean
          title: Explain
          default: false
        limit:
          type: integer
          maximum: 500
          minimum: 1
          title: Limit
          default: 100
        offset:
          type: integer
          minimum: 0
          title: Offset
          default: 0
      additionalProperties: false
      type: object
      required:
        - pack_ids
      title: RegulatoryGraphQueryRequest
      example:
        limit: 100
        pack_ids:
          - UK-OFSI-SANCTIONS
          - EU-SANCTIONS-DUE-DILIGENCE
        publication_mode: published
        relationship_types:
          - shares_evidence_with
          - horizontal_obligation_for
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Client API key issued by Esheria.
      x-default: YOUR_ESHERIA_API_KEY

````