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

# Health check

> Returns the operational health of the Parmana service. Always returns status: "UP" unconditionally. See the response schema description for exactly what this endpoint does and does not check.

**One of two routes exempt from caller authentication** (the other is GET /openapi.yaml). Liveness probes must be able to reach it with no credential, see packages/api/src/app.ts (mounted ahead of the caller-auth middleware).




## OpenAPI

````yaml /openapi.bundled.yaml get /health
openapi: 3.1.0
info:
  title: Parmana API
  version: 1.0.0
  description: >
    Parmana is an Execution Trust Infrastructure that ensures there is no gap
    between what humans decide and what AI systems do. The API enables creation,
    execution, verification, replay, and auditing of Business Transactions
    through cryptographically verifiable Execution Trust Records.


    **Every route requires a caller bearer key, except GET /health.** Send
    `Authorization: Bearer <key>` on every other request. Keys are issued by
    `scripts/generate-api-key.ts` and configured server-side via
    `PARMANA_API_KEYS`; only a hash of each key is ever held by the server,
    verified in constant time. A missing or invalid credential returns 401
    before a Business Transaction is even constructed, independent of Policy
    evaluation and gateway attestation, see
    `packages/api/src/middleware/caller-auth.ts` and
    [Authentication](/api-reference/authentication). Local development may set
    `PARMANA_AUTH_DISABLED=true` to skip this middleware entirely; that flag
    must never be set in a real deployment.
  contact:
    name: Parmana
    email: support@parmana.ai
  license:
    name: Apache-2.0
    identifier: Apache-2.0
servers:
  - url: http://localhost:3000
    description: Local (packages/api, PORT env var, default 3000)
security:
  - bearerAuth: []
tags:
  - name: Execution
    description: >-
      Executes a Business Transaction through the complete Execution Trust
      pipeline
  - name: Transactions
    description: Business Transaction creation and retrieval
  - name: Verification
    description: Deterministic verification of an Execution Trust Record
  - name: Receipts
    description: Cryptographically signed Execution Trust Receipts
  - name: Trust Records
    description: Execution Trust Record retrieval
  - name: Replay
    description: Deterministic replay of a recorded Execution Trust Record
  - name: Policies
    description: Policy existence/readability check
  - name: System
    description: Operational endpoints
paths:
  /health:
    get:
      tags:
        - System
      summary: Health check
      description: >
        Returns the operational health of the Parmana service. Always returns
        status: "UP" unconditionally. See the response schema description for
        exactly what this endpoint does and does not check.


        **One of two routes exempt from caller authentication** (the other is
        GET /openapi.yaml). Liveness probes must be able to reach it with no
        credential, see packages/api/src/app.ts (mounted ahead of the
        caller-auth middleware).
      operationId: getHealth
      responses:
        '200':
          description: Service health information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/health-response.schema'
              examples:
                health:
                  summary: Real captured response
                  value:
                    status: UP
      security: []
components:
  schemas:
    health-response.schema:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: https://schemas.parmana.ai/responses/health-response.schema.json
      title: Health Response
      description: >-
        Response returned by GET /health. The route unconditionally returns
        status: "UP"; it does not check storage, policy, or any dependent
        component; a 200 response means only that the Express process is
        handling requests.
      type: object
      additionalProperties: false
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - UP
      examples:
        - status: UP
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Caller API key issued by scripts/generate-api-key.ts. Sent as
        Authorization: Bearer <key>. Verified against a stored SHA-256 hash in
        constant time by packages/api/src/auth/StaticKeyAuthenticator.ts.
        Required on every route except GET /health. See
        /api-reference/authentication.

````