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

# Create Campaign Calls Bulk

> Create a new campaign call configuration in bulk.
- **body**: The campaign call configuration data.
- **config**: Configuration options for the campaign call.
- **data**: List of campaign call data to be processed in bulk.



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/campaigns/api.json post /campaigns/v1/schedule/calls
openapi: 3.1.0
info:
  title: Interactly API
  description: API for building interactly.ai services
  version: 1.1.0
  contact:
    name: Interactly
    url: https://interactly.ai
    email: developers@interactly.ai
servers:
  - url: https://api-prod.interactly.ai
    description: API Server
security: []
paths:
  /campaigns/v1/schedule/calls:
    post:
      tags:
        - Campaign Bulk Calls
        - Bulk Calls
      summary: Create Campaign Calls Bulk
      description: |-
        Create a new campaign call configuration in bulk.
        - **body**: The campaign call configuration data.
        - **config**: Configuration options for the campaign call.
        - **data**: List of campaign call data to be processed in bulk.
      operationId: campaigns_service_create_campaigns_calls_v1_schedule_calls_post
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCampaignCallsRequest'
              description: Campaign call configuration data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '202':
          description: Batch accepted — campaign and calls created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCreateCallsResponse'
        '400':
          description: Bad request — invalid input or constraint violation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Requested resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearer: []
