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

# Bulk create items

> Bulk-create annotation items in a task, optionally seeding human annotations



## OpenAPI

````yaml /api-reference/openapi.json post /annotation-tasks/{task_uuid}/items
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/{task_uuid}/items:
    post:
      tags:
        - annotation-tasks
      summary: Bulk create items
      description: >-
        Bulk-create annotation items in a task, optionally seeding human
        annotations
      operationId: bulk_create_items_annotation_tasks__task_uuid__items_post
      parameters:
        - name: task_uuid
          in: path
          required: true
          schema:
            type: string
            description: Annotation task to act on
            examples:
              - f47ac10b-58cc-4372-a567-0e02b2c3d479
            title: Task Uuid
          description: Annotation task to act on
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkItemsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCreateItemsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    BulkItemsRequest:
      properties:
        items:
          items:
            $ref: '#/components/schemas/AnnotationItemPayload'
          type: array
          title: Items
          description: Items to insert. Insertion order is preserved
        annotator_id:
          anyOf:
            - type: string
              maxLength: 36
              minLength: 36
            - type: 'null'
          title: Annotator Id
          description: >-
            Annotator these initial annotations belong to. Required when any
            item carries annotations
          examples:
            - f47ac10b-58cc-4372-a567-0e02b2c3d479
      type: object
      required:
        - items
      title: BulkItemsRequest
    BulkCreateItemsResponse:
      properties:
        item_ids:
          items:
            type: string
          type: array
          title: Item Ids
          description: IDs of every item the request resolved to, in request order
          examples:
            - - f47ac10b-58cc-4372-a567-0e02b2c3d479
        count:
          type: integer
          title: Count
          description: How many items the request resolved to
        new_item_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: New Item Ids
          description: IDs of the items that were newly created
        existing_item_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Existing Item Ids
          description: IDs of items that already existed by name and were reused
        annotation_job_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Annotation Job Id
          description: >-
            ID of the labelling job that holds the annotations you provided,
            present only when you send annotations with the items
      type: object
      required:
        - item_ids
        - count
      title: BulkCreateItemsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AnnotationItemPayload:
      properties:
        payload:
          title: Payload
          description: >-
            The item's payload. `name` is required and unique within the task
            for every type. The other fields depend on the task `type`:


            - `stt`: `name`, `reference_transcript`, `predicted_transcript`

            - `llm`: `name`, `chat_history` (list of `{role, content}` turns
            ending at the user turn), `agent_response` (the reply to judge),
            optional `evaluator_variables`

            - `llm-general`: `name`, `input`, `output`, optional
            `evaluator_variables`

            - `conversation`: `name`, `transcript` (list of `{role, content}`
            turns), optional `evaluator_variables`


            `evaluator_variables` maps an evaluator ID to that evaluator's
            `{{variable}}` values for this item
          examples:
            - name: clip-001
              predicted_transcript: the quick brown fax
              reference_transcript: the quick brown fox
            - agent_response: Your balance is $42.00.
              chat_history:
                - content: What is my account balance?
                  role: user
              name: case-001
            - input: 'Summarize: the meeting is moved to 3pm.'
              name: pair-001
              output: The meeting is now at 3pm.
            - name: convo-001
              transcript:
                - content: Hi, how can I help?
                  role: assistant
                - content: I lost my card.
                  role: user
                - content: I can block it now. Can you confirm the last 4 digits?
                  role: assistant
        annotations:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          description: >-
            Human annotations to seed, keyed by evaluator ID. Each evaluator ID
            must be linked to the task. Put the judgement in `value`, a bool for
            binary or a number for rating, with optional `reasoning`. Requires
            `annotator_id`
          examples:
            - f47ac10b-58cc-4372-a567-0e02b2c3d479:
                reasoning: meets the bar
                value: true
      type: object
      required:
        - payload
      title: AnnotationItemPayload
    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

````