FWD SMS API
Open dashboard →

DEVELOPER DOCUMENTATION

SMS infrastructure
for your workflows.

Send transactional messages through a Twilio-compatible API, route inbound commands by application, and receive signed delivery events.

Send SMS

Use an application API key to send from the shared FWD number.

Inbound routing

Register sender numbers to an application before accepting inbound commands.

Signed webhooks

Receive message events with an HMAC signature on every request.

Applications

Separate menu management, AI agents, OTP, and order workflows.

Authentication

Use an application API key as a Bearer token in Authorization. API keys are created from the FWD SMS dashboard and shown only once.

curl -H "Authorization: Bearer fwd_sms_..." \
  -H "Content-Type: application/json" \
  -X POST https://sms.fwd.dev/v1/messages \
  -d '{"to":"+13055550123","body":"Hello from FWD SMS"}'

Send A Message

POST/v1/messages

JSON fields: to and body. Phone numbers must use E.164 format. The sender is fixed to the FWD SMS shared number and cannot be overridden.

Twilio-compatible clients may use:

POST/2010-04-01/Accounts/:accountSid/Messages.json

AC_account_sid is only a legacy compatibility path placeholder, not an FWD SMS account credential.

curl -u "AC_account_sid:fwd_sms_..." \
  -X POST https://sms.fwd.dev/2010-04-01/Accounts/AC_account_sid/Messages.json \
  -d To=+13055550123 \
  -d Body="Your order is confirmed"

Webhooks

Applications can configure one or more HTTPS webhook URLs. Requests are signed using the signing secret shown when the webhook is created.

Events include message.received, message.sent, message.delivered, and message.failed.

Reference

For the machine-readable plain-text reference, see /docs/api.txt. For an AI-readable index, see /llms.txt.

Never put an API key in frontend JavaScript, public repositories, prompts, screenshots, or documentation.