FrontApp Calls API
The Calls API from FrontApp — 5 operation(s) for calls.
The Calls API from FrontApp — 5 operation(s) for calls.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/frontapp:frontapp-calls-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: Channel 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:
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.
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.
AddCallSummary:
type: object
required:
- content
properties:
content:
type: string
minLength: 1
description: Summary text for 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.
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).
AddCallTranscript:
type: object
required:
- lines
properties:
lines:
type: array
minItems: 1
items:
$ref: '#/components/schemas/TranscriptLine'
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.
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.
securitySchemes:
http:
type: http
scheme: bearer
bearerFormat: JWT
x-api-id: front
x-explorer-enabled: false
x-proxy-enabled: true
x-samples-enabled: true
x-provenance:
method: searched
source: https://dev.frontapp.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://dev.frontapp.com/reference/add-call-recording.md
- https://dev.frontapp.com/reference/add-call-summary.md
- https://dev.frontapp.com/reference/add-call-transcript.md
- https://dev.frontapp.com/reference/create-call.md
- https://dev.frontapp.com/reference/delete-application-message-template.md
- https://dev.frontapp.com/reference/sync-application-message-template.md
- https://dev.frontapp.com/reference/sync-inbound-message.md
- https://dev.frontapp.com/reference/sync-outbound-message.md
- https://dev.frontapp.com/reference/update-application-message-template.md
- https://dev.frontapp.com/reference/update-call.md
- https://dev.frontapp.com/reference/update-channel-1.md
- https://dev.frontapp.com/reference/update-external-message-status.md
merge:
pages: 12
deduped: 15
conflicts_kept_first: 0