canonical: https://jentic.com/apis/callfire.com/callfire

# CallFire API

CallFire is a voice and SMS communications platform that lets businesses run outbound dialer campaigns, send text broadcasts, manage phone number inventory, and process inbound responses. The V2 API exposes 123 operations across 90 paths grouped by calls, campaigns, contacts, keywords, media, numbers, orders, reports, texts, tickets, and webhooks. It supports broadcast lifecycle management (create, start, stop, archive), recipient batches, call recordings, text-to-speech sound generation, keyword opt-in handling, and account reporting. Authentication is HTTP Basic, which keeps integration simple for server-to-server callers.

## For AI agents

Run voice and SMS broadcasts, manage phone number inventory, retrieve call recordings, and handle inbound keywords through the CallFire V2 API.

## Scope

Does not handle email delivery, push notifications, or video conferencing - use for voice broadcasts, SMS campaigns, and CallFire phone number inventory only.

## Capabilities

- Run outbound voice broadcasts through /calls/broadcasts with start, stop, and archive lifecycle controls
- Send and track SMS broadcasts via the /texts and /texts/broadcasts endpoints
- Generate text-to-speech, file-based, and call-recorded sounds via /campaigns/sounds
- Buy, list, and manage phone number inventory via /numbers
- Retrieve call recordings as MP3 streams from /calls/{id}/recordings
- Reserve and manage SMS keywords for inbound opt-in flows
- Subscribe webhooks to receive inbound call and text events

## Use cases

### Outbound SMS Broadcast

Send a one-to-many SMS campaign by creating a text broadcast, attaching a recipient batch, and starting the broadcast. CallFire handles delivery, retries, and per-recipient status, and exposes broadcast stats through the broadcasts/{id}/stats endpoint so the agent can report send rate and reply rate back to the user.

Example prompt: POST a text broadcast with the message body, add a recipient batch, then POST to /texts/broadcasts/{id}/start and poll /texts/broadcasts/{id}/stats.

### Voice Broadcast Dialer

Run a recorded voice broadcast or text-to-speech announcement to a contact list using /calls/broadcasts. The lifecycle endpoints - start, stop, archive, toggleRecipientsStatus - give the agent fine-grained control over a campaign in flight, and stats and call detail records are available through the broadcasts/{id}/calls and broadcasts/{id}/stats endpoints.

Example prompt: POST a call broadcast referencing a TTS sound, add recipients, and POST to /calls/broadcasts/{id}/start.

### Inbound Keyword Capture

Reserve a short-code keyword via the /keywords endpoints so that inbound texts to a CallFire number trigger a workflow. Combined with webhook subscriptions on /webhooks, an agent can be notified the moment a user texts the keyword and respond with an SMS broadcast or a transactional reply.

Example prompt: Reserve a keyword via the /keywords endpoint and subscribe a webhook on /webhooks to be notified of inbound texts containing that keyword.

### Call Recording Retrieval

Pull MP3 recordings of completed calls for QA or compliance review by calling /calls/{id}/recordings to list recordings then fetching /calls/{id}/recordings/{name}.mp3 for the audio. Useful for contact centres that need to surface a specific recording in a CRM ticket without storing audio in their own systems.

Example prompt: GET /calls/{id}/recordings to list recordings then GET /calls/{id}/recordings/{name}.mp3 and attach the audio file to the CRM record.

### AI Agent Voice and SMS via Jentic

Through Jentic, an AI agent searches for an intent like 'send an SMS broadcast' and is returned the CallFire text broadcast operation along with its input schema. Because authentication is HTTP Basic, Jentic encrypts both the username and password fragments in the credential vault and assembles the Authorization header at execution time without exposing the raw values to the agent. Setup time is under an hour.

Example prompt: Use Jentic search for 'send an SMS broadcast', load the text broadcast schema, and execute it with the recipient list and message body.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /calls/broadcasts | Create a voice broadcast |
| POST | /calls/broadcasts/{id}/start | Start a voice broadcast |
| POST | /calls/broadcasts/{id}/stop | Stop a voice broadcast |
| GET | /calls/{id}/recordings | List recordings for a call |
| POST | /campaigns/sounds/tts | Generate a text-to-speech sound |
| GET | /numbers | List or search phone numbers |
| POST | /webhooks | Subscribe a webhook |

