SMS FUSION API

An SMS API your AI agent can drive

One URL, api.smsfusion.com.au/llms.txt, gives Claude, ChatGPT or Gemini every endpoint, parameter, response shape and known limitation, written for a model to read. Point your agent at it and it can send, receive and manage SMS on your account.

Get llms.txt API reference

HTTPS, authenticated with your account's API key. Included with every account.

booking-agent

Text Sam a reminder about tomorrow's 9:15 appointment

GET /sms/?num=61412345678&from=BOOKINGS&msg=Hi+Sam,+a+reminder:+9:15am+tomorrow.+Reply+YES+to+confirm

{"id":48291207,"success":1,"cost":0.049,"count":1,"segments":1}

Hi Sam, a reminder: 9:15am tomorrow. Reply YES to confirm

Delivered

Readable by the models your team already uses

Any model that can fetch a URL and make an HTTP request can operate this API.

Three ways in

Every path uses the same account and the same API key.

Building with an AI agent or LLM coding tool?

llms.txt is a machine-readable reference covering every endpoint, parameter, response shape and known limitation, written for an LLM to load directly into context.

Read llms.txt

Writing your own integration?

The full Swagger/OpenAPI reference documents every request and response so you can wire the API into your own codebase by hand.

API reference

Looking for no-code automation?

SMS Fusion has a published Zapier app: send SMS, trigger on inbound replies and delivery reports, and connect to thousands of other apps without writing code.

Explore the Zapier integration

Start your agent with one message

Paste this into Claude, ChatGPT, Gemini or your coding agent, and swap in the job you need done:

Read https://api.smsfusion.com.au/llms.txt, then wire SMS Fusion into this project: send our appointment reminders by SMS and log inbound replies. My API key is in the SMSFUSION_API_KEY environment variable - authenticate with HTTP Basic, key as the username.

Authentication

Every endpoint takes your API key as a key query-string parameter, and all except /hlr/ also accept it as the username in HTTP Basic Auth (the password is ignored). Keys are managed from your account settings; a newly created key's IP allow-list starts with the address you created it from, and can be edited or emptied there (an empty list allows any IP).

Example request

Validate and format a phone number with /format-number/:

curl "https://api.smsfusion.com.au/format-number/?key=YOUR_API_KEY&num=0412345678&cc=AU"

Response:

{
	"msisdn": "61412345678",
	"countryCode": 61,
	"nationalNumber": "0412 345 678",
	"intlNumber": "+61412345678",
	"region": "AU",
	"type": "MOBILE",
	"isMobile": true,
	"validNumber": true,
	"carrier": ""
}

What the API covers

Every item below is a real, live endpoint under https://api.smsfusion.com.au/.

Sending

  • /sms/ send a single SMS, with sender ID, scheduled delivery, and reply/delivery-report callback URLs
  • /mms/ send a single MMS
  • /send-sms-to-list/ send a campaign to every active contact in a list, with scheduling, message A/B variations, and reply/opt-out/click list wiring

Cancellation

  • /cancel-sms/ cancel a single not-yet-sent scheduled message (best-effort, right up until it sends)
  • /cancel-campaign/ cancel an entire pending or in-review campaign before it starts sending

Keywords

  • /get-keywords/ list inbound auto-response keywords on your virtual numbers
  • /add-keyword/, /edit-keyword/, /delete-keyword/ manage them

Numbers

  • /get-available-numbers/ dedicated two-way virtual numbers available to buy, with monthly and yearly pricing
  • /buy-number/ buy one against your pre-pay balance, with an optional webhook for purchase, renewal and cancellation billing events
  • /cancel-number/ cancel a pool number you own and return it to the pool

Contacts & Lists

  • /add-contact/, /add-contacts/ add one or many contacts to a list
  • /edit-contact/ update a contact's field values
  • /delete-contact/ remove a contact by phone number
  • /get-contacts/ search and page through contacts
  • /get-contact-activity/ the two-way message thread with one number
  • /add-list/, /edit-list/, /delete-list/ create, rename and delete contact lists
  • /get-lists/ list your contact lists
  • /optout-list-member/ unsubscribe a number from one list or every list
  • /get-validnumbers/ the sender numbers your account is allowed to send from

Reporting

  • /get-sent/ sent message history, by date range or cursor
  • /get-sent-count/ aggregate sent count and cost for a date range
  • /get-activity-report/ sent, delivered, failed, replies and unsubscribes for a date range
  • /get-delivery-reports/ delivery receipt feed
  • /get-campaign-results/ per-campaign delivery and click summary
  • /get-campaigns/ list your campaigns by status
  • /get-inbox/ inbound messages
  • /get-sms/ look up a single message by id
  • /get-link-hits/ click tracking for shortened links in campaigns

Utilities

  • /format-number/ parse, validate and format a phone number, with carrier detection where available (empty for number-portability countries such as Australia)
  • /hlr/ live HLR carrier/network lookup
  • /get-countries/ supported country list
  • /balance/ account wallet balance

The full API is included with every account

Create an account, mint an API key, and your first request works in minutes.

Start free trial Talk to us