Delivered · SMS for developers

SMS for developers.Send, receive, and provision real numbers with one API.

The best way to reach people where they actually look. Programmable messaging, phone verification, and on-demand phone numbers, the same infrastructure behind a 400k-download consumer phone app.

Pricing

Pay for what you send. Nothing else.No platform fee, no commitments, no sales call.

$0.005

per SMS sent

Inbound $0.004

$0.025

per verification

Only when the code is verified

$0.95/mo

per phone number

10DLC registration included

Free

to start

100 texts + 10 verifications/mo, no card

Less than half of Twilio's all-in price for the same message, carrier fees included, not added on top.

Full pricing & calculator

Messages API

Integrate this afternoon.

A REST API that reads like documentation. Your first message is five lines of code, from whatever you already ship with: an SDK, the terminal, or your agent's MCP config.

import { Delivered } from 'deliveredsms';

const delivered = new Delivered('dsms_sk_test_YOUR_KEY');

const message = await delivered.messages.send({
  from: '+15005550100',
  to: '+15005550006',
  body: 'Hello from Delivered',
});

console.log(message.id); // msg_...

SEND & RECEIVE

Two-way SMS at scale.One endpoint to send, one webhook to receive.

POST a message, get an ID back in milliseconds. Inbound texts hit your webhook as clean JSON: no carrier portals, no long-code paperwork.

  • POST /v1/messages
  • GET /v1/messages/:id
  • POST /v1/test/inbound
Read the docs

Conversation

Your table is ready. Reply YES to confirm.
YES

message.received · 214ms · webhook 200 OK

NUMBERS

Real numbers, on demand.Search, buy, and release in one call.

Provision local numbers across 200+ US and Canada area codes. Search by area code or prefix, purchase instantly, release when you're done, on the same provisioning engine that issues every number on the platform.

  • GET /v1/numbers/available?area_code=415
  • POST /v1/numbers
  • DELETE /v1/numbers/:id
Read the docs

Available · 415

  • +1 (415) 555-0132San Francisco, CA
  • +1 (415) 555-0176San Francisco, CA
  • +1 (415) 555-0198Sausalito, CA

VERIFY

Phone verification in two calls.No number to buy. Billed only on success.

Send a code, check a code: Delivered generates it, delivers it from our own verified pool, enforces expiry and attempt limits, and blocks SMS pumping. Blocked, expired, and abandoned attempts cost you nothing. Half of what Twilio Verify charges.

  • POST /v1/verify
  • POST /v1/verify/check
Read the docs

Verification

Acme code: 482193. It expires in 10 minutes. Don't share it.
{
  "verified": true,
  "status": "approved",
  "charged": true
}

INBOX & TEAMS

A shared inbox, built in.Every number, every conversation, your whole team.

Inbound and outbound texts thread into conversations with unread counts, contact names, and reply templates. Invite teammates with a link, keep billing and keys admin-only with roles, and see exactly who sent what.

  • Conversations & unread state
  • Contacts, tags & CSV import
  • Invite links · admin & member roles
Read the docs

Inbox

  • Dana Whitfield

    Perfect, see you at 2pm.

    3now
  • +1 (415) 555-0176

    Is the unit still available?

    112m
  • Marcus Lee

    You: Your order shipped today.

    1h

sent by Maya · template: appointment-confirm

BROADCASTS & SCHEDULED

Message a list. Or send it later.Merge fields in, opt-outs skipped, counts out.

Pick a tag, write once with merge fields, and every contact gets an individual text. Anyone who replied STOP is skipped and counted, never messaged. Add scheduled_at to any send and cancel it up to the minute it goes out.

  • scheduled_at on POST /v1/messages
  • broadcast.complete
  • {{first_name}} merge fields
Read the docs

Broadcast · Appointment reminders

complete

240

recipients

236

sent

4

skipped opt-out

Hi {{first_name}}, your appointment is tomorrow at {{field:time}}.

COMPLIANCE

STOP means stop. Automatically.CTIA keywords handled on every number.

Reply STOP and Delivered confirms it, blocks every future send to that person, and emits message.opted_out so your app can mirror it. START opts back in, HELP answers with your support contact, and auto-replies respect office hours and never touch keywords or verification codes.

  • STOP / START / HELP
  • message.opted_out
  • Auto-reply with office hours
Read the docs

Opt-out

STOP
You have been unsubscribed and will receive no further messages. Reply START to resubscribe.

message.opted_out · future sends blocked

EVENTS

Webhooks you can trust.Signed, retried, and observable.

Delivery receipts and inbound messages arrive as signed webhook events with automatic retries. Replay any event from the dashboard when your endpoint has a bad day.

  • message.delivered
  • message.received
  • number.purchased
Read the docs
event · message.delivered
{
  "type": "message.delivered",
  "id": "evt_8f2k41",
  "data": {
    "message_id": "msg_j29dk1",
    "to": "+16285550107",
    "status": "delivered",
    "latency_ms": 212
  }
}

Battle-tested by a 400k-download consumer phone app

400,000+

downloads

200+

area codes live

Millions

of calls screened

99.9%

delivery uptime

Ship SMS without the carrier maze.Free sandbox. Instant API key.

Create a free account, get a sandbox key instantly, and send your first test message before your coffee cools.