# Surge SMS API for developers

Surge publishes a public search API over its indexed pages; the guide is at https://surge.app/agents/agent-access.

Source: https://surge.app/
Source observed: 2026-11-03T22:54:22.783Z
Last checked: 2026-11-03T22:54:22.783+00:00
Indexed: 2026-11-03T22:54:53.277+00:00

---

# The SMS API that actually cares about Developers

We provide an SMS API for developers who want to add business-to-person text messaging to an application. You can try our API in seconds, register with mobile carriers in hours rather than weeks, and use our dashboard, registration process, pricing, and developer tools.

- [Try it for free](https://hq.surge.app/users/register)
- [View documentation](https://docs.surge.app/)

## Why Surge?

We built the SMS API we wanted to use, with a focus on developer experience.

- **Fast Carrier Registration:** Get registered with mobile carriers in 72 hours or less; competitors can take weeks.
- **Developer-Friendly API:** Use an intuitive API designed to make integration straightforward.
- **Embeddable UI Components:** Add text messaging to an application with ready-to-use UI components.
- **Registration Templates:** Register multiple phone numbers with pre-built templates.
- **No-Code Message Blasts:** Send message blasts to customers without writing code.
- **Link Shortening:** Automatically shorten links to improve deliverability and track open rates.

## Carrier registration in 72 hours or less

We can get you approved in 24–48 hours and guarantee a response within 72 hours. Our process is designed for companies registering numbers for multiple customers. The comparison shown on the page labels the competitor process as waiting 3 hours followed by rejection after 14 days, while the Surge process shows registration in 1 hour, waiting 2 hours, and approval in 36 hours.

- [Get Started](https://hq.surge.app/users/register)

## Intuitive APIs

Our API is designed for business-to-person messaging, not only message delivery between phone numbers. SMS is the first channel; RCS, Whatsapp, and other channels are coming soon.

The examples below use demo values, including the sample account, API key, contact, message, phone number, and attachment URL.

### TypeScript

```ts
import Surge from '@surgeapi/node';

const client = new Surge({
  apiKey: 'My API Key',
});

const message = await client.messages.create('acct_01j9a43avnfqzbjfch6pygv1td', {
  body: "Thought you could leave without saying goodbye?",
  attachments: [{
    url: "https://toretto.family/coronas.gif"
  }],
  conversation: {
    contact: {
      first_name: "Dominic",
      last_name: "Toretto",
      phone_number: "+18015551234"
    }
  }
});
```

### Python

```python
from surge import Surge

client = Surge(
    api_key="My API Key",
)
message = client.messages.create(
    account_id="acct_01j9a43avnfqzbjfch6pygv1td",
    body="Thought you could leave without saying goodbye?",
    attachments=[{
        "url": "https://toretto.family/coronas.gif"
    }],
    conversation={
        "contact": {
            "first_name": "Dominic",
            "last_name": "Toretto",
            "phone_number": "+18015551234"
        }
    }
)
```

### Ruby

```ruby
require "surge_api"

surge = SurgeAPI::Client.new(api_key: "My API Key")

message = surge.messages.create(
  "acct_01j9a43avnfqzbjfch6pygv1td",
  body: "Thought you could leave without saying goodbye?",
  attachments: [{
    url: "https://toretto.family/coronas.gif"
  }],
  conversation: {
    contact: {
      first_name: "Dominic",
      last_name: "Toretto",
      phone_number: "+18015551234"
    }
  }
)
```

### Elixir

```elixir
client = Surge.Client.new(surge_api_key)

{:ok, message} =
  Surge.Messages.create(client, "acct_01j9a43avnfqzbjfch6pygv1td", %{
    body: "Thought you could leave without saying goodbye?",
    attachments: [
      %{
        url: "https://toretto.family/coronas.gif"
      }
    ],
    conversation: %{
      contact: %{
        first_name: "Dominic",
        last_name: "Toretto",
        phone_number: "+18015551234"
      }
    }
  })
```

### cURL

```bash
curl -X POST https://api.surge.app/accounts/acct_01jn0dw93aekpa64wvx8gc2h4f/messages \
  -H 'Authorization: Bearer sk_demo_yilfwvpqluoap34szy67hetxagkugrtcxryn7cmcko62cginotcwdgql' \
  -H 'Content-Type: application/json' \
  --data '{
  "attachments": [{
    "url": "https://toretto.family/coronas.gif"
  }],
  "body": "Thought you could leave without saying goodbye?",
  "conversation": {
    "contact": {
      "first_name": "Dominic",
      "last_name": "Toretto",
      "phone_number": "+18015551234"
    }
  }
}'
```

## Simple, predictable pricing

Our monthly plans scale from personal projects to messaging for thousands of customers. Usage credits are included as listed below.

| Plan | Price | Included features | Action |
|---|---:|---|---|
| **Hobby** | **$5 /month** | Up to 1 toll-free number; $5 credit toward usage; best effort support | [Subscribe](https://hq.surge.app/users/register?plan=hobby) |
| **Starter** — Most Popular | **$20 /month** | Up to 3 phone numbers; toll-free or local numbers; $20 credit toward usage; 72-hour support response time | [Subscribe](https://hq.surge.app/users/register?plan=starter) |
| **Growth** | **$100 /month** | Up to 15 phone numbers; toll-free or local numbers; $100 credit toward usage; 24-hour support response time | [Subscribe](https://hq.surge.app/users/register?plan=growth) |
| **Custom** | **$250+ /month** | Unlimited phone numbers; toll-free, local, and short codes; discounted unit pricing; 1-hour support time; SAML SSO; HIPAA compliance | [Contact us](mailto:sales@surge.app) |

## Get started

Add SMS to your application and send your first message in minutes.

- [Get Started](https://hq.surge.app/users/register)
- [Read the Docs](https://docs.surge.app/)

## Company and product links

- [Documentation](https://docs.surge.app/)
- [Changelog](https://surge.app/changelog/)
- [Pricing](https://surge.app/pricing/)
- [System Status](https://status.surge.app/)
- [About](https://surge.app/about/)
- [Careers](https://surge.app/careers/)
- [Contact](mailto:support@surge.app)
- [Privacy Policy](https://surge.app/privacy/)
- [Terms of Service](https://surge.app/terms/)
- [Acceptable Use Policy](https://surge.app/acceptable-use/)
- [Security](https://surge.app/security/)
- [X (Twitter)](https://x.com/surgeapi)
- [GitHub](https://github.com/surgeapi)
- [YouTube](https://www.youtube.com/@surgeapi)

Surge Communications Inc. © 2026. All rights reserved.

---

[Read this page’s summary](https://surge.app/agents/api/public/v1/page-tldr?url=https%3A%2F%2Fsurge.app%2F&trace=t_96494d7d69f3)

## Ask a follow-up about this page

Need a more specific answer? Ask the exact question you have. It returns a fresh, cited answer from Surge’s knowledge base. No account or API key required.

Open this URL with your own question, URL-encoded. Include your question in q. All research inputs are optional; no account or setup.

`GET https://surge.app/agents/agent/faq?q={question}&trace=t_96494d7d69f3`

[Tool guide and examples](https://surge.app/agents/agent-access) · [OpenAPI](https://surge.app/agents/api/public/v1/openapi.json) · [Page TLDR form](https://surge.app/agents/agent-tools/page-tldr?url=https%3A%2F%2Fsurge.app%2F). Opening a form does not execute a tool.