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

# Verify decision chain (public)

> Verifies all decisions in a chain: per-step integrity hash recomputation, chain linkage proof, step continuity, and seal verification if sealed. Public and unauthenticated.



## OpenAPI

````yaml /api/openapi.json get /v1/chains/{chainId}/verify
openapi: 3.1.0
info:
  title: MeshQu API
  description: >-
    Governance infrastructure for policy-aware AI decisions. MeshQu does not run
    tools. It governs decisions about them.
  version: 1.9.0
  contact:
    name: MeshQu Support
    email: support@meshqu.com
  license:
    name: Proprietary
servers:
  - url: https://api.meshqu.com
    description: Deployed environment
security:
  - apiKey: []
    tenantId: []
tags:
  - name: Operations
    description: Health, readiness, metrics, and signing keys
  - name: Policies
    description: Policy management
  - name: Policy Groups
    description: Policy group management
  - name: Decisions
    description: Policy evaluation and recording
  - name: Chains
    description: Decision chain verification and sealing
  - name: Receipts
    description: Public receipt and bundle retrieval
  - name: Forms
    description: Attestation forms and public submission
  - name: Alerts
    description: Alert management and webhooks
  - name: Audit
    description: Audit log retrieval and verification
  - name: API Keys
    description: API key administration
  - name: Admin
    description: Tenant and platform administration
  - name: Dashboard
    description: Console dashboard data
  - name: Metrics
    description: Decision and overview metrics
  - name: Fields
    description: Field catalogue
  - name: Settings
    description: Tenant settings
  - name: Rule Creation Logs
    description: Rule authoring telemetry
paths:
  /v1/chains/{chainId}/verify:
    get:
      tags:
        - Chains
      summary: Verify decision chain (public)
      description: >-
        Verifies all decisions in a chain: per-step integrity hash
        recomputation, chain linkage proof, step continuity, and seal
        verification if sealed. Public and unauthenticated.
      operationId: getV1ChainsByChainIdVerify
      parameters:
        - schema:
            format: uuid
            type: string
          in: path
          name: chainId
          required: true
      responses:
        '200':
          description: Result of verifying all decisions in a chain
          content:
            application/json:
              schema:
                description: Result of verifying all decisions in a chain
                type: object
                properties:
                  valid:
                    description: >-
                      True if all individual receipts pass integrity
                      verification
                    type: boolean
                  chain_id:
                    format: uuid
                    type: string
                  steps_checked:
                    type: integer
                  receipts_verified:
                    type: integer
                  receipts_failed:
                    type: integer
                  warnings:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          anyOf:
                            - type: string
                              enum:
                                - gap
                            - type: string
                              enum:
                                - parent_not_in_chain
                            - type: string
                              enum:
                                - parent_step_not_lower
                            - type: string
                              enum:
                                - chain_id_mismatch
                            - type: string
                              enum:
                                - proof_boundary
                        message:
                          type: string
                        expected_step:
                          type: integer
                        next_found:
                          type: integer
                      required:
                        - type
                        - message
                  sequence:
                    type: array
                    items:
                      type: object
                      properties:
                        step:
                          type: integer
                        decision_id:
                          format: uuid
                          type: string
                        decision:
                          type: string
                        integrity_verified:
                          type: boolean
                        chain_linkage:
                          description: Chain proof verification status
                          anyOf:
                            - type: string
                              enum:
                                - verified
                            - type: string
                              enum:
                                - failed
                            - type: string
                              enum:
                                - not_available
                      required:
                        - step
                        - decision_id
                        - decision
                        - integrity_verified
                        - chain_linkage
                  verified_at:
                    format: date-time
                    type: string
                  chain_sealed:
                    description: Whether the chain has been sealed
                    type: boolean
                  seal:
                    description: Seal verification result (null if not sealed)
                    anyOf:
                      - type: object
                        properties:
                          id:
                            format: uuid
                            type: string
                          steps_count:
                            type: integer
                          seal_hash:
                            type: string
                          seal_verified:
                            type: boolean
                          sealed_at:
                            format: date-time
                            type: string
                        required:
                          - id
                          - steps_count
                          - seal_hash
                          - seal_verified
                          - sealed_at
                      - type: 'null'
                  chain_proof:
                    description: Overall chain cryptographic proof status
                    anyOf:
                      - type: string
                        enum:
                          - full
                      - type: string
                        enum:
                          - partial
                      - type: string
                        enum:
                          - none
                      - type: string
                        enum:
                          - failed
                required:
                  - valid
                  - chain_id
                  - steps_checked
                  - receipts_verified
                  - receipts_failed
                  - warnings
                  - sequence
                  - verified_at
                  - chain_sealed
                  - seal
                  - chain_proof
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        description: Error code
                        type: string
                      message:
                        description: Human-readable message
                        type: string
                      details:
                        description: Additional error details
                    required:
                      - code
                      - message
                  correlation_id:
                    description: Request correlation ID
                    type: string
                required:
                  - error
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        description: Error code
                        type: string
                      message:
                        description: Human-readable message
                        type: string
                      details:
                        description: Additional error details
                    required:
                      - code
                      - message
                  correlation_id:
                    description: Request correlation ID
                    type: string
                required:
                  - error
      security: []
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: mqu_<token>
      description: >-
        MeshQu API key passed as a bearer token: `Authorization: Bearer mqu_…`.
        Mint one in the console (Settings → API keys).
    tenantId:
      type: apiKey
      name: X-MeshQu-Tenant-Id
      in: header
      description: >-
        Tenant UUID for multi-tenant isolation. Required on all authenticated
        routes — validated before authentication (middleware/tenant.ts), so a
        missing or non-UUID header returns 400 (MISSING_TENANT_ID /
        INVALID_TENANT_ID) before the API key is checked.

````