Front Calls API

The Calls API from Front — 5 operation(s) for calls.

Documentation

Specifications

OpenAPI Specification

front-calls-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Channel Accounts Calls API
  contact:
    name: Front Platform
    url: https://community.front.com
servers:
- url: https://api2.frontapp.com
security:
- http: []
tags:
- name: Calls
paths:
  /channels/{channel_id}/calls:
    post:
      summary: Create a call
      operationId: create-call
      description: Creates a call in Front.
      tags:
      - Calls
      parameters:
      - in: path
        name: channel_id
        required: true
        description: The Channel ID.
        schema:
          type: string
          default: cha_123
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCall'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
      x-required-scopes:
      - channels:write
  /channels/{channel_id}/calls/{external_call_id}:
    patch:
      summary: Update call status
      operationId: update-call
      description: Updates the call status of a call in Front.
      tags:
      - Calls
      parameters:
      - in: path
        name: channel_id
        required: true
        description: The Channel ID.
        schema:
          type: string
          default: cha_123
      - in: path
        name: external_call_id
        required: true
        description: The external call ID from the provider system (same as `external_call_id` on create).
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCall'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
      x-required-scopes:
      - channels:write
  /channels/{channel_id}/calls/{external_call_id}/recording:
    post:
      summary: Add call recording
      operationId: add-call-recording
      description: 'Adds a recording to a call in Front. Send `multipart/form-data` with exactly one file in the `attachments` field, `Content-Type: audio/*`, and required `recording_type` (`call` or `voicemail`).

        '
      tags:
      - Calls
      parameters:
      - in: path
        name: channel_id
        required: true
        description: The Channel ID.
        schema:
          type: string
          default: cha_123
      - in: path
        name: external_call_id
        required: true
        description: The external call ID from the provider system.
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - attachments
              - recording_type
              properties:
                attachments:
                  type: string
                  format: binary
                  description: Exactly one audio file (`audio/*`).
                recording_type:
                  type: string
                  enum:
                  - call
                  - voicemail
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
      x-required-scopes:
      - channels:write
  /channels/{channel_id}/calls/{external_call_id}/summary:
    post:
      summary: Add call summary
      operationId: add-call-summary
      description: Adds a summary to a call in Front.
      tags:
      - Calls
      parameters:
      - in: path
        name: channel_id
        required: true
        description: The Channel ID.
        schema:
          type: string
          default: cha_123
      - in: path
        name: external_call_id
        required: true
        description: The external call ID from the provider system.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCallSummary'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
      x-required-scopes:
      - channels:write
  /channels/{channel_id}/calls/{external_call_id}/transcript:
    post:
      summary: Add call transcript
      operationId: add-call-transcript
      description: Adds a transcript to a call in Front.
      tags:
      - Calls
      parameters:
      - in: path
        name: channel_id
        required: true
        description: The Channel ID.
        schema:
          type: string
          default: cha_123
      - in: path
        name: external_call_id
        required: true
        description: The external call ID from the provider system.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCallTranscript'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
      x-required-scopes:
      - channels:write
components:
  schemas:
    AddCallSummary:
      type: object
      required:
      - content
      properties:
        content:
          type: string
          minLength: 1
          description: Summary text for the call.
    UpdateCall:
      type: object
      required:
      - call_status
      properties:
        occurred_at:
          type: number
          description: Optional Unix timestamp (ms) when this status change occurred.
        call_status:
          type: string
          enum:
          - queued
          - ringing
          - connected
          - hold
          - hangup
          - abandoned
          - missed
          - transferred
        agent_email_address:
          type: string
          description: Optional; include when the status update relates to a specific teammate.
    AddCallTranscript:
      type: object
      required:
      - lines
      properties:
        lines:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TranscriptLine'
    CreateCall:
      discriminator:
        propertyName: direction
        mapping:
          inbound: '#/components/schemas/CreateCallInbound'
          outbound: '#/components/schemas/CreateCallOutbound'
      oneOf:
      - $ref: '#/components/schemas/CreateCallInbound'
      - $ref: '#/components/schemas/CreateCallOutbound'
      properties:
        direction:
          type: string
          enum:
          - inbound
          - outbound
          description: Use `inbound` with required `from` (external party); use `outbound` with required `to` (callee).
    CallParty:
      type: object
      required:
      - handle
      properties:
        handle:
          type: string
          description: Party identifier compatible with the application channel contact type.
        name:
          type: string
          description: Optional display name for the party.
    CreateCallInbound:
      type: object
      required:
      - external_call_id
      - initial_status
      - direction
      - from
      - parent_external_call_id
      properties:
        external_call_id:
          type: string
          description: Stable identifier for this call in the provider system.
        initial_status:
          type: string
          enum:
          - queued
          - ringing
        direction:
          type: string
          enum:
          - inbound
          description: Inbound calls must include `from` (external party who initiated). The channel is treated as the receiving side (e.g. agent or queue).
        from:
          $ref: '#/components/schemas/CallParty'
          description: External party who initiated the inbound call.
        started_at:
          type: number
          description: Optional Unix timestamp (ms) when the call started.
        parent_external_call_id:
          type: string
          description: External ID of the parent call (e.g. where the call was transferred from). This will be used to thread the call into an existing conversation with a matching parent call ID.
        agent_email_address:
          type: string
          description: Optional email of the teammate associated with the call.
    TranscriptLine:
      type: object
      required:
      - speaker_name
      - content
      - start_time_seconds
      - speaker_type
      properties:
        speaker_name:
          type: string
        content:
          type: string
        start_time_seconds:
          type: number
        speaker_type:
          type: string
          enum:
          - internal
          - external
          description: internal for agent or system-side speech; external for the other party.
    CreateCallOutbound:
      type: object
      required:
      - external_call_id
      - initial_status
      - direction
      - to
      - parent_external_call_id
      properties:
        external_call_id:
          type: string
          description: Stable identifier for this call in the provider system.
        initial_status:
          type: string
          enum:
          - queued
          - ringing
        direction:
          type: string
          enum:
          - outbound
          description: Outbound calls must include `to` (callee). The channel is treated as the originating side (e.g. agent).
        to:
          $ref: '#/components/schemas/CallParty'
          description: Party being called (callee).
        started_at:
          type: number
          description: Optional Unix timestamp (ms) when the call started.
        parent_external_call_id:
          type: string
          description: External ID of the parent call (e.g. where the call was transferred from). This will be used to thread the call into an existing conversation with a matching parent call ID.
        agent_email_address:
          type: string
          description: Optional email of the teammate associated with the call.
  securitySchemes:
    http:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-api-id: front
x-explorer-enabled: false
x-proxy-enabled: true
x-samples-enabled: true