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

# Create a task batch

> Create up to 10,000 Tasks from either an explicit tasks array or a Contact List plus one Task template. Each Task uses the same fields and retry contract as POST /api/v2/tasks. Submissions over 1,000 Tasks require Idempotency-Key and return 202 while they are created.



## OpenAPI

````yaml post /api/v2/tasks/batches
openapi: 3.0.0
info:
  version: 2.0.0
  title: Vida API
  description: Vida API Documentation
servers:
  - url: https://api.vida.dev
    description: Vida Production
    variables:
      baseUrl:
        default: api.vida.dev
        description: Production API Root
security: []
tags:
  - name: Agents
  - name: Apps
    description: Install Vida apps and use their enabled integration functions.
  - name: Integrations
    description: Configure Vader integrations.
  - name: Inbound Email
    description: Control which senders may create inbound email work for an Agent.
  - name: Features
    description: Inspect capabilities available within an account hierarchy.
  - name: Conversation Logs
    description: Query conversation activity and calculate account-level metrics.
  - name: Computer Agents
    description: Set up, configure, inspect, and manage Vida Computer Agents.
  - name: Computer Agent Sessions
    description: View and reset Computer Agent sessions.
  - name: Accounts
  - name: Agent Templates
    description: Create, manage, and apply reusable Agent configurations.
paths:
  /api/v2/tasks/batches:
    post:
      tags:
        - Tasks
      summary: Create a task batch
      description: >-
        Create up to 10,000 Tasks from either an explicit tasks array or a
        Contact List plus one Task template. Each Task uses the same fields and
        retry contract as POST /api/v2/tasks. Submissions over 1,000 Tasks
        require Idempotency-Key and return 202 while they are created.
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: object
            properties:
              type:
                type: string
                example: string
              maxLength:
                type: number
                example: 200
          description: >-
            Required for submissions over 1,000 Tasks. Repeating the same key
            and payload safely resumes or returns that submission; reusing it
            for a different payload returns 409.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tasks:
                  type: array
                  minItems: 1
                  maxItems: 10000
                  description: >-
                    Explicit Task objects. Each requires type; call, text, and
                    email also require target.
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - call
                          - text
                          - email
                          - ping
                      target:
                        type: string
                      accountId:
                        type: integer
                      context:
                        type: string
                      taskContext:
                        type: string
                      greeting:
                        type: string
                      waitToGreet:
                        type: boolean
                      message:
                        type: string
                      scheduledFor:
                        type: integer
                      externalTaskId:
                        type: string
                        description: >-
                          Reusable correlation/grouping ID, not an idempotency
                          key
                      contactListName:
                        type: string
                      goal:
                        type: object
                        nullable: true
                        description: >-
                          Requires completionCriteria; omitted or null inherits
                          the organization default
                      retryPolicy:
                        type: object
                        nullable: true
                        description: >-
                          Supports delaysSeconds or mixed-channel steps plus
                          retryOn and responseTimeoutSeconds; omitted or null
                          inherits the organization default
                      meta:
                        type: object
                        properties:
                          contact:
                            $ref: '#/components/schemas/TaskContactFields'
                        additionalProperties: true
                contactListName:
                  type: string
                  description: Create one Task for every eligible Contact List member
                task:
                  type: object
                  description: >-
                    Task template without target for the selected Contact List.
                    Supports call, text, and email and the same goal/retryPolicy
                    fields as POST /api/v2/tasks.
      responses:
        '201':
          description: Task batch created
        '202':
          description: Large Task submission accepted for asynchronous creation
        '400':
          description: Invalid Task template or Contact List
        '401':
          description: Unauthorized
        '409':
          description: Idempotency-Key was already used for a different payload
        '500':
          description: Internal Server Error
      security:
        - apiKeyAuth: []
components:
  schemas:
    TaskContactFields:
      type: object
      additionalProperties: false
      description: >-
        Optional Contact fields for call, text and email Task creation,
        including outboundCall, outboundSms and outboundEmail. Fills missing
        fields on the target Contact in the Task organization before scheduling.
        Nested objects fill missing leaves; existing nonblank values, false,
        zero and nonempty arrays are preserved. Strings are trimmed; null, blank
        strings and empty objects/arrays are ignored. New Contacts use the
        supplied name instead of a global-profile default. Existing target
        phone/email defaults remain canonical. Does not change the Task target,
        global user profile or outbound caller ID. Task updates do not apply
        Contact changes; use the Contact API to replace or clear existing
        values. Identity and ownership fields are not accepted. See [Contact
        fields](https://vida.io/docs/api-reference/platform-guides/contacts-and-objectives#contact-fields)
        for the full field reference.
      properties:
        name:
          type: string
          nullable: true
          example: Example Person
        title:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
          example: lead@example.com
        phone:
          type: string
          nullable: true
          example: '+15551234567'
        cnam:
          type: string
          nullable: true
          description: >-
            Organization Contact display data only; does not change outbound
            caller ID.
        mobile:
          type: string
          nullable: true
        birthday:
          type: string
          nullable: true
        gender:
          type: string
          nullable: true
        image:
          type: string
          nullable: true
        address:
          type: object
          nullable: true
          additionalProperties: false
          properties:
            street:
              type: string
              nullable: true
            city:
              type: string
              nullable: true
            state:
              type: string
              nullable: true
            zip:
              type: string
              nullable: true
              example: '07101'
            country:
              type: string
              nullable: true
        company:
          type: object
          nullable: true
          additionalProperties: false
          properties:
            name:
              type: string
              nullable: true
            industry:
              type: string
              nullable: true
            position:
              type: string
              nullable: true
            website:
              type: string
              nullable: true
            address:
              type: string
              nullable: true
        preferredContactMethod:
          type: string
          nullable: true
        marketingOptIn:
          type: boolean
          nullable: true
        contactSource:
          type: string
          nullable: true
        socialMedia:
          type: object
          nullable: true
          additionalProperties: false
          properties:
            linkedin:
              type: string
              nullable: true
            twitter:
              type: string
              nullable: true
            facebook:
              type: string
              nullable: true
            instagram:
              type: string
              nullable: true
        leadSource:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
        tags:
          type: array
          nullable: true
          items:
            type: string
        notes:
          type: string
          nullable: true
        agentContext:
          type: string
          nullable: true
        customFields:
          type: object
          nullable: true
          additionalProperties: true
          maxProperties: 20
          description: >-
            Custom JSON data, at most 20 top-level keys and 8192 UTF-8 JSON
            bytes, including existing values after merge.
          example:
            vendorLeadCode: lead-123
            source: website
        lastTask:
          type: object
          nullable: true
          additionalProperties: false
          properties:
            taskId:
              oneOf:
                - type: string
                - type: number
              nullable: true
            listId:
              oneOf:
                - type: string
                - type: number
              nullable: true
            timestamp:
              type: number
              nullable: true
            success:
              type: boolean
              nullable: true
        lists:
          type: array
          nullable: true
          items:
            type: object
            required:
              - label
            properties:
              label:
                type: string
              timestamp:
                type: number
        appointments:
          type: array
          nullable: true
          items:
            type: object
            additionalProperties: true
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: query
      name: token
      description: Vida API Token

````