## Key resources

- **calls** — Place outbound calls, manage voice broadcasts, and access call recordings.
- **texts** — Send individual texts and SMS broadcasts.
- **campaigns** — Manage campaign sounds (TTS, files, call recordings) and batches.
- **contacts** — Manage contact lists used by broadcasts.
- **keywords** — Reserve and manage SMS keywords for inbound opt-in flows.
- **media** — Upload and serve media files used in campaigns.
- **numbers** — Buy, list, and manage CallFire phone numbers.
- **orders** — Place and track CallFire orders such as number purchases.
- **reports** — Account-level reporting and call detail records.
- **webhooks** — Subscribe to inbound call and text events.

## Why Jentic

- **Setup:** Wiring CallFire by hand means encoding its HTTP Basic credentials, then working through 123 operations to find the broadcast and number routes you actually need. Through Jentic you install once, import CallFire from the API Directory, store the username and password once, and your agent calls it.
- **Permission scoping:** CallFire puts the broadcast id in the URL path (/calls/broadcasts/{id}/start), so a rule can pin your agent to one broadcast: it can start and stop that broadcast and nothing else. You choose the operations it may call, so campaign creation and number purchases are not included unless you add them.
- **Credential handling:** Your CallFire username and password are stored once, encrypted, by your own Jentic One instance and combined into the Basic Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send an SMS broadcast' or 'retrieve a call recording', and Jentic returns the matching CallFire operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CallerAPI** — CallerAPI screens and enriches phone numbers; CallFire delivers the actual voice or SMS to those numbers.
- **Call Control API** — Call Control flags spam-reported numbers; useful for filtering destination lists before launching a CallFire campaign.
- **MiroTalk C2C API** — MiroTalk C2C handles peer-to-peer video meetings while CallFire handles voice and SMS - different channels, occasionally compared for outreach workflows.

## FAQ

### What authentication does the CallFire API use?

The CallFire V2 API uses HTTP Basic authentication. The agent presents an Authorization header containing the base64-encoded API username and password issued in the CallFire dashboard. Through Jentic, those credentials are stored encrypted in the vault and assembled into the Authorization header at execution time.

### Can I send a voice broadcast with the CallFire API?

Yes. POST a broadcast to /calls/broadcasts with the source sound (TTS, file, or call recording), add recipients via /calls/broadcasts/{id}/recipients, then POST to /calls/broadcasts/{id}/start to begin dialling. Stop it any time with /calls/broadcasts/{id}/stop.

### How do I retrieve a call recording from CallFire?

List recordings for a call with GET /calls/{id}/recordings, then fetch the audio at GET /calls/{id}/recordings/{name}.mp3. The MP3 stream can be attached directly to a CRM ticket or stored in your own object store for retention.

### What are the rate limits for the CallFire API?

The OpenAPI specification does not declare explicit per-endpoint rate limits. CallFire enforces account-level throughput tied to your plan and dialer concurrency - review your plan in the CallFire dashboard before scheduling large concurrent broadcasts.

### How do I send an SMS broadcast through Jentic?

Run a Jentic search for 'send an SMS broadcast', load the text broadcast schema, and execute it with the recipient list and message body. Then load and execute the start broadcast schema. Install the SDK with pip install jentic and use the async search, load, and execute pattern.

### Is the CallFire API free?

CallFire prices on a per-minute and per-text basis with monthly plans, plus per-phone-number rental fees. Pricing is set on callfire.com rather than declared in the spec - check the dashboard before launching a large campaign.

### Can I limit what my agent is allowed to do with the CallFire API?

Yes. Because you run Jentic One yourself, your own rules decide which CallFire operations and credentials your agent may use. Since CallFire puts the broadcast id in the URL path, such as /calls/broadcasts/{id}/start, you can pin the agent to a single broadcast so it can only start and stop that one and nothing else. You choose the operations it may call, so campaign creation and phone number purchases stay off limits unless you explicitly grant them.
