Your agent needs
a real identity.
Communications infrastructure built for AI agents - not humans. One API to provision a phone number, email inbox, and full compliance stack. One webhook to handle everything.
agent-setup.ts
const agent = await r3y.agents.create({
name: "support-bot",
webhook: "https://api.yourapp.com/events"
})
// agent.phone → "+1 (415) 555-0142"
// agent.email → "support@agents.r3y.dev"
// agent.compliance.score → 100
await agent.call("+14155550388")
await agent.sms("+14155550388", "Confirmed.")
You built a great agent.
Then spent two weeks on infrastructure.
Every team building a communications-capable agent hits the same wall - stitching together multiple APIs, writing glue code, and manually managing compliance that was never designed for agents in the first place.
Voice API
separate SDK - separate webhook
SMS API
different provider - different config
Email send API
outbound only - no inbox
Inbox provider
expensive per-account pricing
10DLC registration
manual - takes up to 10 business days
Glue code + routing logic
four webhook handlers - your problem
Voice - inbound + outbound
real-time transcription included
SMS - two-way messaging
same API, same webhook
Email - send and receive
full inbox per agent, threading included
10DLC + DKIM/SPF/DMARC
automated on agent creation
One unified webhook
every channel, one endpoint, one shape
Native MCP server
Claude Code, Cursor, Windsurf ready
Everything a communicating agent needs.
Nothing it doesn't.
Voice - inbound and outbound
Real-time transcription, conversation threading, and sub-200ms webhook delivery. Your agent handles calls - no carrier plumbing required on your end.
SMS - compliant by default
10DLC campaign registration automated. Opt-out handling built in. Carrier reputation managed for you. Send and receive without touching the compliance layer yourself.
Email - real inbox ownership
Each agent gets its own inbox - not a forwarding alias. Send, receive, thread, and search. DKIM, SPF, and DMARC configured and monitored automatically.
MCP - first-class agent tooling
A native MCP server ships with every account. Works in Claude Code, Cursor, Windsurf, and any MCP-compatible client. Agents provision numbers through tool calls - no human required.
Compliance - scored and automated
10DLC, DKIM/SPF, TCPA opt-outs, and carrier reputation - automated, scored, and surfaced on a live dashboard. Know your agents are clean before a carrier tells you they're not.
One webhook - all channels
Every event - call.completed, message.received, email.inbound - arrives at one endpoint in one consistent shape.
Designed for how agents actually work.
The agent is the primitive - not the phone number, not the inbox. One object owns everything. One webhook handles everything.
agent-setup.ts
app.post("/events", async (req) => {
const { event, agent_id, channel } = req.body
if (event === "call.completed") {
// transcript included - no extra API call
const { transcript, duration_s } = req.body
await handleCall(agent_id, transcript)
}
if (event === "message.received") {
// sms or email - same handler
const { from, body, thread_id } = req.body
await handleMessage(agent_id, body)
}
})
// python? same idea.
// pip install r3y
// npm install r3y
The agent is the primitive
Every resource - phone number, inbox, compliance state, reputation - belongs to an agent object. Not to a project, not to a team. The agent owns its identity.
One event shape for everything
Voice calls, SMS, and email arrive at one endpoint with consistent fields. Transcripts included inline. No extra API calls to fetch what you already need.
Compliance is not your problem
10DLC campaign registration, DKIM/SPF configuration, opt-out registry - all handled on agent creation. Your compliance score is visible. Your agents stay clean.
Your AI coding tools
can now make calls.
r3y ships as a first-class MCP server. Paste one config block, restart your editor, done. Your agent in Claude Code or Cursor can provision numbers, send messages, and read inboxes through tool calls - no human in the loop.
Claude Code
connected
Claude Code
connected
Windsurf
one click
Claude Desktop
one click
Cline
one click
Any MCP client
one click
- agents.create - provision a full identity
- calls.create - initiate outbound voice
- messages.send - compliant SMS, opt-out handled
- email.send - DKIM/SPF automatic
- inbox.list - semantic search on inbound mail
- numbers.provision - new numbers on demand
agent-setup.ts
"mcpServers": {
"r3y": {
"command": "npx",
"args": ["r3y-mcp"],
"env": {
"R3Y_API_KEY": "sk_live_..."
}
}
}
}
// that's the entire setup.
// restart your editor.
// your agent now has a phone.
Teams that ship agent products.
- acme labs
- helloagent
- stackmind
- voiceflow.ai
- cortex.so
- agent.new
"We were stitching together four different APIs. Switching to r3y cut our infra code by 70% and our compliance headaches to zero. Should have done it month one."
"The MCP integration is the thing I show people first. Our agent in Claude Code now provisions numbers and sends follow-up emails with no human involved. That's the whole product."
"10DLC registration used to take us a week every time we launched a new agent. r3y handles it on creation. I didn't realize how much time we were burning until it just stopped being a problem."
Start free.
Scale as your agents do.
No minimums, no surprises. Pay per agent, per minute, per message. Usage costs below any comparable stack - always.
Free
$ 0
/ month
One agent, usage-based costs. No credit card needed to start.
- 1 agent identity
- Voice + SMS + email
- MCP server access
- Unified webhook
- Compliance dashboard
- Automated 10DLC registration
- Priority support
Pro
$ 0
/ agent / month
For teams shipping production agents at scale.
- Up to 10 agents self-serve
- Voice + SMS + email
- MCP server access
- Unified webhook
- Automated 10DLC registration
- Reputation pool management
- Priority support + SLA
Enterprise
Custom
Volume pricing, SLAs, SOC 2, and white-glove onboarding for platform teams.
- Unlimited agents
- Custom invoicing and terms
- SOC 2 Type II (in progress)
- HIPAA evaluation
- Dedicated account manager
- Uptime SLA
- White-glove onboarding
Voice
$0.012 / min
SMS
$0.008 / segment
Email out
$0.28 / 1K
Email inbound
free
MCP calls
free
Number
$3 / mo
No hidden fees. No lock-in. Port your existing numbers for free.
Things developers
actually ask.
What carrier infrastructure is r3y built on?
We run on Telnyx, which owns its carrier network. That's why voice latency is under 100ms and SMS pricing is below most alternatives. We abstract the carrier layer - you get one API regardless of what's underneath.
What is 10DLC and why should I care?
10DLC is the US carrier registration system for A2P SMS. Without it, messages from unregistered numbers are blocked outright - carriers enforce this strictly. r3y handles brand registration, campaign setup, and TCR approval automatically when you create an agent.
How does the unified webhook work exactly?
Every event - call.completed, message.received, email.inbound - fires at one endpoint you configure per agent. The event shape is consistent across channels. Voice events include real-time transcripts inline - no separate fetch required.
Can I bring my existing phone numbers?
Yes. Number porting is free on any plan. Porting requires a signed LOA and typically takes 5-10 business days. Your existing setup continues working during the transition - just point the webhook at r3y.
Does r3y work with LangChain, CrewAI, or the OpenAI Agents SDK?
Yes. We publish integration packages for LangChain, CrewAI, Mastra, Vercel AI SDK, OpenAI Agents SDK, and Google ADK. The MCP server works with any MCP-compatible client including Claude Code, Cursor, Windsurf, and Cline.
What happens if my agent messages an opted-out number?
We block it automatically and log the attempt. Every agent maintains a per-number opt-out registry updated in real time. STOP and HELP replies are handled and your webhook is notified. You never manage this yourself.