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

# List Jobs

> List jobs with optional filtering.

Returns a paginated list of jobs with the total count.
If job_types is provided, it takes precedence over job_type.



## OpenAPI

````yaml https://api.ionworks.com/openapi.json get /jobs
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://api.ionworks.com
    description: Production
security: []
paths:
  /jobs:
    get:
      tags:
        - jobs
      summary: List Jobs
      description: |-
        List jobs with optional filtering.

        Returns a paginated list of jobs with the total count.
        If job_types is provided, it takes precedence over job_type.
      operationId: list_jobs_jobs_get
      parameters:
        - name: job_type
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/JobType'
              - type: 'null'
            description: Filter by job type (for backward compatibility)
            title: Job Type
          description: Filter by job type (for backward compatibility)
        - name: job_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: '#/components/schemas/JobType'
              - type: 'null'
            description: Filter by multiple job types
            title: Job Types
          description: Filter by multiple job types
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/JobStatus'
              - type: 'null'
            description: Filter by job status
            title: Status
          description: Filter by job status
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Number of items to return
            default: 10
            title: Limit
          description: Number of items to return
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Number of items to skip
            default: 0
            title: Offset
          description: Number of items to skip
        - name: ids
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: Filter by job IDs
            title: Ids
          description: Filter by job IDs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    JobType:
      type: string
      enum:
        - dummy
        - datafit
        - validation
        - simulate
        - evaluate_variables
        - optimize
        - ecm_fit
        - simple_pipeline
      title: JobType
      description: Possible types for a job
    JobStatus:
      type: string
      enum:
        - pending
        - processing
        - waiting
        - completed
        - failed
        - canceled
      title: JobStatus
      description: Possible statuses for a job
    JobListResponse:
      properties:
        jobs:
          items:
            $ref: '#/components/schemas/JobResponse'
          type: array
          title: Jobs
        count:
          type: integer
          title: Count
        total:
          type: integer
          title: Total
      type: object
      required:
        - jobs
        - count
        - total
      title: JobListResponse
      description: Schema for listing jobs with pagination
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    JobResponse:
      properties:
        job_id:
          type: string
          title: Job Id
        job_type:
          $ref: '#/components/schemas/JobType'
        status:
          $ref: '#/components/schemas/JobStatus'
        priority:
          type: integer
          title: Priority
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        started_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Started At
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
        compute_time:
          anyOf:
            - type: number
            - type: 'null'
          title: Compute Time
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        error_code:
          anyOf:
            - $ref: '#/components/schemas/JobErrorCode'
            - type: 'null'
        error_detail:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
        result:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Result
        callback_url:
          anyOf:
            - type: string
              maxLength: 2083
              minLength: 1
              format: uri
            - type: 'null'
          title: Callback Url
        parent_job_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Parent Job Id
        user_id:
          type: string
          title: User Id
        organization_id:
          type: string
          title: Organization Id
        project_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Project Id
        access_level:
          anyOf:
            - $ref: '#/components/schemas/JobAccessLevelEnum'
            - type: 'null'
          default: organization
        params_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Params Path
        metadata_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Metadata Path
        is_terminal:
          type: boolean
          title: Is Terminal
          description: >-
            Whether the job has reached a terminal state and will not transition
            further.


            Derived from :attr:`JobStatus.TERMINAL_STATUSES`, so adding a new

            terminal status to the enum automatically updates the wire field —

            clients that read ``is_terminal`` never need to know the status

            taxonomy or be re-released when it changes.
          readOnly: true
        is_failed:
          type: boolean
          title: Is Failed
          description: >-
            Whether the job terminated unsuccessfully (failed or canceled, not
            completed).


            Derived from :attr:`is_terminal` minus the success case, so any new

            non-success terminal status added to :class:`JobStatus` is

            automatically classified as a failure without touching this method.
          readOnly: true
      type: object
      required:
        - job_id
        - job_type
        - status
        - priority
        - created_at
        - updated_at
        - user_id
        - organization_id
        - is_terminal
        - is_failed
      title: JobResponse
      description: Schema for job information response
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    JobErrorCode:
      type: string
      enum:
        - CONFIGURATION_ERROR
        - MODEL_ERROR
        - SOLVER_ERROR
        - EXECUTION_TIMEOUT
        - SUBMISSION_FAILED
        - INTERNAL_ERROR
      title: JobErrorCode
      description: Machine-readable error codes for jobs.
    JobAccessLevelEnum:
      type: string
      enum:
        - project
        - organization
      title: JobAccessLevelEnum
      description: Possible access levels for a job

````