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

# Step logs

> Read a page of a node's log for a step



## OpenAPI

````yaml /renderflow/api-reference/openapi.json get /jobs/{id}/steps/{step_id}/logs
openapi: 3.1.0
info:
  title: RenderFlow API
  version: 2.0.0
  description: Render farm management.
servers:
  - url: http://localhost:44442/api/v1
    description: The service on this machine. Answers without a credential
  - url: http://your-server:44442/api/v1
    description: A farm's server. Needs an API key
  - url: https://your-server:44445/api/v1
    description: A farm's server set up with TLS. Needs an API key
security:
  - bearerAuth: []
paths:
  /jobs/{id}/steps/{step_id}/logs:
    get:
      tags:
        - Jobs
      summary: Step logs
      description: Read a page of a node's log for a step
      operationId: getStepLogs
      parameters:
        - schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          required: true
          name: id
          in: path
        - schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          required: true
          name: step_id
          in: path
        - schema:
            type:
              - integer
              - 'null'
            default: 0
            description: >-
              Where to start, in lines. Negative counts back from the end, so
              `-200` is the last 200 lines. How a viewer opens on the newest
              output without reading the log first
          required: false
          description: >-
            Where to start, in lines. Negative counts back from the end, so
            `-200` is the last 200 lines. How a viewer opens on the newest
            output without reading the log first
          name: offset
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 200
          required: false
          name: limit
          in: query
        - schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
            description: Whose copy of the step's log to read. The file is one per node
          required: true
          description: Whose copy of the step's log to read. The file is one per node
          name: node_id
          in: query
      responses:
        '200':
          description: A page of log lines
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskLog'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Not permitted for this credential
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unhandled server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: No repository is configured, so logs are not collected
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    TaskLog:
      type: object
      properties:
        lines:
          type: array
          items:
            $ref: '#/components/schemas/LogLine'
        total:
          type: integer
          description: Total lines in the log, ignoring offset/limit
        offset:
          type: integer
        limit:
          type: integer
        source:
          type:
            - string
            - 'null'
          enum:
            - repository
            - node
            - null
          description: >-
            Where the log was read from. `node` is live; `repository` can be a
            few seconds behind. null means nothing has been logged
        whole_step:
          type: boolean
          default: false
          description: >-
            True when the log could not be narrowed to this task. A plain-text
            log from before lines carried one, so these are every task this
            machine ran on the step
      required:
        - lines
        - total
        - offset
        - limit
        - source
        - whole_step
    ApiError:
      type: object
      properties:
        error:
          type: string
        tag:
          type: string
          description: The catalog entry this failure is, when it is one
        title:
          type: string
          description: The catalog entry's title
        detail:
          type: string
          description: What happened this time, and what to do
        issues:
          type: array
          items:
            type: object
            properties:
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
              message:
                type: string
            required:
              - path
              - message
      required:
        - error
    LogLine:
      type: object
      properties:
        message:
          type: string
        at:
          type: integer
          description: >-
            When the node read the line, epoch ms. Absent for a log stored
            before lines carried a time
        level:
          type: string
          enum:
            - err
            - warn
            - dbg
          description: >-
            Absent is an ordinary line. Severity is decided on the node, not
            guessed from the text
        error:
          type: string
          description: >-
            The error catalog's tag, when this line matched a known failure for
            the application
        phase:
          type: string
          enum:
            - start
            - task
            - end
          description: >-
            A moment the service recorded rather than something the application
            printed: the render started, moved to another frame, or ended
      required:
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An API key from Settings, API Keys. A caller on this machine needs none.

````

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