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

# Inspect the durable resumable-step checkpoint for one job.

> This is an explicit inspection endpoint because cursor bytes may contain
application data. Ordinary job detail and list responses never include checkpoint
or cursor state. An existing job that has not used resumable steps returns an
empty checkpoint; 404 means the job itself does not exist.




## OpenAPI

````yaml /api/headgate.openapi.yaml get /jobs/{id}/checkpoint
openapi: 3.1.0
info:
  title: headgate control API
  version: 0.1.0
  description: >
    The web UI is one client of this control API and gets no

    privileged access — asynqmon reads Redis directly, which is why its
    compatibility

    note is three minor versions stale.


    Both the Go and Rust implementations serve this spec, and the conformance
    suite

    asserts identical responses. Every list endpoint is bounded to prevent
    inspection

    from becoming an unbounded store operation: asynq's

    GetQueueInfo is O(number of groups) and has pinned Redis CPU for seconds in

    production. Monitoring caused the outage.


    DERIVED FROM THE ARCHITECTURE, NOT FROM A PREDECESSOR'S UI. The first draft
    of this

    spec was the asynq Inspector surface -- list by state, act on one job, pause
    a queue

    -- with new nouns bolted on. That inherited three problems: it omitted bulk

    operations, history, and enqueue (which asynq and apalis-board respectively
    DO have),

    and more importantly it had no endpoint for the question this system's own
    design

    creates. When dequeue is an admission decision, the operator's first
    question is not

    "what is in the queue" but "why is THIS job not running" -- see
    /jobs/{id}/admission.

    No predecessor needs that endpoint because no predecessor has a gate.
servers:
  - url: /api/v1
security: []
paths:
  /jobs/{id}/checkpoint:
    get:
      summary: Inspect the durable resumable-step checkpoint for one job.
      description: >
        This is an explicit inspection endpoint because cursor bytes may contain

        application data. Ordinary job detail and list responses never include
        checkpoint

        or cursor state. An existing job that has not used resumable steps
        returns an

        empty checkpoint; 404 means the job itself does not exist.
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Current durable checkpoint, including an empty checkpoint.
          content:
            application/json:
              schema:
                type: object
                required:
                  - last_completed_step
                  - completed_steps
                  - in_progress_step
                  - cursor_step
                  - cursor
                  - schema_version
                  - step_set_hash
                  - crashes_by_step
                properties:
                  last_completed_step:
                    type:
                      - string
                      - 'null'
                  completed_steps:
                    type: array
                    items:
                      type: string
                  in_progress_step:
                    type:
                      - string
                      - 'null'
                  cursor_step:
                    type:
                      - string
                      - 'null'
                  cursor:
                    type:
                      - string
                      - 'null'
                    contentEncoding: base64
                  schema_version:
                    type: integer
                    minimum: 0
                    maximum: 4294967295
                  step_set_hash:
                    type: string
                  crashes_by_step:
                    type: object
                    additionalProperties:
                      type: integer
                      minimum: 0
                      maximum: 4294967295
        '404':
          description: Job missing
        '501':
          description: Backend does not implement checkpoint inspection
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema:
        type: string

````