Call Clearance
Pre-call compliance for AI voice and SMS agents

Every outbound call cleared
before it's placed.

One API call, or one MCP tool, before your dialer places a call. It checks consent on file, the national and state Do Not Call lists, known litigators, calling hours and opt-outs, and returns allow or block in under 200 ms. Every decision is logged. If a lawyer asks, you have the record.

Request access See the integration For agencies running outbound on Retell, Vapi, Bland or ElevenLabs.
Retell Vapi Bland ElevenLabs Agents Twilio SMS Any MCP client
POST /v1/check
// request
{ "client_id": "cl_8f2a", "to": "+14105550123", "channel": "voice" }

// response, 200 OK, 41 ms
{
  "decision": "allow",
  "reason": null,
  "checked": [
    { "name": "optout", "result": "pass" },
    { "name": "litigator", "result": "pass" },
    { "name": "national_dnc", "result": "pass" },
    { "name": "state_dnc", "result": "pass" },
    { "name": "consent", "result": "pass",
      "detail": "#812 web_form 2026-09-02" },
    { "name": "hours", "result": "pass",
      "detail": "10:00 New_York" }
  ],
  "evidence_id": "ev_01J9K3ZQ7V"
}
Consent on file, no list hits, inside calling hours. Dial.

A voice agent dials faster than anyone checks the list.

TCPA damages are $500 to $1,500 per call, and most TCPA suits are class actions. Retell, Vapi and ElevenLabs say in their own documentation that consent and Do Not Call compliance are your problem. Call Clearance is the part of your stack that handles it.

Consent of record

Post each opt-in to one ledger with its source, timestamp and evidence: web forms, text replies, recorded verbal consent, written consent. The pre-call check reads this ledger first.

Do Not Call and litigators

The national registry under each client's own FTC account, the state lists, and a known-litigator list, refreshed on schedule. Each client is registered separately, which is what the FTC requires.

Evidence you can hand over

Every decision goes into a hash-chained log that shows any edit. Export a per-number report with the consent record and every check that ran on it, as JSON or PDF. Your records stay yours.

What runs before each dial

Six checks, in this order. Every result, pass, hit or skipped, is written to the log with the reason. The whole pass is one round trip and one log entry.

1Opt-outAnyone who said stop, across every client on your account.
2Litigator listNumbers tied to serial TCPA plaintiffs and demand letters.
3National DNCUnder the client's own FTC subscription. Reports skipped until that's linked.
4State DNCState registries, keyed off the number's area code.
5Consent on fileAn active consent record for this number, this client, this channel.
6Calling hoursLocal time for the number against the allowed window.
1

Add your clients

Each business you call for gets its own account. We handle the FTC registration and state-list setup for each one, so every scrub runs under the right account.

2

Record consent as it happens

Post opt-ins to the ledger from your forms, your SMS replies, your agent or your CRM.

3

Check before every call

Your dialer or the agent itself calls /v1/check with the number and client ID. It receives allow or block with a reason.

4

Propagate every opt-out

When a contact says stop, the opt-out is posted and the number is blocked for every client on your account from that moment.

The whole integration

Anything that can make an HTTP request can use the REST call. Agents that speak MCP get the same gate as a tool, with descriptions that tell the model to check before every dial.

Call it from your dialer, your workflow tool or your own code, right before you place the call. Block, error and timeout all mean do not dial.

curl -s https://api.callclearance.com/v1/check \
  -H "Authorization: Bearer cc_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "client_id": "cl_8f2a", "to": "+14105550123", "channel": "voice" }'

# → { "decision": "block", "reason": "national_dnc", "evidence_id": "ev_01J9…" }

Consent and opt-outs go to /v1/consent and /v1/optout. Evidence for any number is at /v1/evidence/{number}, as JSON or PDF. Full reference at api.callclearance.com/docs.

Add one entry to any MCP client and the agent gets five tools: check_number, record_consent, record_optout, get_evidence, list_clients. It can ask whether it may call, record what happened and fetch evidence. It cannot loosen the rules; consent policy stays on your account, set by a person.

{
  "mcpServers": {
    "callclearance": {
      "url": "https://mcp.callclearance.com/mcp",
      "headers": { "Authorization": "Bearer cc_live_…" }
    }
  }
}

