Callfire Calls API

The Calls API from Callfire — 6 operation(s) for calls.

GitHub OpenAPI

Operations 8

GET /calls Find calls get #
POST /calls Send calls post #
GET /calls/broadcasts Find call broadcasts get #
GET /v2/calls/broadcasts GET /v2/calls/broadcasts #
POST /v2/calls/broadcasts POST /v2/calls/broadcasts #
PUT /v2/calls/broadcasts/{broadcastid} PUT /v2/calls/broadcasts/{broadcastId} #
POST /v2/calls/broadcasts/{broadcastid}/{id} POST /v2/calls/broadcasts/{broadcastId}/archive #
GET /v2/calls/broadcasts/{id}/recipients GET /v2/calls/broadcasts/{id}/recipients #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/callfire:callfire-calls-api"
All apis
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.

Get an API 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 Specification

callfire-calls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Callfire Calls API
  version: '2026-10-06'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-06: 33 operation(s) read from 7 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Callfire has published no machine-readable contract that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 25
    documentation: 8
    pages-with-code: 6
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-06'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://developers.callfire.com/webhooks-guide.html
  - https://developers.callfire.com/docs.html
  - https://developers.callfire.com/contacts-guide.html
  - https://developers.callfire.com/security-guide.html
  - https://developers.callfire.com/legacy-migration.html
  - https://developers.callfire.com/usecase-sms-chat.html
  - https://developers.callfire.com/quick-start-guide.html
