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

# Verify the job's trace journal

> Locates the journal the resident wrote for this job under the project it serves (by the job's execution and trace identity) and verifies it through the same verifier `nika trace verify` runs; the vocabulary is the CLI's. `unavailable` is the honest refusal when no journal exists. The response never exposes a filesystem path.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/jobs/{id}/trace/verify
openapi: 3.1.0
info:
  description: >-
    Authenticated loopback remote execution and declarative schedules.
    Artifacts, schedule list/delete/trigger/backfill, /v1/arm, and POST /v1/run
    are absent.
  title: nika serve
  version: 0.120.0
servers:
  - url: http://127.0.0.1
security:
  - bearerAuth: []
paths:
  /v1/jobs/{id}/trace/verify:
    get:
      summary: Verify the job's trace journal
      description: >-
        Locates the journal the resident wrote for this job under the project it
        serves (by the job's execution and trace identity) and verifies it
        through the same verifier `nika trace verify` runs; the vocabulary is
        the CLI's. `unavailable` is the honest refusal when no journal exists.
        The response never exposes a filesystem path.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TraceVerification'
          description: Typed trace verdict
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error envelope
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error envelope
components:
  schemas:
    TraceVerification:
      additionalProperties: false
      description: >-
        Run-scoped verdict on the journal the resident wrote for the job,
        through the ONE verifier `nika trace verify --json` runs. `verdict` is
        the CLI's headline word: the attained tier (ok · sealed · anchored ·
        replayed), incomplete for a journal with no terminal frame (the writer's
        liveness rides `reason`), tampered for a buried seal, broken for an
        edited chain, and the CLI's refusal classes; `unavailable` only when no
        journal exists for the job (refused before its first event · queued · a
        backend keeping none). `reason` is the machine class beside it (the seal
        tier under a ladder verdict). The CLI's own document rides verbatim
        (exit · chain · seal · anchor · replay · lines); a filesystem path is
        never returned.
      properties:
        anchor:
          additionalProperties: true
          type: object
        chain:
          additionalProperties: true
          description: >-
            events · head · headline (intact · torn · incomplete) · liveness
            (alive · dead · unknown · null)
          type: object
        exit:
          description: >-
            The CLI's exit class: 0 the reported tier holds · 2 a forged or
            edited journal · 3 the environment (unchained · unreadable · a
            missing input) · 5 incomplete lifecycle evidence
          enum:
            - 0
            - 2
            - 3
            - 5
          type: integer
        lines:
          description: The CLI's ladder lines, the journal path replaced by <journal>
          items:
            type: string
          type: array
        reason:
          enum:
            - run_not_terminal
            - trace_journal_unavailable
            - sealed
            - unsealed
            - forged
            - buried
            - unattributable
            - writer_alive
            - writer_dead
            - writer_unknown
            - buried_seal
            - broken
            - unchained
            - empty
            - unreadable
            - refused
            - line_over_long
            - unknown
          type: string
        replay:
          additionalProperties: true
          type: object
        seal:
          additionalProperties: true
          description: >-
            tier (unsealed · sealed · forged · buried · unattributable) and the
            tier's facts
          type: object
        trace_id:
          minLength: 1
          type: string
        verdict:
          enum:
            - unavailable
            - ok
            - sealed
            - anchored
            - replayed
            - incomplete
            - tampered
            - broken
            - unchained
            - empty
            - unreadable
            - refused
            - line-over-long
            - unknown
          type: string
        verify_version:
          minimum: 1
          type: integer
      required:
        - verdict
        - reason
      type: object
    Error:
      additionalProperties: false
      properties:
        error:
          additionalProperties: false
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
          type: object
      required:
        - error
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Exactly one Authorization: Bearer value from the token file'
      scheme: bearer
      type: http

````