PARTNER
Phone & Voice
AI voice calls + wallet-owned phone numbers, paid in USDC.
Outbound conversational AI calls via Bland.ai, and dedicated phone numbers via Twilio. Numbers auto-register with Bland on purchase so they can be used as outbound caller-ID. Carrier and fraud lookups round it out. Every endpoint pay-per-use.
Every call uses a phone number you own. Pay $5.00 once for a 30-day number (US default; CA + others on request), then place unlimited AI calls at $0.54 each with that number as your caller-ID. No number = no call.
Default country is US (always works). Other countries (CA, MX, BR, AR, CL, CO, and beyond) can be requested via the country parameter, but most require Twilio Regulatory Bundle (KYC) approval on our account first — request via care@blockrun.ai (usually 1–5 business days). SMS is not offered — A2P 10DLC adds 1–4 week onboarding friction. Inbound (receiving calls) isn't enabled yet; this is outbound-only for now.
What Agents Use It For
Anywhere your agent needs to reach a human in real time — verification callbacks, appointment reminders, voice surveys, automated outbound — without standing up telephony infrastructure or signing carrier contracts.
Endpoints & Pricing
All endpoints are 402-gated. Send a request without payment to receive payment requirements, then re-send with an x402 signature attached. Settlement happens after the upstream Twilio or Bland call succeeds — failed upstream calls are not charged.
| Method | Endpoint | Price | Purpose |
|---|---|---|---|
| POST | /v1/voice/call | $0.54 | Outbound AI conversation call (Bland.ai). Defaults to 5 min, max 30 min. |
| GET | /v1/voice/call/{call_id} | free | Poll call status, duration, transcript, and recording URL. |
| POST | /v1/phone/numbers/buy | $5.00 | Provision a dedicated number (US default; CA + others on request), wallet-bound for 30 days. |
| POST | /v1/phone/numbers/renew | $5.00 | Extend the lease on a provisioned number by 30 days. |
| POST | /v1/phone/numbers/list | $0.001 | List active numbers owned by your wallet. |
| POST | /v1/phone/numbers/release | free | Release a provisioned number back to the Twilio pool. |
| POST | /v1/phone/lookup | $0.01 | Carrier identification + line type (landline, mobile, VoIP). |
| POST | /v1/phone/lookup/fraud | $0.05 | Lookup + fraud signals (SIM swap, call forwarding). |
Quick Start — Your First AI Call
Total spend for the round trip: $5.54 USDC ($5.00 for a 30-day number + $0.54 per call). Polling for the transcript is free.
Buy a number ($5.00, once per 30 days)
The number is leased to your wallet for 30 days and auto-registered with Bland so it can be used as outbound caller-ID.
# Send unpaid; server returns 402 with payment requirements
curl -X POST https://blockrun.ai/api/v1/phone/numbers/buy \
-H "Content-Type: application/json" \
-d '{"country":"US","areaCode":"415"}'
# Sign EIP-3009 USDC transfer from your wallet,
# then replay with the signed X-Payment header.
# Response:
# {
# "phone_number": "+14155551234",
# "expires_at": "2026-06-15T00:00:00.000Z",
# "chain": "base",
# "message": "Number provisioned for 30 days..."
# }Place the AI call ($0.54 flat, max 30 min)
from is required and must be a number your wallet owns. task is plain English — describe what the AI should say and do.
curl -X POST https://blockrun.ai/api/v1/voice/call \
-H "Content-Type: application/json" \
-d '{
"to": "+12025551234",
"from": "+14155551234",
"task": "Hi, this is Maya from BlockRun. Confirm tomorrow at 3pm and ask the recipient to press 1 to confirm or 2 to reschedule. Keep it under 60 seconds.",
"voice": "maya",
"max_duration": 5
}'
# Response (after settlement):
# {
# "call_id": "0721a3f8-9ae6-...",
# "status": "success",
# "poll_url": "https://blockrun.ai/api/v1/voice/call/0721a3f8-...",
# "message": "Call initiated. Poll poll_url for status, transcript, and recording."
# }Poll for the transcript (free)
Status, duration, full transcript, recording URL, and whether a human or voicemail picked up. No payment needed.
curl https://blockrun.ai/api/v1/voice/call/0721a3f8-...
# Response (when completed):
# {
# "status": "completed",
# "call_length": 0.75, // minutes
# "answered_by": "human", // or "voicemail" / "no-answer"
# "from": "+14155551234",
# "to": "+12025551234",
# "concatenated_transcript": "...",
# "recording_url": "https://..."
# }Use From Your Tooling
Don't want to sign x402 payloads yourself? Pick a client that handles wallet signing automatically:
Install once, then ask Claude / Cursor: "use blockrun_phone to buy a US number and call +1…"
claude mcp add blockrun --transport http \
https://mcp.blockrun.ai/mcpTool: blockrun_phone · actions: numbers_buy, voice_call, voice_status, numbers_list, lookup, …
Wallet loaded from ~/.blockrun/.session. SDK handles 402 + signing for any raw endpoint.
pip install blockrun-llm
# or
npm install @blockrun/llmUse client.requestWithPaymentRaw("/v1/phone/numbers/buy", { country: "US" }) for any endpoint.
Common Pitfalls
Twilio + Bland delivered the call, but the recipient's carrier sent it straight to voicemail without ringing. Two usual causes: (a) “Silence Unknown Callers” is enabled on the recipient's iPhone — add the number to contacts as a workaround; (b) US carrier spam filtering on fresh Twilio numbers. For production, register the number with the Free Caller Registry (free, 1–3 days) so T-Mobile / AT&T / Verizon stop treating it as “Spam Likely”.
Means the number wasn't registered with Bland. Any number bought via numbers/buy is auto-registered — if you bought before that auto-step shipped, just numbers/release + numbers/buy again.
BlockRun is solvent — the backing Bland.ai account ran out. Resolves automatically once topped up. (Not your problem; report so we can refill.)
Bland auto-detects voicemail and ends the call to avoid leaving a recorded message. Expected behavior — the recipient simply didn't answer. If you want Bland to leave a voicemail message, that's a separate “voicemail message” feature you'd have to opt into in the task prompt.
Behind the Scenes
Powers number search, purchase, lease management, release, and carrier + fraud lookups. We absorb Twilio's per-month carrier fee in the $5 number price.
twilio.comPowers the actual voice AI — STT, LLM, TTS, interruption detection, voicemail handling. Your Twilio numbers are imported into Bland on purchase so they can be used as outbound caller-ID (BYOT).
bland.aiGet Started
All you need is a USDC-funded wallet on Base or Solana. Hit any endpoint, get a 402, attach payment, get the response.