Now in private preview

One API for every channel your customers reach you on.

AgentRelay is Grand Central for your customer messaging — one connection for email, phone, and SMS. Carrier-compliant, normalized, and unified behind a single API.

Currently in private preview. We onboard partners individually.

Channels supported SMS Voice Telegram Email
How it works

One integration.
Every channel your customers use.

AgentRelay is the integration layer between your application and the messaging channels your customers use. SMS, voice, Telegram, and email all flow through one API and one normalized event format — with carrier registration and compliance handled through each provider’s official channels.

📱

API-first provisioning

Buy a verified phone number or set up a Telegram bot through one API call. Provider accounts and configurations are managed for you, so your team focuses on the agent.

📥

One event format

Every inbound message — SMS, Telegram, voice, email — arrives at your endpoint in the same shape. Write one handler, reach every channel.

Webhook or long-poll

Production-grade webhooks with HMAC signatures and retries. Or skip the public URL and stream events directly to your laptop with long-poll.

🔒

Compliance, built in

AgentRelay registers brands and campaigns with The Campaign Registry for 10DLC SMS, validates sender identities through each provider’s official compliance channels, and follows CTIA Messaging Principles for every outbound message.

📥

Identity that follows

The same human texting your number and DM'ing your bot stitches into one contact. Conversations follow the person, not the channel.

🛠

SDK + REST, your choice

A 10-line Python demo gets you replying to live messages. Drop down to raw HTTP whenever you need to.

For developers

Ten lines from API key to live conversation.

Receive normalized events from any channel and reply through one unified send API. No SDK to learn deeply, no provider-specific quirks to memorize.

The example on the right echoes any incoming message back to the sender — whether they reached your agent over SMS, Telegram, or voice.

from agentrelay import AgentRelay

client = AgentRelay(api_key="ar_live_...")
last = None

while True:
    events = client.events.poll(after=last, timeout=30)
    for e in events:
        if e.content.type == "text":
            client.messages.send(
                resource_id=e.resource_id,
                thread_id=e.thread_id,
                content={
                    "type": "text",
                    "text": f"echo: {e.content.text}",
                },
            )
        last = e.event_id

Get early access

We're onboarding a small group of design partners. Drop your email and we'll reach out.

SMS notice: If you sign up, we may send a one-time SMS verification code and occasional account notifications to the phone number you provide. Message and data rates may apply. Reply STOP to opt out, HELP for help. Frequency varies. By submitting your email, you agree to our Terms of Service and Privacy Policy.