components:
  schemas:
    BulkCampaignCallsRequest:
      properties:
        config:
          $ref: '#/components/schemas/CampaignConfig'
        data:
          items:
            $ref: '#/components/schemas/UploadCallItem'
          type: array
          title: Data
          description: >-
            List of call records to create. Each item must include phone_number;
            all other fields are optional. Extra fields are stored as call
            payload.
      type: object
      title: BulkCampaignCallsRequest
    BulkCreateCallsResponse:
      properties:
        message:
          type: string
          title: Message
          description: Result description
          examples:
            - Received batch calls triggers successfully.
        data:
          $ref: '#/components/schemas/BulkCreateCallsData'
          description: Details of the accepted batch
      type: object
      required:
        - message
        - data
      title: BulkCreateCallsResponse
    ErrorResponse:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error description
          examples:
            - Resource not found.
      type: object
      required:
        - message
      title: ErrorResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CampaignConfig:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Campaign name
        callType:
          type: string
          title: Calltype
          default: common
        campaignType:
          type: string
          title: Campaigntype
          default: single
        timezone:
          type: string
          title: Timezone
          default: America/New_York
        startHours:
          type: integer
          title: Starthours
          default: 9
        endHours:
          type: integer
          title: Endhours
          default: 17
        reportEmails:
          items:
            type: string
          type: array
          title: Reportemails
        maxParallelCalls:
          type: integer
          title: Maxparallelcalls
          default: 2
        isReviewRequired:
          type: boolean
          title: Isreviewrequired
          default: true
        validateOnUpload:
          type: boolean
          title: Validateonupload
          default: false
        reviewEmails:
          items:
            type: string
          type: array
          title: Reviewemails
        maxRetries:
          type: integer
          title: Maxretries
          default: 0
        uidExtension:
          type: string
          title: Uidextension
          default: datetime
        schedule:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Schedule
        assistantNumbers:
          items:
            type: string
          type: array
          title: Assistantnumbers
        webhook:
          $ref: '#/components/schemas/WebhookConfig'
        retryPolicy:
          $ref: '#/components/schemas/RetryPolicy-Input'
        preCallMessage:
          $ref: '#/components/schemas/PreCallMessage'
        afterCallMessages:
          $ref: '#/components/schemas/AfterCallMessages'
        tags:
          items:
            type: string
          type: array
          title: Tags
      type: object
      title: CampaignConfig
    UploadCallItem:
      properties:
        phone_number:
          type: string
          title: Phone Number
          description: Target phone number (E.164 format recommended, e.g. '+12065551234')
        override_assistant_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Override Assistant Id
          description: Override the campaign's default AI assistant for this specific call
        override_timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Override Timezone
          description: >-
            IANA timezone override for this call's scheduling window (e.g.
            'America/Chicago')
        override_schedule:
          anyOf:
            - items:
                $ref: '#/components/schemas/Schedule'
              type: array
            - type: 'null'
          title: Override Schedule
          description: >-
            Call window override — each entry has 'startAt' and 'endAt' as ISO
            8601 strings
      additionalProperties: true
      type: object
      required:
        - phone_number
      title: UploadCallItem
      description: >-
        One call record in an upload batch. Extra fields are stored as call
        payload.
    BulkCreateCallsData:
      properties:
        campaignId:
          type: string
          title: Campaignid
          description: ID of the campaign created or used for this batch
        campaignName:
          type: string
          title: Campaignname
          description: Name of the campaign
        callIds:
          items:
            type: string
          type: array
          title: Callids
          description: IDs of the call records created in this batch
        requestId:
          type: string
          title: Requestid
          description: Unique batch identifier — use for tracing and support
      type: object
      required:
        - campaignId
        - campaignName
        - callIds
        - requestId
      title: BulkCreateCallsData
    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
    WebhookConfig:
      properties:
        enabled:
          type: boolean
          title: Webhooks Enabled
          description: >-
            Enable/disable webhooks. When enabled, webhook notifications will be
            sent based on the configured events.
          default: false
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Webhook URL
          description: >-
            The endpoint URL where Interactly will send webhook notifications
            about campaign and call events using HTTP POST requests.
          input_field_type: external_url_link
        secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Webhook Secret Key
          description: >-
            An optional secret key used for authenticating webhook requests.
            Each request will include this key in the 'x-interactly-secret'
            header to help you verify that the request originated from
            Interactly.
          input_field_type: password
        headers:
          anyOf:
            - items:
                $ref: '#/components/schemas/WebhookHeader'
              type: array
            - type: 'null'
          title: Custom HTTP Headers
          description: >-
            A list of additional HTTP headers to include with each webhook
            request. These headers can be used to authenticate your webhook
            endpoint or send custom metadata. Headers marked as sensitive will
            have their values encrypted before storage. All headers will be
            automatically included in every webhook request.
        events:
          items:
            $ref: '#/components/schemas/WebhookEvents'
          type: array
          title: Subscribed Webhook Events
          description: >-
            The list of events for which webhook notifications will be sent. You
            can choose one or more events to receive notifications about
            specific campaign and call activities.
      type: object
      title: WebhookConfig
      description: Represents the configuration for webhooks.
    RetryPolicy-Input:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Enable/disable retry policy
          default: false
        maxNumberOfRetries:
          type: integer
          title: Maxnumberofretries
          description: Maximum number of retries
          default: 2
        maxRetriesPerDay:
          type: integer
          title: Maxretriesperday
          description: Max retries per day
          default: 2
        rules:
          items:
            $ref: '#/components/schemas/RetryRule'
          type: array
          title: Rules
          description: List of retry rules
      type: object
      title: RetryPolicy
      description: |-
        Represents the retry policy for a call.
        This model includes fields for enabling/disabling the retry policy,
        setting the maximum number of retries, and the rules.
    PreCallMessage:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Enable/disable pre-call message
          default: false
        scheduledBefore:
          anyOf:
            - type: string
            - type: 'null'
          title: Scheduledbefore
          description: Time before call to schedule message
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Scheduledat
          description: Scheduled time for message
        messageType:
          anyOf:
            - type: string
            - type: 'null'
          title: Messagetype
          description: Type of pre-call message
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: Pre-call message content
      type: object
      title: PreCallMessage
      description: |-
        Represents the message sent before a call is initiated.
        This model includes fields for enabling/disabling the pre-call message,
        scheduling the message, and the content of the message.
    AfterCallMessages:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Enable/disable after call messages
          default: false
        callAnswered:
          $ref: '#/components/schemas/CallMessage'
          description: Message for answered calls
        callNotAnswered:
          $ref: '#/components/schemas/CallMessage'
          description: Message for unanswered calls
        callDeclined:
          $ref: '#/components/schemas/CallMessage'
          description: Message for declined calls
        voicemail:
          $ref: '#/components/schemas/CallMessage'
          description: Message for voicemail
        callDropped:
          $ref: '#/components/schemas/CallMessage'
          description: Message for dropped calls
      type: object
      title: AfterCallMessages
      description: |-
        Represents the messages sent after a call is processed.
        This model includes messages for various outcomes of the call,
        such as answered, not answered, declined, voicemail, and dropped calls.
    Schedule:
      properties:
        startAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Startat
          description: Schedule start datetime
        endAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Endat
          description: Schedule end datetime
      type: object
      title: Schedule
      description: |-
        Represents a schedule for processing calls.
        This model includes the start and end times for the schedule,
        allowing for flexible scheduling of call processing.
    WebhookHeader:
      properties:
        key:
          type: string
          title: Header Key
          description: >-
            The name of the HTTP header to include in the webhook request (e.g.,
            'Authorization').
        value:
          type: string
          title: Header Value
          description: >-
            The value of the HTTP header (e.g., 'Bearer token'). This value will
            be encrypted if marked as sensitive.
          input_field_type: password
        sensitive:
          type: boolean
          title: Sensitive
          description: >-
            If true, the header value will be encrypted and stored securely in
            the database.
          default: false
      type: object
      title: WebhookHeader
    WebhookEvents:
      type: string
      enum:
        - call_status
        - campaign_report
        - campaign_status
      title: WebhookEvents
      description: Enum representing different webhook events.
    RetryRule:
      properties:
        ruleId:
          anyOf:
            - type: string
            - type: 'null'
          title: Ruleid
          description: Rule id for the retry attempt
        ruleType:
          anyOf:
            - $ref: '#/components/schemas/RetryRuleType'
            - type: 'null'
          description: Rule type
        callStatusCode:
          anyOf:
            - $ref: '#/components/schemas/CallStatusCode'
            - type: 'null'
          description: Call status code to trigger retry
        outcome:
          anyOf:
            - type: string
            - type: 'null'
          title: Outcome
          description: Custom outcome string from call processing to trigger retry
        delayStartInMinutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Delaystartinminutes
          description: Delay period's start in minutes
        delayEndInMinutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Delayendinminutes
          description: Delay period's end in minutes
      type: object
      title: RetryRule
      description: |-
        Represents a retry rule for a call.
        This model is used to store the retry rules for a call.
    CallMessage:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Enable/disable message
          default: false
        messageType:
          anyOf:
            - type: string
            - type: 'null'
          title: Messagetype
          description: Type of message
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: Message content
      type: object
      title: CallMessage
      description: |-
        Represents a message associated with a call.
        This model includes fields for enabling/disabling the message,
        specifying the type of message, and the content of the message.
    RetryRuleType:
      type: string
      enum:
        - call_status_based
        - outcome_based
      title: RetryRuleType
      description: >-
        Enum representing the type of retry rule.

        This enum is used to categorize the type of retry rule being applied to
        a call.

        Each type represents a different category of retry rule, allowing for
        better organization and handling of retries.

        Attributes:
            CALL_STATUS_BASED (str): Represents a retry rule based on the status of the call.
            OUTCOME_BASED (str): Represents a retry rule based on the outcome of the call.
    CallStatusCode:
      type: string
      enum:
        - call_declined
        - call_not_answered
        - call_dropped
      title: CallStatusCode
      description: |-
        Enum representing the status code of a call.
        This enum is used to categorize the status code of a call,
        allowing for better organization and handling of calls.
        Attributes:
            CALL_DECLINED (str): Represents a call that was declined.
            CALL_NOT_ANSWERED (str): Represents a call that was not answered.
            CALL_DROPPED (str): Represents a call that was dropped.
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````