Streamable HTTP, stateless, bearer auth only. Same key, same account, same one cent per check. Server manifest at mcp.callclearance.com/.well-known/mcp.json.

Vapi assistants can call a remote MCP server as a tool. Add the server URL and the Authorization header in the tool config, then tell the assistant in its prompt to call check_number before any outbound dial and to stop if it returns block or fails.

MCP tool
  server URL   https://mcp.callclearance.com/mcp
  header       Authorization: Bearer cc_live_…

Assistant prompt, add:
  Before placing any outbound call, call check_number with the client_id and the
  number. Only dial if decision is "allow". If it returns block, an error, or no
  answer, do not dial and say why.

For dialers that place the call before the assistant runs, use the REST call in your dialing code instead.

Retell agents can add tools from a remote MCP server. Add the server with the Authorization header, pick check_number, record_consent and record_optout, and put the same rule in the agent prompt. Retell doesn't retry a failed tool call, so the prompt rule is what keeps a failed check from turning into a dial.

MCP server
  URL          https://mcp.callclearance.com/mcp
  header       Authorization: Bearer cc_live_…
  tools        check_number, record_consent, record_optout

Agent prompt, add:
  Call check_number before every outbound dial. Dial only on "allow".
  Treat block, error or timeout as do not dial.

For campaign dialing where your own code places calls through Retell's API, call /v1/check from that code first.

What the evidence looks like

When someone asks "was this number OK to call," you send them one file. It has the consent record, every check that ran, the decision, and a chain hash that shows nothing was edited afterwards.

  • Per-number reportEvery check and decision for that number under that client, in order, with timestamps.
  • Consent recordChannel, source, when it was captured, and a hash of the evidence you attached.
  • Hash chainEach entry carries the hash of the one before it. Change any entry and the chain breaks.
  • JSON or PDFJSON for your systems, PDF for the person asking. Same content.
GET /v1/evidence/+14105550123?client_id=cl_8f2a   (.pdf for the file)
{
  "number": "+14105550123",
  "client": { "id": "cl_8f2a", "name": "Harbor Dental", "san_status": "active" },
  "chain": { "verified": true, "rows": 18422, "head": "9f3c…e21a" },
  "optout": null,
  "consents": [
    { "id": 812, "channel": "voice", "source": "web_form",
      "capturedAt": "2026-09-02T14:11:08Z", "evidenceHash": "c41d…77b0" }
  ],
  "events": [
    { "ts": "2026-09-11T14:42:03Z", "event": "check", "decision": "allow",
      "checks": ["…"], "prevHash": "4b77…0c9d", "rowHash": "9f3c…e21a" }
  ]
}

Pricing

A monthly fee plus a per-check rate. No seats, no annual contract, no per-client fees.

Agency

$99 / month
plus $0.01 per check
  • Unlimited clients
  • Consent ledger and evidence export
  • National, state and litigator lists
  • REST and MCP, same key
  • FTC registration handled for each client

Volume

Talk to us
for more than 500,000 checks a month
  • Lower per-check rate
  • Review of your consent flows
  • State telemarketing registrations
  • Custom retention and export
$1,099per month, every call checked

Questions people ask first

Short answers. Anything else, email.

Does this make me compliant?

No tool does. It runs the checks a reasonable outbound program is expected to run, before every call, and keeps proof that it did. What counts as consent for your campaigns is still a question for your counsel. We give you the record; they give you the advice.

Whose FTC account is the national list scrubbed under?

Each client's own. The FTC requires the seller to hold the subscription, so we set one up per client and run their scrubs under it. Until a client's subscription is linked, the national check reports skipped in the response and in the log, not allow. We don't hide it.

What happens if the check is slow or down?

Your code or your agent should treat an error or a timeout as do not dial, and the MCP tool descriptions say exactly that. A missed call is cheap. A call you can't defend isn't.

Can the agent change the rules?

No. The MCP tools let an agent ask, record and fetch. Consent policy, calling windows and list settings live on your account and are changed by a person, not by a prompt.

Who owns the records?

You do. Export any number, any client, or everything, at any time, as JSON or PDF. If you leave, you take the ledger with you.

How fast can I start?

Onboarding is by hand right now. Email with your platform and monthly call volume. You get a key the same week, and the check works on real numbers from the first call.

Request access

We're onboarding a small number of agencies by hand. Email us with the platform you run on and how many outbound calls you make a month.

[email protected]