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

# List the state changes of a print job

> Lists every state change of one print job, oldest first, with the message and the actor (api, user, agent or system) behind it.



## OpenAPI

````yaml /openapi/openapi.json get /v1/printjobs/{id}/events
openapi: 3.1.0
info:
  contact:
    name: InkRelay
    url: https://docs.inkrelay.app
  description: >-
    Cloud printing API: send PDFs and raw jobs to printers attached to computers
    running the InkRelay agent.
  title: InkRelay API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.inkrelay.app
security:
  - ApiKeyAuth: []
  - BasicAuth: []
tags:
  - description: Who you are, your plan and usage
    name: Account
  - description: Machines running the InkRelay agent
    name: Computers
  - description: Printers reported by agents
    name: Printers
  - description: Submit and track print jobs
    name: Print jobs
  - description: Signed event delivery to your HTTPS endpoints
    name: Webhooks
  - description: Cursor based event feed
    name: Events
  - description: Prints used this period
    name: Usage
paths:
  /v1/printjobs/{id}/events:
    get:
      tags:
        - Print jobs
      summary: List the state changes of a print job
      description: >-
        Lists every state change of one print job, oldest first, with the
        message and the actor (api, user, agent or system) behind it.
      operationId: listPrintJobEvents
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/PrintJobEvent'
                    type: array
                required:
                  - data
                type: object
          description: State changes, oldest first
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid API key or session
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: The key scope or member role does not allow this
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found in this organization and mode
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            rate_limited: more than 20 requests per second with this API key;
            retry after the Retry-After header
          headers:
            RateLimit-Limit:
              description: Requests allowed per second for this API key (20)
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests left in the current one second window
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the window frees a request
              schema:
                type: integer
            Retry-After:
              description: Whole seconds to wait before retrying; present on rate_limited
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
        - BasicAuth: []
components:
  schemas:
    PrintJobEvent:
      example:
        actor: agent
        createdAt: '2026-10-14T10:00:09.000Z'
        id: 0192f1a0-7c00-7000-8000-0000000000ab
        message: null
        state: done
      properties:
        actor:
          enum:
            - api
            - agent
            - system
            - user
          type: string
        createdAt:
          type: string
        id:
          type: string
        message:
          type:
            - string
            - 'null'
        state:
          enum:
            - queued
            - sent
            - received
            - printing
            - done
            - error
            - cancelled
            - expired
          type: string
      required:
        - id
        - state
        - message
        - actor
        - createdAt
      type: object
    Error:
      description: >-
        Every error response uses this envelope; code is stable, message is for
        humans.
      properties:
        error:
          properties:
            code:
              example: not_found
              type: string
            message:
              example: Printer not found
              type: string
            request_id:
              example: 4f9c2a7e-1b3d-4c5e-8f6a-0b1c2d3e4f5a
              type: string
            upgrade_url:
              description: Billing page to upgrade from; present on quota_exceeded
              example: https://app.inkrelay.app/billing?upgrade=1
              format: uri
              type: string
          required:
            - code
            - message
            - request_id
          type: object
      required:
        - error
      type: object
  securitySchemes:
    ApiKeyAuth:
      bearerFormat: ir_live_ or ir_test_ key
      description: >-
        Send `Authorization: Bearer <API key>`. Use an ir_test_ key in the
        playground; it only reaches virtual test printers.
      scheme: bearer
      type: http
      x-default: ir_test_REPLACE_WITH_YOUR_TEST_KEY
    BasicAuth:
      description: >-
        PrintNode compatible: put the API key in the username with an empty
        password
      scheme: basic
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.