Surge

What is Surge

Surge is an SMS and voice API that handles carrier registration for you. If you've used Twilio, Sinch, or Vonage, you know the pain: weeks of waiting for carrier approval, XML-based voice configuration, and support tickets that go nowhere. Surge gives you a demo number to test with immediately, and production registration takes hours instead of weeks.

Why Surge?

  • 24-to-48-hour carrier registration with a guaranteed 72-hour response. Twilio and Sinch typically take two to four weeks.
  • JSON everywhere. REST API, voice call configuration, webhooks. No XML, no TwiML, no legacy protocols.
  • One-click voice agent integrations with ElevenLabs, Retell, and Vapi.
  • Embeddable UI components you drop into your app: inbox, conversation, dialpad, unread count.
  • SDKs for Python, TypeScript, Ruby, and Elixir with full API parity.
  • Responsive support when registrations get flagged or carriers block messages.

Who Surge is for

Developers adding messaging to a product. Appointment reminders, order notifications, 2FA, conversational SMS agents. Surge handles TCR paperwork and carrier registration so you don't build compliance infrastructure.

Vertical SaaS platforms. Create one Account per customer, register each brand separately, and keep compliance, billing, and message history isolated. See One Account per Customer for the full pattern.

What you can build

SMS and MMS messaging

Send one-to-one messages, schedule sends, or blast to large lists. Track ongoing threads with the Contacts and Conversations APIs.

Phone number verification

Deliver six-digit OTP codes for login flows and onboarding. Call POST /verifications to send a code and POST /verifications/{verification_id}/checks to verify it.

Voice calls

Make outbound calls with recording and voicemail. Integrate with AI voice agents from ElevenLabs, Retell, or Vapi for agent-driven workflows.

Embeddable UI

Add an inbox, conversation view, phone dialpad, or unread count badge to any web application. Your users send and receive messages without you building a messaging UI.

Try it now

Send a test message with a single API call. No registration or phone number purchase required:

from surge import Surge

surge = Surge()  # reads SURGE_API_KEY from environment

message = surge.messages.create(
    account_id="{account_id}",
    to="+18015551234",
    body="Hello from Surge!",
)

print(message.id)

The quickstart walks through this step by step, including how to get your API key and account ID.

Next steps