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

> List which machines can run a step, and why the rest can't



## OpenAPI

````yaml /renderflow/api-reference/openapi.json get /jobs/{id}/steps/{step_id}/candidates
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}/candidates:
    get:
      tags:
        - Jobs
      summary: Step candidates
      description: List which machines can run a step, and why the rest can't
      operationId: getStepCandidates
      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
            minimum: 1
            maximum: 500
            default: 50
            description: Max items to return (1-500)
          required: false
          description: Max items to return (1-500)
          name: limit
          in: query
        - schema:
            type:
              - integer
              - 'null'
            minimum: 0
            default: 0
            description: Items to skip
          required: false
          description: Items to skip
          name: offset
          in: query
        - schema:
            type: string
            description: Comma-separated verdicts, e.g. eligible,excluded
          required: false
          description: Comma-separated verdicts, e.g. eligible,excluded
          name: verdict
          in: query
        - schema:
            type: string
            maxLength: 200
            description: Substring match on the machine name
          required: false
          description: Substring match on the machine name
          name: search
          in: query
        - schema:
            type: string
            description: 'One requirement''s per-machine table: rows carry met and have'
          required: false
          description: 'One requirement''s per-machine table: rows carry met and have'
          name: req_id
          in: query
        - schema:
            type: boolean
            description: >-
              With req_id: only the machines that meet it (true) or miss it
              (false)
          required: false
          description: >-
            With req_id: only the machines that meet it (true) or miss it
            (false)
          name: met
          in: query
        - schema:
            type: string
            description: >-
              Comma-separated pool ids: only machines in these pools are judged
              and counted
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          required: false
          description: >-
            Comma-separated pool ids: only machines in these pools are judged
            and counted
          name: pool_id
          in: query
      responses:
        '200':
          description: Counts, reason groups and a page of machines
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CandidateReport'
        '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'
components:
  schemas:
    CandidateReport:
      type: object
      properties:
        counts:
          type: object
          properties:
            eligible:
              type: integer
            ineligible:
              type: integer
            excluded:
              type: integer
          required:
            - eligible
            - ineligible
            - excluded
        groups:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              verdict:
                type: string
                enum:
                  - eligible
                  - ineligible
                  - excluded
              count:
                type: integer
            required:
              - title
              - verdict
              - count
          description: Machines that cannot take the step, grouped by why
        reqs:
          type: array
          items:
            type: object
            properties:
              req_id:
                type: string
              met:
                type: integer
              total:
                type: integer
            required:
              - req_id
              - met
              - total
          description: 'Per requirement: machines in scope that meet it, out of all in scope'
        licenses:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              title:
                type: string
              in_use:
                type: integer
              count:
                type: integer
            required:
              - name
              - title
              - in_use
              - count
          description: Counted render licences the step consumes
        wait:
          anyOf:
            - $ref: '#/components/schemas/StepWait'
            - type: 'null'
        data:
          type: array
          items:
            $ref: '#/components/schemas/Candidate'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
      required:
        - counts
        - groups
        - reqs
        - licenses
        - data
        - total
        - limit
        - offset
    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
    StepWait:
      type: object
      properties:
        reason:
          type: string
          enum:
            - license
            - requirements
          description: What the step waits for
        license:
          type: string
          description: The licence's name, on a license wait
        title:
          type: string
          default: ''
        at:
          type: integer
          default: 0
          example: 1785846207000
      required:
        - reason
        - title
        - at
    Candidate:
      type: object
      properties:
        node_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        name:
          type: string
        status:
          type: string
        pool_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        job:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              pattern: ^[a-fA-F0-9]{24}$
              example: 68b1f0c2a4d3e5f6a7b8c9d0
            name:
              type: string
          required:
            - id
            - name
          description: The job the machine is rendering now
        verdict:
          type: string
          enum:
            - eligible
            - ineligible
            - excluded
          description: >-
            eligible: can render it; its pool and its status are never a reason.
            ineligible: needs a different setup. excluded: failed this step (a
            Fatal error, or its tries spent)
        reasons:
          type: array
          items:
            $ref: '#/components/schemas/CandidateReason'
        met:
          type: boolean
          description: 'With req_id: whether the machine meets that requirement'
        have:
          type: string
          description: 'With req_id: the closest thing the machine has, when it does not'
      required:
        - node_id
        - name
        - status
        - pool_id
        - job
        - verdict
        - reasons
    CandidateReason:
      type: object
      properties:
        code:
          type: string
          description: >-
            not-whitelisted, blacklisted, not-master, fatal-error, attempts or
            requirement
        verdict:
          type: string
          enum:
            - eligible
            - ineligible
            - excluded
        title:
          type: string
        help:
          type: string
        req_id:
          type: string
          description: The requirement, on a requirement reason
      required:
        - code
        - verdict
        - title
  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.