For teams taking a voice agent live
Check every number before your AI agent calls it.
Astragal is an API that checks your dial list one number at a time. Each number comes back clear, hold or refuse, with the reason attached. A fine-tuned classifier judges the consent wording, and can hold a number but never clear it.
A free tier every month · no card required

Your pilot called six test phones. The real list is thousands of people, and nobody has checked whether you may call them.
Send up to 50,000 numbers at once. Every answer names the rule, the consent on file and when it expires.
$0.011
per number checked
25,000
free checks every month, no card
60 rps
per live key
How it works
Five checks, always in the same order.
First we work out where the number is, because the rules depend on it. Then five checks run, and the first failure stops the number.

Do-not-call check
The registry scrub you ran, with its date.
Too old, and we treat it as missing.
Get a sandbox keyConsent
Proof this person agreed to an AI voice call.
A saved disclosure in the US, a Digital Consent Acquisition reference in India.
Get a sandbox keyCall attempts
How often you already tried this number.
Counted from the call reports you send us.
Get a sandbox keyThe FCC said in February 2024 that AI voices need prior express consent under the TCPA. India's TCCCPR requires OTP-verified digital consent.
What you get back
One answer per number, with the proof attached.
A clear, with the consent wording it relies on saved beside it, word for word.
- answer
- Clear to call
- why
- Consent covers AI voice calls, under the US rules of March 2026
- where
- Texas, from the +1 512 area code
- consent
- Web form, 14 May 2026. The wording is saved word for word.
- do-not-call check
- National registry, 19 Aug 2026, 14 days old
- calling hours
- 09:00 to 20:00, local time at the number
- valid until
- 3 Sep 2026, 14:12 UTC
- record
- Locked after issue. Nobody can edit it.
A sample decision, not a customer's. Every value is a field the API returns.
Consent reading
A model can hold a number. Only a rule can clear it.
Rules settle a Digital Consent Acquisition reference; the free text from four systems goes to a fine-tuned classifier.

The wording
The classifier reads each consent text with its capture channel and source field
Get a sandbox keyYour compliance reviewer
Confirms each verdict against the stored wording; below the threshold, every number resting on that record holds
Get a sandbox keyUsed alongside
Plugs in on both sides of the call.
The check runs before the call starts, from the tools you already use.

- Twilioyour dialer asks for the OK, then reports the call back
- LiveKit, Pipecatthe number is checked before the agent session opens
- Webex Contact Centerthe same check on the campaign side
- Salesforce, HubSpot, Zohoconsent records from the fields you already use
- Okta, Microsoft Entra ID (Azure AD)reviewer sign-in, unlimited seats
- Slack, Microsoft Teamsan alert when someone opts out
The limits
The limits, in plain sight.
No "contact us" for capacity.
- 0160 rpsper live key, and 10 per sandbox key
- 0250,000numbers per batch, all answered within four minutes
- 0324 hourshow long a clear lasts before you check again
- 0460 secfrom an opt-out to every open clear canceled
- 052 countriesUS and India. All data stays in the US.
- 064 call typescollections, servicing, onboarding and verification. No promotional calls.
Trust & safety
Astragal checks the number and steps aside.
- in scope01Every answer is a permanent record you can export as JSON or CSV.
- in scope02An opt-out cancels every open clear on that number within 60 seconds.
- in scope03Any rule change comes with 30 days' notice.
- we don't01We don't make calls. No dialer, no agent, no audio.
- we don't02We don't sell consent. No bought lists. A number with no proof stays on hold until you provide it.
- we don't03We're not your lawyer. A clear means your evidence met the published rules.
Why it works this way
Sandbox or live? The key decides.
Test keys start with ak_sbx_, live keys with ak_live_. Same URLs for both. There is no environment setting to get wrong.
Your pilot used a flag in the URL to say test or live. Get it wrong, and the only trace is a line in a log.
A test key that touches live data gets a 403 and the reason. Every answer records which key made it.
Going live takes a new key and a deploy, where a flag took one line.
No NDA
Share your results with anyone.
Our prices, limits and rules are public, and your results are yours to publish.
Some vendors make you sign away the right to say how the pilot went. Gnani.ai's EULA does, in clause 4.2(g), and its fees are non-refundable.
We don't. Show your clear rate, refusal reasons, speed and bill to your board, your auditor or a competitor.
It costs us. Rivals can read our rules, and an unhappy customer can publish our worst month.
Pricing
$0.011per number checked
Your first 25,000 checks each month are free. Volume discounts start at 500,000 a month. Sandbox checks are free forever.
- Every answer with its rule and proof, exportable as JSON and CSV
- Consent storage at any size, including importing your history
- Unlimited reviewer seats for your compliance team, auditor and lawyers
You pay per check, whatever the answer. A hold costs the same as a clear, so we have no reason to say yes.
A clear lasts 24 hours, so a list you dial daily is checked daily. 100,000 numbers over 22 working days is 2.2 million checks: $18,425 a month.
For scale: Twilio charges $0.014 a minute, so a two-minute call costs about $0.028 to place. Checking it first costs $0.011.
- Sandbox keys are free forever, including ones you give your auditor
- No contract and no minimum. You cancel by deleting your keys.
- Your rate is locked for 24 months from your first live key
From six test phones to the real dial list.
Name, company and work email. The reply carries your live account setup and its cost at your call volume.
We reply within one business day.
- ✓ Every price and limit is already on this page
- ✓ A sandbox key takes four minutes