openapi: 3.1.0
info:
  title: Brand API - Call Data
  description: "This API is used to submit call data from a call tracking provider\
    \ (e.g., Invoca, DialogTech) to impact.com. \nIt requires special credentials\
    \ for direct integration. The endpoint supports both GET and POST methods for\
    \ logging call events."
  version: v14
servers:
- url: https://twilio.ivr.impactradius.com
  description: Call Data Logging Server
paths:
  /calldata/logCallData:
    get:
      summary: Log Call Data via GET
      description: Submits call data from a call tracking provider to impact.com using
        query parameters.
      operationId: logCallDataGet
      tags:
      - Call Data
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/CampaignId'
      - $ref: '#/components/parameters/MediaId'
      - $ref: '#/components/parameters/EventDate'
      - $ref: '#/components/parameters/ActionTrackerId'
      - $ref: '#/components/parameters/CallProvider'
      - $ref: '#/components/parameters/CallSessionId'
      - $ref: '#/components/parameters/CallerId'
      - $ref: '#/components/parameters/CalledPhoneNumber'
      - $ref: '#/components/parameters/CallDuration'
      - $ref: '#/components/parameters/TalkDuration'
      - $ref: '#/components/parameters/AdId'
      - $ref: '#/components/parameters/CallStatus'
      - $ref: '#/components/parameters/CallerPhoneNumberCountry'
      - $ref: '#/components/parameters/CalledPhoneNumberCountry'
      - $ref: '#/components/parameters/SubId1'
      - $ref: '#/components/parameters/SubId2'
      - $ref: '#/components/parameters/SubId3'
      - $ref: '#/components/parameters/ClickId'
      - $ref: '#/components/parameters/City'
      - $ref: '#/components/parameters/Region'
      - $ref: '#/components/parameters/Zip'
      - $ref: '#/components/parameters/RepeatCaller'
      - $ref: '#/components/parameters/PhoneType'
      - $ref: '#/components/parameters/CallRecording'
      - $ref: '#/components/parameters/IvrDuration'
      - $ref: '#/components/parameters/Keypresses'
      - $ref: '#/components/parameters/Key1'
      - $ref: '#/components/parameters/Key2'
      - $ref: '#/components/parameters/Key3'
      - $ref: '#/components/parameters/Key4'
      - $ref: '#/components/parameters/TrafficSource'
      - $ref: '#/components/parameters/OptInSms'
      - $ref: '#/components/parameters/UserAgent'
      - $ref: '#/components/parameters/DispositionName'
      - $ref: '#/components/parameters/SaleAmount'
      - $ref: '#/components/parameters/ReferenceId'
      - $ref: '#/components/parameters/VendorEventId'
      - $ref: '#/components/parameters/PromoNumberDescription'
      - $ref: '#/components/parameters/CustomConversionEvent1Name'
      - $ref: '#/components/parameters/CustomConversionEvent2Name'
      - $ref: '#/components/parameters/CustomConversionEvent3Name'
      - $ref: '#/components/parameters/CustomConversionEvent1Value'
      - $ref: '#/components/parameters/CustomConversionEvent2Value'
      - $ref: '#/components/parameters/CustomConversionEvent3Value'
      - $ref: '#/components/parameters/CustomCallEvent1Name'
      - $ref: '#/components/parameters/CustomCallEvent2Name'
      - $ref: '#/components/parameters/CustomCallEvent3Name'
      - $ref: '#/components/parameters/CustomCallEvent1Value'
      - $ref: '#/components/parameters/CustomCallEvent2Value'
      - $ref: '#/components/parameters/CustomCallEvent3Value'
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
    post:
      summary: Log Call Data via POST
      description: Submits call data from a call tracking provider to impact.com using
        a form-urlencoded body.
      operationId: logCallDataPost
      tags:
      - Call Data
      security:
      - basicAuth: []
      requestBody:
        description: The call data to be logged.
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CallDataPayload'
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Use your AccountSID as the username and AuthToken as the password.
  schemas:
    CallDataPayload:
      type: object
      required:
      - CampaignId
      - MediaId
      - EventDate
      - ActionTrackerId
      - CallProvider
      - CallSessionId
      - CallerId
      - CalledPhoneNumber
      - CallDuration
      - TalkDuration
      properties:
        CampaignId:
          type: integer
          description: A unique identifier for your program (formerly known as campaign).
          example: 1000
        MediaId:
          type: integer
          description: The ID of the Partner or Media Source in impact.com.
          example: 10000
        EventDate:
          type: string
          format: date-time
          description: The ISO-8601 time when the call event took place.
          example: '2026-09-10T22:55:32-08:00'
        ActionTrackerId:
          type: integer
          description: A unique identifier for the Event Type (Phone_Action_Tracker_ID).
          example: 4000
        CallProvider:
          type: string
          maxLength: 64
          description: The vendor or client sending the call event data.
        CallSessionId:
          type: string
          description: The unique session ID from the vendor to identify the call.
        CallerId:
          type: string
          maxLength: 64
          description: The phone number of the originating call.
        CalledPhoneNumber:
          type: string
          description: The destination phone number that received the call.
        CallDuration:
          type: integer
          description: Total duration (in seconds) of the call.
          example: 180
        TalkDuration:
          type: integer
          description: Actual talk duration (in seconds) of the call.
          example: 120
        AdId:
          type: integer
          description: The unique ID of the ad associated with the call.
          example: 656565
        CallStatus:
          type: string
          default: ANSWER
          enum:
          - UNKNOWN_CALLERID
          - CONGESTION
          - INCOMPLETE
          - CANCEL
          - IVR_DROPOFF
          - NO_TRANSFER_ATTEMPT
          - ANSWER
          - FAILURE
          description: This value indicates the final outcome of the call. If the
            field is not present in the request, the system makes it ANSWER by default.
          example: ANSWER
        CallerPhoneNumberCountry:
          type: string
          maxLength: 64
          default: US
          description: (64 character UTF-8) This is the Country Code derived from
            the incoming phone call. When NULL, default to US.
          example: US
        CalledPhoneNumberCountry:
          type: string
          maxLength: 64
          default: US
          description: (64 character UTF-8) This is the Country Code derived from
            the receiver of the incoming phone call. When NULL, default to US.
          example: US
        SubId1:
          type: string
          maxLength: 64
          description: (64 character UTF-8) The first value specific and only available
            to the Partner. This is the placeholder where the Partner can add data
            points that they want impact.com to report back to them.
        SubId2:
          type: string
          maxLength: 64
          description: (64 character UTF-8) The second value specific and only available
            to the Partner. This is the placeholder where the Partner can add data
            points that they want impact.com to report back to them.
        SubId3:
          type: string
          maxLength: 64
          description: (64 character UTF-8) The third value specific and only available
            to the Partner. This is the placeholder where the Partner can add data
            points that they want impact.com to report back to them.
        ClickId:
          type: string
          description: The ClickId from the landing page URL.
          example: QiiWXOVnrQ3SQHl24jQjyxBGUkmzfJ3i1VHrWM0
        City:
          type: string
          description: City of the CallerId - As identified by the Call Tracking vendor.
          example: Santa Barbara
        Region:
          type: string
          description: Region of the CallerId - As identified by the Call Tracking
            vendor.
          example: CA
        Zip:
          type: integer
          description: Zip of the CallerId - As identified by the Call Tracking vendor.
          example: 93101
        RepeatCaller:
          type: string
          description: Repeat vs. New call to indicate whether the caller was recorded
            as a repeat caller in the Call tracking vendor.
        PhoneType:
          type: string
          enum:
          - Landline
          - Mobile
          - ''
          description: Landline or Mobile or empty string if type is unknown and user_agent.
        CallRecording:
          type: string
          format: uri
          description: Unique URL of the call recording.
        IvrDuration:
          type: integer
          description: Duration in seconds that the call spent in the IVR tree.
          example: 30
        Keypresses:
          type: string
          description: List of unique keynames pressed.
        Key1:
          type: string
          description: Name of the first key that was pressed.
        Key2:
          type: string
          description: Name of the second key that was pressed.
        Key3:
          type: string
          description: Name of the third key that was pressed.
        Key4:
          type: string
          description: Name of the fourth key that was pressed.
        TrafficSource:
          type: string
          description: Source of the transaction (referring media source).
        OptInSms:
          type: string
          description: Whether the caller opted in to receive an SMS promotion.
        UserAgent:
          type: string
          description: The user agent of the conversion generator.
        DispositionName:
          type: string
          description: The Conversion Event Name.
        SaleAmount:
          type: number
          description: If there was a sale conversion, this will show the Sale Amount.
        ReferenceId:
          type: number
          description: Customer Disposition Code for reference.
        CustomConversionEvent1Name:
          type: string
          description: First custom name for reporting on Conversion events.
        CustomConversionEvent2Name:
          type: string
          description: Second custom name for reporting on Conversion events.
        CustomConversionEvent3Name:
          type: string
          description: Third custom name for reporting on Conversion events.
        CustomConversionEvent1Value:
          type: string
          description: First custom value for reporting on Conversion events.
        CustomConversionEvent2Value:
          type: string
          description: Second custom value for reporting on Conversion events.
        CustomConversionEvent3Value:
          type: string
          description: Third custom value for reporting on Conversion events.
        VendorEventId:
          type: string
          description: A unique Id sent from the vendor for the Call and Conversion
            Event.
        PromoNumberDescription:
          type: string
          description: Describes the Called Phone Number.
        CustomCallEvent1Name:
          type: string
          description: First custom name for reporting on Call events.
        CustomCallEvent2Name:
          type: string
          description: Second custom name for reporting on Call events.
        CustomCallEvent3Name:
          type: string
          description: Third custom name for reporting on Call events.
        CustomCallEvent1Value:
          type: string
          description: First custom value for reporting on Call events.
        CustomCallEvent2Value:
          type: string
          description: Second custom value for reporting on Call events.
        CustomCallEvent3Value:
          type: string
          description: Third custom value for reporting on Call events.
  parameters:
    CampaignId:
      name: CampaignId
      in: query
      required: true
      description: A unique identifier for your program (formerly known as campaign).
      schema:
        type: integer
    MediaId:
      name: MediaId
      in: query
      required: true
      description: The ID of the Partner or Media Source in impact.com.
      schema:
        type: integer
    EventDate:
      name: EventDate
      in: query
      required: true
      description: The ISO 8601 time when the call event took place.
      schema:
        type: string
        format: date-time
    ActionTrackerId:
      name: ActionTrackerId
      in: query
      required: true
      description: A unique identifier for the Event Type (Phone_Action_Tracker_ID).
      schema:
        type: integer
    CallProvider:
      name: CallProvider
      in: query
      required: true
      description: The vendor or client sending the call event data.
      schema:
        type: string
        maxLength: 64
    CallSessionId:
      name: CallSessionId
      in: query
      required: true
      description: The unique session ID from the vendor to identify the call.
      schema:
        type: string
    CallerId:
      name: CallerId
      in: query
      required: true
      description: The phone number of the originating call.
      schema:
        type: string
        maxLength: 64
    CalledPhoneNumber:
      name: CalledPhoneNumber
      in: query
      required: true
      description: The destination phone number that received the call.
      schema:
        type: string
    CallDuration:
      name: CallDuration
      in: query
      required: true
      description: Total duration (in seconds) of the call.
      schema:
        type: integer
    TalkDuration:
      name: TalkDuration
      in: query
      required: true
      description: Actual talk duration (in seconds) of the call.
      schema:
        type: integer
    AdId:
      name: AdId
      in: query
      description: The unique ID of the ad associated with the call.
      schema:
        type: integer
    CallStatus:
      name: CallStatus
      in: query
      description: The final outcome of the call. Defaults to ANSWER if not provided.
      schema:
        type: string
        default: ANSWER
        enum:
        - UNKNOWN_CALLERID
        - CONGESTION
        - INCOMPLETE
        - CANCEL
        - IVR_DROPOFF
        - NO_TRANSFER_ATTEMPT
        - ANSWER
        - FAILURE
    CallerPhoneNumberCountry:
      name: CallerPhoneNumberCountry
      in: query
      description: Country code derived from the incoming phone call. Defaults to US.
      schema:
        type: string
        maxLength: 64
    CalledPhoneNumberCountry:
      name: CalledPhoneNumberCountry
      in: query
      description: Country code derived from the receiver of the incoming phone call. Defaults to US.
      schema:
        type: string
        maxLength: 64
    SubId1:
      name: SubId1
      in: query
      description: First partner-specific value for data points to be reported back.
      schema:
        type: string
        maxLength: 64
    SubId2:
      name: SubId2
      in: query
      description: Second partner-specific value for data points to be reported back.
      schema:
        type: string
        maxLength: 64
    SubId3:
      name: SubId3
      in: query
      description: Third partner-specific value for data points to be reported back.
      schema:
        type: string
        maxLength: 64
    ClickId:
      name: ClickId
      in: query
      description: The ClickId from the landing page URL.
      schema:
        type: string
    City:
      name: City
      in: query
      description: City of the CallerId, as identified by the Call Tracking vendor.
      schema:
        type: string
    Region:
      name: Region
      in: query
      description: Region of the CallerId, as identified by the Call Tracking vendor.
      schema:
        type: string
    Zip:
      name: Zip
      in: query
      description: Zip code of the CallerId, as identified by the Call Tracking vendor.
      schema:
        type: integer
    RepeatCaller:
      name: RepeatCaller
      in: query
      description: Indicates whether the caller was recorded as a repeat caller by the Call Tracking vendor.
      schema:
        type: string
    PhoneType:
      name: PhoneType
      in: query
      description: Landline or Mobile, or empty string if the type is unknown.
      schema:
        type: string
        enum:
        - Landline
        - Mobile
        - ''
    CallRecording:
      name: CallRecording
      in: query
      description: Unique URL of the call recording.
      schema:
        type: string
        format: uri
    IvrDuration:
      name: IvrDuration
      in: query
      description: Duration in seconds that the call spent in the IVR tree.
      schema:
        type: integer
    Keypresses:
      name: Keypresses
      in: query
      description: List of unique keynames pressed.
      schema:
        type: string
    Key1:
      name: Key1
      in: query
      description: Name of the first key that was pressed.
      schema:
        type: string
    Key2:
      name: Key2
      in: query
      description: Name of the second key that was pressed.
      schema:
        type: string
    Key3:
      name: Key3
      in: query
      description: Name of the third key that was pressed.
      schema:
        type: string
    Key4:
      name: Key4
      in: query
      description: Name of the fourth key that was pressed.
      schema:
        type: string
    TrafficSource:
      name: TrafficSource
      in: query
      description: Source of the transaction (referring media source).
      schema:
        type: string
    OptInSms:
      name: OptInSms
      in: query
      description: Whether the caller opted in to receive an SMS promotion.
      schema:
        type: string
    UserAgent:
      name: UserAgent
      in: query
      description: The user agent of the conversion generator.
      schema:
        type: string
    DispositionName:
      name: DispositionName
      in: query
      description: The Conversion Event Name.
      schema:
        type: string
    SaleAmount:
      name: SaleAmount
      in: query
      description: If there was a sale conversion, the sale amount.
      schema:
        type: number
    ReferenceId:
      name: ReferenceId
      in: query
      description: Customer Disposition Code for reference.
      schema:
        type: number
    VendorEventId:
      name: VendorEventId
      in: query
      description: A unique ID sent from the vendor for the Call and Conversion Event.
      schema:
        type: string
    PromoNumberDescription:
      name: PromoNumberDescription
      in: query
      description: Describes the Called Phone Number.
      schema:
        type: string
    CustomConversionEvent1Name:
      name: CustomConversionEvent1Name
      in: query
      description: First custom name for reporting on Conversion events.
      schema:
        type: string
    CustomConversionEvent2Name:
      name: CustomConversionEvent2Name
      in: query
      description: Second custom name for reporting on Conversion events.
      schema:
        type: string
    CustomConversionEvent3Name:
      name: CustomConversionEvent3Name
      in: query
      description: Third custom name for reporting on Conversion events.
      schema:
        type: string
    CustomConversionEvent1Value:
      name: CustomConversionEvent1Value
      in: query
      description: First custom value for reporting on Conversion events.
      schema:
        type: string
    CustomConversionEvent2Value:
      name: CustomConversionEvent2Value
      in: query
      description: Second custom value for reporting on Conversion events.
      schema:
        type: string
    CustomConversionEvent3Value:
      name: CustomConversionEvent3Value
      in: query
      description: Third custom value for reporting on Conversion events.
      schema:
        type: string
    CustomCallEvent1Name:
      name: CustomCallEvent1Name
      in: query
      description: First custom name for reporting on Call events.
      schema:
        type: string
    CustomCallEvent2Name:
      name: CustomCallEvent2Name
      in: query
      description: Second custom name for reporting on Call events.
      schema:
        type: string
    CustomCallEvent3Name:
      name: CustomCallEvent3Name
      in: query
      description: Third custom name for reporting on Call events.
      schema:
        type: string
    CustomCallEvent1Value:
      name: CustomCallEvent1Value
      in: query
      description: First custom value for reporting on Call events.
      schema:
        type: string
    CustomCallEvent2Value:
      name: CustomCallEvent2Value
      in: query
      description: Second custom value for reporting on Call events.
      schema:
        type: string
    CustomCallEvent3Value:
      name: CustomCallEvent3Value
      in: query
      description: Third custom value for reporting on Call events.
      schema:
        type: string
  responses:
    SuccessResponse:
      description: The request was processed successfully.
      content:
        application/json:
          schema:
            type: object
            properties:
              Status:
                type: string
                example: OK
