canonical: https://jentic.com/apis/aircall.io/aircall

# Aircall Public API

Jentic publishes the only available OpenAPI specification for Aircall Public API, keeping it validated and agent-ready. Aircall is a cloud-based phone system for sales and support teams, exposing 68 endpoints for managing calls, users, contacts, numbers, teams, tags, webhooks, and SMS messaging. Both Basic Auth (API ID and token) and OAuth 2.0 bearer tokens are supported. The API is rate-limited to 60 requests per minute per company.

## For AI agents

Place outbound calls, send SMS, manage users, contacts, and tags, and subscribe to call events through the Aircall phone system.

## Scope

Does not handle email, video conferencing, or live chat - use for cloud telephony, SMS, and contact-centre call workflows only.

## Capabilities

- Place outbound calls and dial phone numbers from a specified user via /v1/users/{id}/calls and /dial
- Search, retag, and annotate calls with metadata, comments, and tags
- Pause and resume call recording mid-call for compliance handling
- Send and list SMS messages tied to a phone number
- Manage users, teams, and number assignments across V1 and V2 endpoints
- Register webhooks for call, SMS, and contact lifecycle events
- Maintain a contacts directory and pull conversation intelligence transcripts for call review

## Use cases

### CRM-Triggered Outbound Calling

Trigger Aircall outbound calls directly from a CRM workflow without forcing reps to switch apps. POST /v1/users/{id}/calls dials the contact's number from the chosen rep's phone, and POST /v1/calls/{id}/tags + /comments capture call disposition back into the CRM record.

Example prompt: Find the user with email rep@example.com, place an outbound call from them to +14155551234, then add the tag 'follow_up' to the resulting call

### Two-Way SMS Workflows

Send transactional and conversational SMS from Aircall numbers and capture replies via webhook. POST under the messaging endpoints sends a message tied to a number, and registered webhooks fire on inbound SMS so an agent or workflow can reply within the conversation thread.

Example prompt: Send an SMS from number num_555 to +14155551234 with body 'Your callback is scheduled for 3pm', and register a webhook on inbound SMS to forward replies to a Slack channel

### Call Quality and Compliance Monitoring

Pull call records, search by tag or user, and pause recording during PCI or sensitive segments. GET /v1/calls/search filters by user, number, and date range, POST /v1/calls/{id}/pause-recording suspends the recording, and /resume-recording restarts it for compliant playback.

Example prompt: Search calls for user_42 from yesterday, pull each call's transcript via Conversation Intelligence, and flag any call that contains the phrase 'cancel my account'

### AI Agent Phone Operator

An agent operating Aircall through Jentic can place follow-up calls, send SMS, and tag calls based on outcome - driven by CRM events. Jentic keeps the OAuth token or basic credentials in the vault and exposes only the operations the agent needs.

Example prompt: Search Jentic for 'place an outbound call', load the schema for POST /v1/users/{id}/calls, place a call from user_42 to +14155551234, then comment 'auto-dialed by agent' on the resulting call

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1/users/{id}/calls | Start an outbound call from a user |
| POST | /v1/users/{id}/dial | Dial a phone number |
| GET | /v1/calls | List calls |
| GET | /v1/calls/search | Search calls by user, number, or date |
| POST | /v1/calls/{id}/tags | Add tags to a call |
| POST | /v1/calls/{id}/comments | Add a comment to a call |
| POST | /v1/oauth/token | Exchange credentials for an OAuth access token |
| POST | /v1/calls/{id}/pause-recording | Pause call recording |

## Key resources

- **Calls** — Inbound and outbound call records with tags, comments, and metadata
- **Users** — User accounts in V1 and V2 with availability and number assignments
- **Teams** — Team groupings and team membership
- **Numbers** — Phone numbers owned by the account
- **Contacts** — Shared contacts directory with phone number indexing
- **Tags** — Tag definitions used to classify calls
- **Webhooks** — Event subscriptions for calls, SMS, and contact changes
- **Messages** — SMS messages sent and received via Aircall numbers
- **Conversation Intelligence** — Call transcription and analysis output

## Why Jentic

- **Setup:** Wiring Aircall by hand means supporting both basic credentials and OAuth bearer tokens, refreshing tokens on expiry, and writing your own retry logic across the call workflow. Through Jentic you install once, import Aircall from the API Directory, store the credentials once, and your agent calls it while Jentic applies the correct auth header per call.
- **Permission scoping:** Aircall puts the user and call ids in the URL path (/users/{id}/calls, /calls/{id}/tags), so a rule can pin your agent to one user or call. You choose the operations it may call, so pausing a recording is only included if you add it.
- **Credential handling:** Your Aircall basic credentials or OAuth token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'place an outbound call', and Jentic returns the matching Aircall operation with its input schema so the agent calls the right endpoint without navigating the full endpoint list.

## Related APIs

- **Twilio Voice API** — Programmable voice with global call routing and call recording
- **Plivo API** — Programmable voice and SMS with competitive per-minute pricing
- **HubSpot CRM Calls** — Log Aircall outcomes back to HubSpot for unified rep activity reporting

## FAQ

### Why is there no official OpenAPI spec for Aircall Public API?

Aircall does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Aircall Public API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Aircall Public API use?

Aircall supports two schemes: HTTP Basic Auth using an API ID and API token, or OAuth 2.0 bearer tokens obtained via POST /v1/oauth/token. Jentic stores either credential type encrypted in the vault and applies the correct header on each call.

### Can I place an outbound call with the Aircall API?

Yes. POST /v1/users/{id}/calls starts an outbound call from a specified user, and POST /v1/users/{id}/dial dials a number into a user's softphone for them to confirm.

### What are the rate limits for the Aircall Public API?

Aircall enforces 60 requests per minute per company. For higher-throughput use cases such as bulk call exports, paginate with a backoff loop rather than parallel requests.

### How do I send an SMS with the Aircall API through Jentic?

Run pip install jentic, search Jentic for 'send aircall sms', load the messaging endpoint schema, then execute with the from-number, to-number, and body. Jentic applies the OAuth bearer or basic auth credentials transparently.

### Can I subscribe to call events via webhook through the Aircall API?

Yes. The webhook endpoints under /v1/webhooks let you create subscriptions for call.created, call.ended, sms.received, and contact lifecycle events. The webhook payload includes the related resource ID for follow-up API calls.

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

Yes. Because you run Jentic One yourself, you decide which Aircall operations the agent may call and pick exactly the endpoints it needs, so a sensitive action like POST /v1/calls/{id}/pause-recording is available only if you include it. Aircall also puts the user and call ids in the URL path, as in POST /v1/users/{id}/calls and POST /v1/calls/{id}/tags, so your own rules can pin the agent to a single user or call. The agent never sees your basic credentials or OAuth token, since your instance injects the correct auth header at execution time.