servers:
- url: https://api.callfire.com
tags:
- name: Calls
paths:
  /calls:
    get:
      operationId: get_calls
      tags:
      - Calls
      summary: Find calls get
      description: Search for all calls sent or received by the user.
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Limit fields received in response.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Maximum number of records to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset to the start of a given page.
      - name: id
        in: query
        required: false
        schema:
          type: array
        description: Lists the Call ids to search for.
      - name: campaignId
        in: query
        required: false
        schema:
          type: integer
        description: An id of a campaign.
      - name: batchId
        in: query
        required: false
        schema:
          type: integer
        description: An id of a contact batch.
      - name: fromNumber
        in: query
        required: false
        schema:
          type: string
        description: Phone number the call was from.
      - name: toNumber
        in: query
        required: false
        schema:
          type: string
        description: Phone number the call was sent to.
      - name: label
        in: query
        required: false
        schema:
          type: string
        description: A label for a specific call.
      - name: states
        in: query
        required: false
        schema:
          type: string
        description: Comma separated list of call states.
      - name: results
        in: query
        required: false
        schema:
          type: string
        description: Comma separated list of call results.
      - name: inbound
        in: query
        required: false
        schema:
          type: boolean
        description: Filters inbound calls.
      - name: intervalBegin
        in: query
        required: false
        schema:
          type: integer
        description: Start of the find time interval (ms).
      - name: intervalEnd
        in: query
        required: false
        schema:
          type: integer
        description: End of the find time interval (ms).
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCallsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_calls
      tags:
      - Calls
      summary: Send calls post
      description: Use the /calls API to send individual calls quickly.
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Limit fields received in response.
      - name: campaignId
        in: query
        required: false
        schema:
          type: integer
        description: Specifies a campaignId to send calls quickly on a previously created campaign
      - name: defaultLiveMessage
        in: query
        required: false
        schema:
          type: string
        description: Text to be turned into a sound, this text will be played when the phone is answered.
      - name: defaultMachineMessage
        in: query
        required: false
        schema:
          type: string
        description: Text to be turned into a sound, this text will be played when answering machine is detected.
      - name: defaultLiveMessageSoundId
        in: query
        required: false
        schema:
          type: integer
        description: Id of sound file to play if phone is answered.
      - name: defaultMachineMessageSoundId
        in: query
        required: false
        schema:
          type: integer
        description: An id of a sound file to play if answering machine is detected.
      - name: defaultVoice
        in: query
        required: false
        schema:
          type: string
        description: The voice set by default for all text-to-speech messages.
      - name: strictValidation
        in: query
        required: false
        schema:
          type: boolean
        description: Turns on strict validation for recipients.
      - name: body
        in: query
        required: true
        schema:
          type: array
        description: List of CallRecipient objects.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCallsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCallsResponse'
      x-evidence:
        kind: documentation
  /calls/broadcasts:
    get:
      operationId: get_calls_broadcasts
      tags:
      - Calls
      summary: Find call broadcasts get
      description: Search for all voice broadcasts created by user.
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Limit fields received in response.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Maximum number of records to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset to the start of a given page.
      - name: label
        in: query
        required: false
        schema:
          type: string
        description: A label of a voice broadcast.
      - name: name
        in: query
        required: false
        schema:
          type: string
        description: A name of voice broadcast.
      - name: running
        in: query
        required: false
        schema:
          type: boolean
        description: Specify whether the campaigns should be running.
      - name: scheduled
        in: query
        required: false
        schema:
          type: boolean
        description: Specify whether the campaigns should be scheduled.
      - name: intervalBegin
        in: query
        required: false
        schema:
          type: integer
        description: Start of the find time interval (ms).
      - name: intervalEnd
        in: query
        required: false
        schema:
          type: integer
        description: End of the find time interval (ms).
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCallsBroadcastsResponse'
      x-evidence:
        kind: documentation
  /v2/calls/broadcasts:
    get:
      operationId: get_v2_calls_broadcasts
      tags:
      - Calls
      summary: GET /v2/calls/broadcasts
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: name
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV2CallsBroadcastsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -u username:password -H \"Content-Type:application/json\" -X GET \" https://api.callfire.com/v2/calls/broadcasts?name=broadcast name&label=my label&running=true&offset=0&limit=10&fields=items(id,name,status,sounds)&scheduled=false&intervalBegin=1473781817000&intervalEnd=1473781817000\" \n Example Response \n {\n \"items\": [\n {\n \"id\": 14,\n \"name\": \"Example API VB\",\n \"status\": \"STOPPED\",\n \"lastModified"
    post:
      operationId: post_v2_calls_broadcasts
      tags:
      - Calls
      summary: POST /v2/calls/broadcasts
      x-source: https://developers.callfire.com/docs.html
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2CallsBroadcastsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -u username:password -H \"Content-Type:application/json\" -X POST -d '\n {\n \"name\":\"Example API Call Broadcast\",\n \"fromNumber\":\"12135551189\",\n \"recipients\":\n [\n {\n \"phoneNumber\":\"2134441133\"\n },\n {\n \"phoneNumber\":\"2135551144\"\n }\n ],\n \"answeringMachineConfig\":\"AM_AND_LIVE\",\n \"sounds\":\n {\n \"liveSoundText\":\"Hello! This is a live answer text to speech recording\",\n \"machineSoundText\":\"This is an answ"
  /v2/calls/broadcasts/{broadcastid}:
    put:
      operationId: put_v2_calls_broadcasts_broadcastid
      tags:
      - Calls
      summary: PUT /v2/calls/broadcasts/{broadcastId}
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: broadcastid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -u username:password -H \"Content-Type:application/json\" -X PUT -d '\n {\n \"name\":\"Call Broadcast with Schedules\",\n \"answeringMachineConfig\":\"LIVE_IMMEDIATE\",\n \"sounds\":\n {\n \"liveSoundText\":\"Hello! This is an updated Call Broadcast config tts\"\n },\n \"schedules\": [\n {\n \"startTimeOfDay\":\n {\n \"hour\": 10,\n \"minute\": 0,\n \"second\": 0\n },\n \"stopTimeOfDay\":\n {\n \"hour\": 18,\n \"minute\": 0,\n \"second\": 0\n },\n"
  /v2/calls/broadcasts/{broadcastid}/{id}:
    post:
      operationId: post_v2_calls_broadcasts_broadcastid_id
      tags:
      - Calls
      summary: POST /v2/calls/broadcasts/{broadcastId}/archive
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: broadcastid
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2CallsBroadcastsBroadcastidIdResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -u username:password -H \"Content-Type:application/json\" -X POST \" https://api.callfire.com/v2/calls/broadcasts/11646003/archive \" \n Example Response \n 200 OK - No Response \n Sample Code \n Sample Code \n import com.callfire.api.client.CallfireClient; \n class ApiClientSample {\n public static void main(String[] args) {\n CallfireClient callfireClient = new CallfireClient(\"api_login\", \"api_password"
        collapsed_from: 2 example path(s) differing only at id
  /v2/calls/broadcasts/{id}/recipients:
    get:
      operationId: get_v2_calls_broadcasts_id_recipients
      tags:
      - Calls
      summary: GET /v2/calls/broadcasts/{id}/recipients
      x-source: https://developers.callfire.com/docs.html
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV2CallsBroadcastsIdRecipientsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl' samples tab \n print(response) \n Add recipients to a call broadcast post \n Use this API to add the recipients to an existing voice broadcast. Post a list of Recipient objects to be added to the voice broadcast campaign. These contacts will not go through validation process, and will be acted upon as they are added. Recipients may be added as a list of contact ids, or list of numbers \n path \n "
components:
  schemas:
    PostV2CallsBroadcastsResponse:
      type: object
      properties:
        id:
          type: integer
    PostV2CallsBroadcastsBroadcastidIdResponse:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              fromNumber:
                type: string
              toNumber:
                type: string
              state:
                type: string
              campaignId:
                type: integer
              batchId:
                type: integer
              contact:
                type: object
                properties:
                  id:
                    type: integer
                  homePhone:
                    type: string
              inbound:
                type: boolean
              created:
                type: integer
              modified:
                type: integer
              agentCall:
                type: boolean
    GetV2CallsBroadcastsIdRecipientsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              fromNumber:
                type: string
              toNumber:
                type: string
              state:
                type: string
              campaignId:
                type: integer
              batchId:
                type: integer
              contact:
                type: object
                properties:
                  id:
                    type: integer
                  homePhone:
                    type: string
              inbound:
                type: boolean
              created:
                type: integer
              modified:
                type: integer
              agentCall:
                type: boolean
    PostCallsResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Call objects.
    GetCallsResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Call objects.
        limit:
          type: integer
        offset:
          type: integer
        totalCount:
          type: integer
    PostCallsRequest:
      type: object
      properties:
        attributes:
          type: object
          description: Map of user-defined string attributes associated with recipient.
        contactId:
          type: integer
          description: An id of existing contact used as recipient.
        dialplanXml:
          type: string
          description: An IVR xml document describing dialplan.
        fromNumber:
          type: string
          description: '~'
        liveMessage:
          type: string
          description: Text to be turned into a sound, this will be played when the phone is answered.
        liveMessageSoundId:
          type: integer
          description: An id of a sound file to play if phone is answered.
        machineMessage:
          type: string
          description: Text to be turned into a sound, this will be played when answering machine is detected.
        machineMessageSoundId:
          type: integer
          description: An id of a sound file to play if answering machine is detected.
        phoneNumber:
          type: string
          description: Recipient's phone number in E.164 format.
        transferDigit:
          type: string
          description: A digit pressed to initiate the transfer.
        transferMessage:
          type: string
          description: Text to be turned into a sound, this will be played when the transfer digit is pressed.
        transferMessageSoundId:
          type: integer
          description: An id of a sound file to play if call is transferred.
        transferNumber:
          type: string
          description: Phone number to transfer the call to.
        voice:
          type: string
          description: The voice to be used.
    GetV2CallsBroadcastsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              status:
                type: string
              lastModified:
                type: integer
              fromNumber:
                type: string
              localTimeRestriction:
                type: object
                properties:
                  enabled:
                    type: boolean
              retryConfig:
                type: object
                properties:
                  maxAttempts:
                    type: integer
                  minutesBetweenAttempts:
                    type: integer
                  retryPhoneTypes:
                    type: array
                    items:
                      type: string
              resumeNextDay:
                type: boolean
              answeringMachineConfig:
                type: string
              sounds:
                type: object
                properties:
                  liveSoundText:
                    type: string
                  liveSoundId:
                    type: integer
                  machineSoundText:
                    type: string
                  machineSoundId:
                    type: integer
        totalCount:
          type: integer
    GetCallsBroadcastsResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of CallBroadcast objects.
        totalCount:
          type: integer