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

# Judge immutable snapshot bytes without creating a job

> Runs the same decode and ExecutionService readmission as POST /v1/jobs over the exact request body.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/check
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.116.2
servers:
  - url: http://127.0.0.1
security:
  - bearerAuth: []
paths:
  /v1/check:
    post:
      summary: Judge immutable snapshot bytes without creating a job
      description: >-
        Runs the same decode and ExecutionService readmission as POST /v1/jobs
        over the exact request body.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutionSnapshot'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotValidationAck'
          description: >-
            Compact snapshot validation acknowledgement, not the full engine
            check report
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error envelope
        '408':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Request deadline
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Encoded body or decoded snapshot resource limit
        '415':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Content-Type or Content-Encoding refused
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Malformed, unsupported, tampered, or semantically refused snapshot
components:
  schemas:
    ExecutionSnapshot:
      additionalProperties: false
      description: >-
        Immutable byte-owned execution world. Unit bytes are canonical lowercase
        hexadecimal and digests are canonical lowercase SHA-256. The decoded
        unit aggregate is limited to 16 MiB and the complete encoded request to
        33 MiB. This object is the request body itself, not a path-bearing
        wrapper.
      properties:
        digest:
          pattern: ^[0-9a-f]{64}$
          type: string
        format_version:
          const: 1
          type: integer
        root:
          maxLength: 4096
          minLength: 1
          type: string
        units:
          items:
            additionalProperties: false
            properties:
              bytes_hex:
                pattern: ^(?:[0-9a-f]{2})*$
                type: string
              digest:
                pattern: ^[0-9a-f]{64}$
                type: string
              kind:
                maximum: 3
                minimum: 0
                type: integer
              path:
                maxLength: 4096
                minLength: 1
                type: string
            required:
              - path
              - kind
              - digest
              - bytes_hex
            type: object
          maxItems: 256
          type: array
      required:
        - format_version
        - root
        - digest
        - units
      type: object
    SnapshotValidationAck:
      additionalProperties: false
      description: >-
        Compact remote acknowledgement that the exact snapshot was revalidated.
        This is not the engine's public full check report; SDK callers retain
        the engine-owned report captured with the snapshot and return it only
        after this acknowledgement succeeds.
      properties:
        root:
          minLength: 1
          type: string
        snapshot_digest:
          pattern: ^[0-9a-f]{64}$
          type: string
        status:
          const: accepted
          type: string
        units:
          minimum: 1
          type: integer
      required:
        - status
        - snapshot_digest
        - root
        - units
      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

````