Back to Blog
EngineeringFebruary 12, 2026Updated October 2, 20267 min read

AI Agent Call Recording: Compliance and Billing

Record AI agent calls for compliance and QA. Pro-only at $0.01/min, with signed recording URLs delivered by webhook and 12-month retention.

Why AI Agent Calls Need Recording

When a human makes a business call, there's a person who can recall what was said. When an AI agent makes a call, there's only the conversation data. Without a recording, you have no evidence of what the agent promised, confirmed, or agreed to.

Call recording isn't just a nice-to-have for AI agents. It is a compliance requirement in many industries and a critical debugging tool for any voice AI application. AgentCall's call recording is opt-in per call or per number, delivers the recording URL via webhook, and bills transparently at $0.01 per minute. This post is not legal advice. Check your own recording and consent obligations.

Industries That Require Call Recording

Insurance

Insurance regulations in many states require recorded documentation of customer interactions. When your AI agent handles claims intake, policy questions, or appointment scheduling, those calls need to be recorded and stored for regulatory audits.

Healthcare

HIPAA doesn't mandate call recording, but many healthcare organizations record calls for appointment confirmations, prescription reminders, and follow-up scheduling. AI agents handling these workflows need the same recording capability.

Legal

Law firms use call recording for client intake, consultation documentation, and billing verification. An AI agent scheduling consultations or conducting initial screenings needs recorded proof of the conversation.

Financial Services

FINRA, MiFID II, and Dodd-Frank require financial firms to record certain customer communications. AI agents handling account inquiries, trade confirmations, or customer support must produce recordings on demand.

Sales and Customer Support

Even without regulatory requirements, recording AI agent calls provides quality assurance, training data, and dispute resolution evidence. If a customer claims the agent made a commitment, you have the recording.

How Call Recording Works in AgentCall

Enable Recording on a Call

import AgentCall from 'agentcall';

const client = new AgentCall('ac_live_...');

// Provision a number (or use an existing one)
const number = await client.numbers.provision({ country: 'US', type: 'local' });

// Initiate a call with recording enabled
const call = await client.calls.initiate({
  from: number.number,
  to: '+14155551234',
  record: true,  // Enable recording (Pro plan required)
});

console.log(call.id);     // call_xyz789
console.log(call.record); // true

The record: true flag enables recording from the moment the call is answered. Recording is available on the Pro plan only. The same flag works on AI calls (client.calls.initiateAI) and on inbound AI numbers (record in the inbound configuration). On AI calls, AgentCall automatically prepends a recording disclosure to the spoken first message.

Receive the Recording via Webhook

// Subscribe once to the call.recording event:
await client.webhooks.create({
  url: 'https://my-app.com/call-events',
  events: ['call.recording', 'call.status'],
});

// A few seconds after the call ends, AgentCall delivers:
// POST https://my-app.com/call-events
// {
//   "event": "call.recording",
//   "data": {
//     "callId": "call_xyz789",
//     "from": "+15551234567",
//     "to": "+14155551234",
//     "recordingUrl": "https://...signed-url...",
//     "durationSecs": 187
//   }
// }
// Verify the X-AgentCall-Signature header before trusting the payload.

app.post('/call-events', async (req, res) => {
  const { event, data } = req.body;

  if (event === 'call.recording' && data.recordingUrl) {
    // Store the recording reference
    await db.callRecord.create({
      data: {
        callId: data.callId,
        duration: data.durationSecs,
        recordingUrl: data.recordingUrl,
        recordedAt: new Date(),
      },
    });

    // Download it to your own S3 bucket for long-term retention.
    // The signed URL in the webhook expires after 24 hours.
  }

  res.json({ received: true });
});

Access Recordings Later

// List calls, then mint a fresh signed URL for the ones with recordings
const calls = await client.calls.list();

for (const call of calls.data) {
  if (call.hasRecording) {
    const { url } = await client.calls.getRecordingUrl(call.id);
    console.log(`Call ${call.id}: ${url}`); // valid for about 1 hour
  }
}

Recording Storage and Retention

Recordings are stored in AgentCall's private storage and are reachable only through short-lived signed URLs. The default retention is 12 months, after which they are deleted automatically. A compliance-grade long-term archive is not offered yet, so if a regulation requires longer retention, download recordings to your own storage (S3, GCS, Azure Blob) as they arrive.

The recording URL delivered via webhook is a signed link to an MP3 file that expires after 24 hours (links minted through the API last about an hour). Standard HTTP download tools work:

// Download recording for long-term storage
const response = await fetch(recordingUrl);
const buffer = await response.arrayBuffer();

await s3.putObject({
  Bucket: 'my-call-recordings',
  Key: `recordings/${callId}.mp3`,
  Body: Buffer.from(buffer),
  ContentType: 'audio/mpeg',
});

Billing

Call recording is billed at $0.01 per minute, in addition to the call itself: $0.035 per minute for a standard outbound call, or the AI voice rate ($0.40 per minute managed, $0.10 BYOK, $0.59 Premium) for an AI call. A 10-minute recorded standard call costs:

  • Voice: 10 min × $0.035 = $0.35
  • Recording: 10 min × $0.01 = $0.10
  • Total: $0.45

Recording is a Pro plan feature ($19.99/month plus usage). Trial and Free accounts cannot enable recording. The API returns a 403 error with a clear upgrade prompt. New accounts receive a one-time 72-hour live trial with one US/Canada local number, 300 managed inbound AI seconds (five minutes) total, and five SMS send attempts to verified destinations. Card verification is required before number allocation; the clock starts when allocation succeeds. There is no monthly reset or automatic paid subscription. Live OTP extraction and outbound calls require Pro.

Audit Trail

Every call produces webhook events you can subscribe to and store as an audit trail:

  • call.inbound: an inbound call arrived, with caller and number
  • call.status: lifecycle changes and final duration
  • call.recording: the signed recording URL and duration
  • call.transcript: the full transcript of an AI call
  • call.report.ready: the structured post-call report, when memory is enabled

Store these alongside the recording and you have a machine-readable record of every call your agents make, with the transcript and audio side by side.

How This Compares to Twilio Recording

Twilio also offers call recording, and it's a mature feature. The key differences with AgentCall:

  • Linked to the call record: each AgentCall recording hangs off its call, so you fetch it with one request by call ID. Twilio recordings are separate resources you map back to calls.
  • Webhook delivery: AgentCall delivers the recording URL in the call completion webhook. With Twilio, you configure a separate recording status callback.
  • Pricing: AgentCall charges $0.01/min for recording, with storage included for the 12-month retention window. Twilio's pricing page lists $0.0025/min for recording plus $0.0005/min per month for storage, which is cheaper per minute at volume. AgentCall's is a single flat line item. (Twilio rates checked October 2, 2026.)
  • Consistent experience: AgentCall normalizes recording across all number types. Your recording setup is consistent regardless of which number you use.

FAQ

Is call recording available on the trial or Free plan?

No. Call recording is a Pro plan feature. Attempting to initiate a call with record: true without Pro returns a 403 error with a message prompting you to upgrade.

Do I need consent to record calls?

Yes. Recording laws vary by jurisdiction. Some states and countries require one-party consent (the caller or the agent), while others require all-party consent. It's your responsibility to ensure your AI agent discloses recording at the start of each call where required by law.

How long are recordings stored?

Recordings are stored in AgentCall's private storage and deleted automatically after 12 months. If you need a longer record, download recordings to your own storage when the call.recording webhook arrives.

Related Reading

Ready to get started?

Give your AI agents their own phone numbers in minutes.

Start Building