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

# List annotation tasks

> List annotation tasks with linked evaluators



## OpenAPI

````yaml /api-reference/openapi.json get /annotation-tasks
openapi: 3.1.0
info:
  title: Calibrate Public API
  version: 0.1.0
  description: Programmatic API for CI/automation. Pass your key in the `X-API-Key` header.
servers:
  - url: https://api.calibrate.artpark.ai
    description: Production
security: []
paths:
  /annotation-tasks:
    get:
      tags:
        - annotation-tasks
      summary: List annotation tasks
      description: List annotation tasks with linked evaluators
      operationId: list_annotation_tasks_annotation_tasks_get
      parameters:
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Case-insensitive substring search on `name`. Blank is a no-op
            title: Q
          description: Case-insensitive substring search on `name`. Blank is a no-op
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 1000000
                minimum: 1
              - type: 'null'
            description: Maximum number of items to return. Omit for no limit (all items)
            title: Limit
          description: Maximum number of items to return. Omit for no limit (all items)
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Number of items to skip before returning results
            default: 0
            title: Offset
          description: Number of items to skip before returning results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AnnotationTaskResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    PaginatedResponse_AnnotationTaskResponse_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/AnnotationTaskResponse'
          type: array
          title: Items
          description: The page of results
        total:
          type: integer
          title: Total
          description: Total number of items matching the query, before pagination
        limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Limit
          description: The applied `limit` (null when unbounded)
        offset:
          type: integer
          title: Offset
          description: The applied `offset`
          default: 0
      type: object
      required:
        - items
        - total
      title: PaginatedResponse[AnnotationTaskResponse]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AnnotationTaskResponse:
      properties:
        uuid:
          type: string
          maxLength: 36
          minLength: 36
          title: Uuid
          description: Unique ID for the task
          examples:
            - f47ac10b-58cc-4372-a567-0e02b2c3d479
        name:
          type: string
          title: Name
          description: Name of the task
        type:
          type: string
          enum:
            - stt
            - llm
            - llm-general
            - conversation
            - tts
          title: Type
          description: |-
            Task type. Determines the shape of each item's payload.
            - `stt`: judge a transcript on its own
            - `llm`: judge one response with its conversation history
            - `llm-general`: judge a standalone `input -> output` pair
            - `conversation`: judge a full conversation
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: The task's description
        created_at:
          type: string
          title: Created At
          description: When the task was created (ISO 8601 UTC)
        updated_at:
          type: string
          title: Updated At
          description: When the task was last updated (ISO 8601 UTC)
        evaluators:
          items:
            additionalProperties: true
            type: object
          type: array
          description: >-
            The evaluators linked to this task, in display order. Fetching one
            task by ID enriches each with its live version's rubric. Listing
            tasks returns lightweight metadata (uuid, name, type, position) only
          default: []
        item_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Item Count
          description: Number of items in the task
        has_agreement:
          type: boolean
          title: Has Agreement
          description: >-
            Whether the task has at least one comparable human-vs-human or
            human-vs-evaluator pair, computed over all time
          default: false
        items:
          items:
            additionalProperties: true
            type: object
          type: array
          description: >-
            The task's items, each with its agreement stats. You get these when
            you fetch one task by ID, not when you list tasks
          default: []
        jobs:
          items:
            additionalProperties: true
            type: object
          type: array
          description: >-
            The task's labelling jobs. You get these when you fetch one task by
            ID, not when you list tasks
          default: []
      type: object
      required:
        - uuid
        - name
        - type
        - created_at
        - updated_at
      title: AnnotationTaskResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication

````