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

# List Jobs

> List jobs for the current organization.

This endpoint uses cursor-based pagination ordered newest-first. See [Pagination](/api-reference/pagination) for a full example.


## OpenAPI

````yaml /openapi.json get /jobs
openapi: 3.1.0
info:
  title: Woodwide API
  description: API service for the Woodwide platform
  version: 0.1.0
servers:
  - url: https://api.woodwide.ai
    description: Production
security: []
paths:
  /jobs:
    get:
      tags:
        - Jobs
      summary: List Jobs
      description: List jobs for the current organization.
      operationId: list_jobs_jobs_get
      parameters:
        - 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: type
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/JobType'
              - type: 'null'
            description: Filter by job type
            title: Type
          description: Filter by job type
        - name: model_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: uuid
              - type: 'null'
            description: Filter by model ID
            title: Model Id
          description: Filter by model ID
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            default: 50
            title: Limit
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Pagination cursor
            title: Cursor
          description: Pagination cursor
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListJobsResponse'
              example:
                items:
                  - job_id: c3d4e5f6-0000-0000-0000-000000000003
                    type: train
                    status: succeeded
                    created_at: '2025-01-15T10:00:00Z'
                next_cursor: null
        '401':
          description: Unauthorized -- API key is missing or invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not authenticated
        '403':
          description: >-
            Forbidden -- your API key does not have permission for this
            resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Forbidden
        '404':
          description: Not Found -- the requested resource does not exist.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: >-
            Too Many Requests -- you have exceeded the rate limit. Heavy
            operations (training, inference, dataset uploads) are limited to 60
            requests per minute per API key. All other endpoints are limited to
            600 requests per minute per API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Rate limit exceeded. Retry after a short delay.
      security:
        - HTTPBearer: []
components:
  schemas:
    JobStatus:
      type: string
      enum:
        - initializing
        - pending
        - queued
        - running
        - succeeded
        - failed
        - canceled
        - rejected
        - waiting_for_upload
      title: JobStatus
    JobType:
      type: string
      enum:
        - dataset_ingest
        - train
        - infer_sync
        - infer_batch
        - evaluate
        - export
      title: JobType
    ListJobsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/Job'
          type: array
          title: Items
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
      type: object
      required:
        - items
      title: ListJobsResponse
      description: |-
        Response for listing jobs.

        Returns jobs in the current organization, ordered by creation time
        (newest first). Use ``status`` and ``type`` query parameters to filter.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
      description: Returned when request parameters or body fail validation.
    Job:
      properties:
        job_id:
          type: string
          format: uuid
          title: Job Id
        type:
          type: string
          title: Type
          description: 'Job type: dataset_ingest, train, infer_sync, or infer_batch.'
        status:
          $ref: '#/components/schemas/JobStatus'
          description: >-
            Job status: initializing, pending, queued, running, succeeded,
            failed, canceled, or rejected. For dataset_ingest jobs, may also be
            'waiting_for_upload'.
        created_at:
          type: string
          format: date-time
          title: Created At
        started_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Started At
        finished_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Finished At
        created_by:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Created By
          description: 'Who created this job: {principal_type, user_id, api_key_id}.'
      type: object
      required:
        - job_id
        - type
        - status
        - created_at
      title: Job
      description: |-
        Basic job information.

        Returned in list responses and as the base for ``JobDetail``.
    ValidationError:
      type: object
      required:
        - loc
        - msg
        - type
      properties:
        loc:
          type: array
          items:
            type: string
          title: Location
          description: Path to the field that caused the error.
        msg:
          type: string
          title: Message
          description: Human-readable error message.
        type:
          type: string
          title: Error Type
          description: Machine-readable error type identifier.
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````