Developers

Build with SMSBlast.

A self-serve REST API to send SMS and MMS and sync opt-outs, plus inbound webhooks and native plugins.

Integrate

Four ways to connect.

REST API

Send SMS and MMS, test your key, and opt contacts out over HTTPS with your organization API key.

Webhooks

Push events into your CRM, Zapier, n8n, Make, or any HTTPS endpoint you control.

WordPress plugin

Native integration for WordPress sites.

Podio plugin

Native integration for Podio workspaces.

Access

Self-serve API access.

Create a free account, then get or rotate your API key in the app under Settings → Integrations (APIs). No contracts and no monthly fees for messaging.

Keep your key secret: anyone with it can send messages billed to your account. Rotating the key immediately invalidates the old one.

API docs

Send, opt out, and check your account.

Base URL: https://app.smsblast.io. Every request is authenticated with your organization API key in the Authorization header; requests without it get HTTP 401. Pick an endpoint and a language, then copy the example.

Send an SMS

Send a text (or an MMS with an image) from a verified number you own to one recipient or up to 100 at once. Recipients who have opted out are skipped automatically.

Endpoint

POST /api/v2/sms/send

Headers

  • Authorization: Bearer YOUR_API_KEY
  • Content-Type: application/json

Request body

  • to Phone number (string) or array of phone numbers (max 100), E.164 format.
  • from Required. Your verified phone number to send from (E.164 format, e.g. +18005551234).
  • message SMS message content (string). Supports {{firstName}} and other placeholders, filled in per recipient from their contact.
  • name (optional) Contact name. Only applied when sending to a single recipient; sets and overwrites that contact's first and last name.
  • mediaUrl (optional) Public https image URL to send as an MMS, attached to every recipient and billed at the MMS rate. Carriers accept jpg, png, gif, or webp up to 5MB.
Personalize with placeholders

Add {{firstName}}, {{lastName}}, {{email}}, {{address}}, {{city}}, {{state}}, or {{zip}} to your message and each recipient gets their own version, filled from their contact record. Your own custom fields work too, for example {{acreage}}. Empty fields render blank. This works the same way as campaigns and quick blast.

Opt-out text is added automatically

For compliance, every message sent through the API automatically includes "Reply STOP to unsubscribe" (it is skipped only when your text already has opt-out wording or is a one-time passcode). If you have a special use case where this should not be added, such as in-app notifications or transactional alerts, open a support ticket describing your use case and our team can review it for your account.

curl -X POST https://app.smsblast.io/api/v2/sms/send -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"to":"+15551234567","from":"+18005551234","message":"Hello from SMSBlast API!","name":"Jane Doe"}'

Response

{
  "success": true,
  "sent": 1,
  "failed": 0,
  "totalCost": "0.0150",
  "results": [
    {
      "to": "+15551234567",
      "status": "sent",
      "messageSid": "SM...",
      "segments": 1,
      "cost": 0.015
    }
  ]
}

errors is included only when some recipients could not be sent (for example opted out), each with a to and an error reason.

Error responses

  • 401 Missing or invalid API key.
  • 400 Missing "from" field, phone number not found or not verified, or invalid request body.
  • 402 Insufficient balance.

Full request and response schemas are in the OpenAPI specification.

Webhooks

Listening webhooks.

Listening webhooks are URLs SMSBlast calls when something happens on your account. Use them to push events into your CRM, Zapier, n8n, Make, or any HTTPS endpoint you control. Configure them under Settings → Integrations (APIs) → Webhooks.

Inbound message webhook

Fires when a contact texts one of your numbers. Opt-out keywords (STOP, UNSUBSCRIBE) are skipped. SMSBlast POSTs this payload to your URL; contact fields are null when not on file, and customFields is an empty object when you have none.

{
  "from": "+15551234567",
  "to": "+18005551234",
  "message": "Hi, can you tell me more?",
  "contact": {
    "firstName": "Jane",
    "lastName": "Doe",
    "phone": "+15551234567",
    "email": "jane@example.com",
    "address": "123 Main St",
    "city": "Austin",
    "state": "TX",
    "zip": "78701",
    "customFields": { "interestedIn": "kitchen remodel" }
  }
}
Errors

Structured JSON errors.

Errors return a non-2xx status with a JSON body: an error string that says what went wrong and, when useful, a details string that says how to fix it.

{ "error": "Missing API key", "details": "Provide \"Authorization: Bearer YOUR_API_KEY\" header." }
StatusMeaning
400Bad request: missing or invalid from, sender not verified or reply-only, invalid body or mediaUrl, or more than 100 recipients.
401Missing or invalid API key.
402Insufficient balance for the send.
404No contact matches the number (opt-out).
429Rate limited. Slow down and retry.
500Server error.
For agents

Machine-readable resources.

Send Accept: text/markdown to /, /pricing, /faq, /features, /developers, or /about to receive the markdown mirror directly; responses carry Vary: Accept. Unknown paths return a real HTTP 404; under /api/ and /docs/ on this site, ask for application/json or text/markdown to get a structured 404 body.

Compliance

Send responsibly.

SMSBlast is a sending platform only. Anything you send through the API must go to contacts who gave proper consent, and your outreach must comply with all applicable laws, including TCPA, CAN-SPAM, and A2P 10DLC requirements. Read the compliance guides.

Ready. Set. Send.

Create your free account and launch your first campaign. No contracts, no commitments.

Get started, it's free