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

# Post Phonecall

> Create a new PhoneCall



## OpenAPI

````yaml post /v1/phoneCalls
openapi: 3.0.0
info:
  title: AICaller APIs
  description: ''
  version: v1
  contact: {}
servers:
  - url: https://api.aicaller.io
    description: REST API server
security:
  - ApiKeyAuth: []
tags: []
paths:
  /v1/phoneCalls:
    post:
      tags:
        - Phone Calls
      description: Create a new PhoneCall
      operationId: post--phoneCall
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePhoneCallDto'
      responses:
        '200':
          description: Phone call successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseCreatePhoneCallDto'
        '400':
          description: Bad Request - Invalid input provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400ResponseDto'
        '401':
          description: Unauthorized - Not logged in or log in expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401ResponseDto'
        '403':
          description: Forbidden - Not enough permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403ResponseDto'
        '404':
          description: Not Found Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404ResponseDto'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500ResponseDto'
components:
  schemas:
    CreatePhoneCallDto:
      type: object
      properties:
        teamId:
          example: '363573667364666473667332'
          description: The unique ID of the Team, phoneCall associated with.
          allOf:
            - $ref: '#/components/schemas/ObjectId'
        phoneNumberId:
          type: string
          example: '363573667364666473667332'
          description: The ID of the phone number associated with the call.
        callTemplateId:
          type: string
          example: '363573667364666473667332'
          description: The ID of the call template used for the call.
        nameOfHuman:
          type: string
          example: John
          description: The name of the human making the call to.
        fromPhoneNumber:
          type: string
          example: '+1234567890'
          description: >-
            The optional phone number the call should be made from. If not
            provided AI will use a number from twilio settings.
        toPhoneNumber:
          type: string
          example: '+1234567890'
          description: The phone number the call is made to.
        toEmailAddress:
          type: string
          example: someone@email.com
          description: The email of the person, the call is made to.
        status:
          type: string
          enum:
            - queued
            - ringing
            - inProgress
            - busy
            - failed
            - noAnswer
            - cancelled
            - completed
          example: queued
          description: >-
            The status of the phone call. Possible values: "queued", "ringing",
            "inProgress", "busy", "noAnswer", "canceled", "failed", "completed".
        telephonyProvider:
          type: string
          enum:
            - twilio
            - plivo
            - telnyx
          example: twilio
          description: >-
            The telephony provider to be used for the phone call. Possible
            values: "twilio", "plivo", "telnyx".
        promptVariableValues:
          description: Array of prompt variables used in the call.
          type: array
          items:
            $ref: '#/components/schemas/PromptVariableValueDto'
        record:
          type: boolean
          default: false
          example: false
          description: >-
            Flag indicating whether recording is enabled for the specific phone
            call.
        callDelayedUntil:
          format: date-time
          type: string
          example: '2023-10-12T09:08:00.387Z'
          description: >-
            Can be used to schedule a call for the future. Must be ISO Date as a
            string with UTC timezone.
        phoneCallWebhooks:
          description: Array of webhooks to be notified for this call.
          type: array
          items:
            $ref: '#/components/schemas/PhoneCallWebhookDto'
      required:
        - teamId
        - callTemplateId
        - nameOfHuman
        - toPhoneNumber
        - promptVariableValues
    ResponseCreatePhoneCallDto:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CreatePhoneCallData'
      required:
        - data
    Error400ResponseDto:
      type: object
      properties:
        error:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Error400Dto'
        payload:
          type: object
          readOnly: true
      required:
        - error
        - payload
    Error401ResponseDto:
      type: object
      properties:
        error:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Error401Dto'
        payload:
          type: object
          readOnly: true
          example: {}
      required:
        - error
        - payload
    Error403ResponseDto:
      type: object
      properties:
        error:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Error403Dto'
        payload:
          type: object
          readOnly: true
          example: {}
      required:
        - error
        - payload
    Error404ResponseDto:
      type: object
      properties:
        error:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Error404Dto'
        payload:
          type: object
          readOnly: true
          example: {}
      required:
        - error
        - payload
    Error500ResponseDto:
      type: object
      properties:
        error:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Error500Dto'
        payload:
          type: object
          readOnly: true
      required:
        - error
        - payload
    ObjectId:
      type: object
      properties: {}
    PromptVariableValueDto:
      type: object
      properties:
        key:
          type: string
          example: customer_name
        value:
          type: string
          example: John
      required:
        - key
        - value
    PhoneCallWebhookDto:
      type: object
      properties:
        url:
          type: string
          example: https://hooks.abc.com/
        subscribedEvent:
          type: string
          example: phoneCall.completed
        secret:
          type: string
          example: NjUyOTgwMjkpJU0NmY25yzWkJFWDBE12
      required:
        - url
        - subscribedEvent
    CreatePhoneCallData:
      type: object
      properties:
        teamId:
          example: '363573667364666473667332'
          description: The unique ID of the Team, phoneCall associated with.
          allOf:
            - $ref: '#/components/schemas/ObjectId'
        phoneNumberId:
          type: string
          example: '363573667364666473667332'
          description: The ID of the phone number associated with the call.
        callTemplateId:
          type: string
          example: '363573667364666473667332'
          description: The ID of the call template used for the call.
        nameOfHuman:
          type: string
          example: John
          description: The name of the human making the call to.
        fromPhoneNumber:
          type: string
          example: '+1234567890'
          description: >-
            The optional phone number the call should be made from. If not
            provided AI will use a number from twilio settings.
        toPhoneNumber:
          type: string
          example: '+1234567890'
          description: The phone number the call is made to.
        toEmailAddress:
          type: string
          example: someone@email.com
          description: The email of the person, the call is made to.
        status:
          type: string
          enum:
            - queued
            - ringing
            - inProgress
            - busy
            - failed
            - noAnswer
            - cancelled
            - completed
          example: queued
          description: >-
            The status of the phone call. Possible values: "queued", "ringing",
            "inProgress", "busy", "noAnswer", "canceled", "failed", "completed".
        telephonyProvider:
          type: string
          enum:
            - twilio
            - plivo
            - telnyx
          example: twilio
          description: >-
            The telephony provider to be used for the phone call. Possible
            values: "twilio", "plivo", "telnyx".
        promptVariableValues:
          description: Array of prompt variables used in the call.
          type: array
          items:
            $ref: '#/components/schemas/PromptVariableValueDto'
        record:
          type: boolean
          default: false
          example: false
          description: >-
            Flag indicating whether recording is enabled for the specific phone
            call.
        callDelayedUntil:
          format: date-time
          type: string
          example: '2023-10-12T09:08:00.387Z'
          description: >-
            Can be used to schedule a call for the future. Must be ISO Date as a
            string with UTC timezone.
        phoneCallWebhooks:
          description: Array of webhooks to be notified for this call.
          type: array
          items:
            $ref: '#/components/schemas/PhoneCallWebhookDto'
        _id:
          type: string
          example: '12345678901234567890'
          description: Unique identifier for the phoneCall
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - teamId
        - callTemplateId
        - nameOfHuman
        - toPhoneNumber
        - promptVariableValues
        - _id
        - createdAt
        - updatedAt
    Error400Dto:
      type: object
      properties:
        statusCode:
          type: number
          readOnly: true
          example: 400
        message:
          readOnly: true
          example:
            - Invalid input
          type: array
          items:
            type: string
        error:
          type: string
          readOnly: true
          example: Bad Request
      required:
        - statusCode
        - message
        - error
    Error401Dto:
      type: object
      properties:
        statusCode:
          type: number
          readOnly: true
          example: 401
        message:
          readOnly: true
          example:
            - Unauthorized
          type: array
          items:
            type: string
        error:
          type: string
          readOnly: true
          example: Unauthorized
      required:
        - statusCode
        - message
        - error
    Error403Dto:
      type: object
      properties:
        statusCode:
          type: number
          readOnly: true
          example: 403
        message:
          readOnly: true
          example:
            - Forbidden resource
          type: array
          items:
            type: string
        error:
          type: string
          readOnly: true
          example: Forbidden
      required:
        - statusCode
        - message
        - error
    Error404Dto:
      type: object
      properties:
        statusCode:
          type: number
          readOnly: true
          example: 404
        message:
          readOnly: true
          example:
            - Not Found
          type: array
          items:
            type: string
        error:
          type: string
          readOnly: true
          example: Not Found
      required:
        - statusCode
        - message
        - error
    Error500Dto:
      type: object
      properties:
        error:
          type: string
          readOnly: true
          example: Internal Server Error
        message:
          readOnly: true
          example:
            - INTERNAL_ERROR
          type: array
          items:
            type: string
        statusCode:
          type: number
          readOnly: true
          example: 500
      required:
        - error
        - message
        - statusCode
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: aicaller-api-key

````