Docs
dataflows.com.au ↗ Get API Token

DataFlows Documentation

Everything you need to add SMS to your business: integrations, AI assistant connections, Email to SMS and the HTTP API reference.

API Base URL https://sms.dataflows.com.au/api/http
API tokens are created in the DataFlows dashboard under Developers, and API access has to be enabled on your account. How the token is sent depends on the endpoint, see Authentication.

AI Assistants

Send, schedule and track SMS by asking an AI assistant in plain language.

ChatGPT
ChatGPT
DataFlows SMS app
Claude
Claude
Connector and Claude Code plugin
Gemini
Gemini CLI
Gemini CLI extension

Integrations

Connect DataFlows SMS to the tools you already use, with no API code required.

Zapier
Zapier
Automations with thousands of apps
Microsoft Power Automate
Power Automate
Microsoft 365 workflows
Microsoft Teams
Microsoft Teams
SMS inside Teams channels
Shopify
Shopify
Order notifications and campaigns
WordPress
WordPress
WooCommerce SMS
HighLevel
HighLevel
Workflows and two-way SMS
Cliniko
Cliniko
Reminders and AI SMS receptionist
ServiceM8
SMS from jobs and customers
Supabase
Supabase
Send SMS auth hook
Auth0
Auth0
SMS MFA and passwordless
Email to SMS
Send SMS from any email app
Dedicated Numbers
Two-way SMS and replies

API Reference

HTTP API for sending SMS, managing contacts and checking your account. Also available as an OpenAPI spec and a Postman collection.

Account

Account profile, credit balance and the sender IDs and numbers you can send from.

SMS API

Send and schedule SMS, including OTP and verification codes, and view sent messages.

Contact Groups

Create and manage contact groups.

Contacts

Add, view, update and remove contacts in a group.

Need help? Email [email protected].

Authentication

Every API request is authenticated with your API token. Send it as a Bearer header (recommended) or as an api_token field.

Getting Your Token

1

Log in to your DataFlows dashboard

Go to sms.dataflows.com.au and sign in.

2

Open Developers

Click Developers in the menu, or go to sms.dataflows.com.au/developers. Your API Token is shown on the page. Click the copy icon to copy it.

3

Make sure API access is enabled

API access has to be enabled on your account. If your requests are refused, email [email protected].

Keep your API token secret. Never expose it in client-side JavaScript or commit it to version control. Use environment variables.
Regenerate Token on the Developers page creates a new token, and the old one stops working straight away. Any integration using the old token (Zapier, Power Automate, Shopify, WordPress and so on) will need the new one.

Two Ways to Send the Token

Bearer header

curl https://sms.dataflows.com.au/api/http/balance \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

api_token field

On GET and DELETE requests, send api_token as a query parameter. On POST and PATCH requests, send it in the JSON body.

curl 'https://sms.dataflows.com.au/api/http/contacts?api_token=YOUR_API_TOKEN' \
  -H 'Accept: application/json'

Which Method Each Endpoint Accepts

EndpointBearer headerapi_token field
All /api/http endpointsYes (recommended)Yes

Request Format

Send request bodies as JSON with Content-Type: application/json, and include Accept: application/json on every request. See Responses and Errors for the response format.

Dedicated Numbers and Two-Way SMS

A dedicated number lets your customers reply to your messages. Replies land in your DataFlows inbox, and integrations use the number for two-way messaging.

Sender IDs and Dedicated Numbers

Business name Sender ID

Your messages show your business name. Recipients can't reply to a business name.

Dedicated number

Your own number that customers can reply to. Needed for anything that relies on a reply.

Getting a Number

1

Buy a number in the dashboard

Log in to sms.dataflows.com.au, go to Sending → Numbers and click Buy a number. An Australian number is $10 a month. For numbers in other countries, such as the US and UK, contact [email protected].

2

Send from it

Choose the number as your sender in the dashboard, an integration, or the sender_id field of the SMS API.

3

Read and answer replies

Customer replies arrive in your DataFlows inbox, where you can read them and reply.

Integrations That Use a Dedicated Number

  • HighLevel: two-way SMS through HighLevel Conversations
  • Cliniko: patient replies, confirmations, waitlist offers and the AI SMS receptionist
  • ServiceM8: campaign replies and the AI receptionist
  • Microsoft Teams: a receiving number for each Teams channel

Email to SMS

Send an SMS from Outlook, Gmail or any email app by emailing the recipient's number at our Email to SMS domain.

How It Works

1

Address the email to the number

Email [email protected], putting the recipient's number in international format before the @.

2

Write the message in the body

The email body becomes the SMS text.

3

Send from an authorised address

Only your DataFlows login email and the addresses in your Authorized Email Addresses list can send.

Rules

  • Up to 10 recipients per email, counted across To, Cc and Bcc
  • The sending domain has to pass email authentication (DKIM or DMARC), otherwise it is not sent. Gmail, Outlook and most business email do this automatically
  • Works from any email app (Gmail, Outlook, Apple Mail or a phone), with no plugin or mailbox connection
  • Turn off automatic signatures such as "Sent from Outlook for Android": they become part of the SMS
  • Messages use your standard DataFlows SMS credits

Settings

Click Email to SMS in the dashboard menu, or go to sms.dataflows.com.au/email-to-sms.

  • Authorized Email Addresses: click Add Email to let another address send SMS by email
  • Default SMS Settings: choose the sender ID or number used for email sends
Read more on the Email to SMS page.

ChatGPT

Send, schedule and track SMS from your DataFlows account by asking ChatGPT in plain language, with the DataFlows SMS app in ChatGPT.

Setup

1

Open the DataFlows SMS app

Open the listing above and connect the app.

2

Sign in with your DataFlows account

Sign in with your DataFlows login and allow access.

3

Ask ChatGPT

For example: "What's my DataFlows SMS balance and which sender IDs can I use?"

MCP Server URL https://sms.dataflows.com.au/mcp

What You Can Do

  • Send SMS from your own sender ID or number
  • Preview before you send: recipients, SMS parts and credits needed
  • Schedule messages, and cancel them before they send
  • Check delivery status, read replies and check your balance

ChatGPT asks you to confirm before any message is sent. Full details are on the ChatGPT integration page.

Claude

Send, schedule and track SMS from your DataFlows account by asking Claude in plain language. Works in Claude on the web, desktop and mobile apps, and Claude Code.

DataFlows SMS is listed in Claude's connector directory.

Connect in Claude

1

Open Connectors

In Claude, go to Customize, then Connectors.

2

Find DataFlows SMS

Find DataFlows SMS in the directory, or open the listing directly, and select Connect.

3

Sign in

Sign in with your DataFlows login and select Allow Access.

MCP Server URL https://sms.dataflows.com.au/mcp/claude

Claude Code

Install the plugin

The DataFlows SMS plugin (dataflows-sms@dataflows) adds the connector plus skills that confirm every send and preview costs before campaigns.

/plugin marketplace add dataflows-au/dataflows-sms-claude-plugin
/plugin install dataflows-sms@dataflows

Or add only the connector

claude mcp add --transport http dataflows-sms https://sms.dataflows.com.au/mcp/claude

Then type /mcp in Claude Code and sign in when prompted.

Claude asks you to confirm before any message is sent. Full details are on the Claude integration page.

Gemini CLI

Send, schedule and track SMS from your DataFlows account by asking Gemini in plain language, with the DataFlows SMS extension for Gemini CLI.

The extension is on GitHub at dataflows-au/dataflows-sms-gemini.

Setup

1

Install the extension

gemini extensions install https://github.com/dataflows-au/dataflows-sms-gemini
2

Sign in to DataFlows

Start Gemini CLI and run /mcp auth dataflows-sms. Your browser opens the DataFlows sign-in page. Sign in with your DataFlows login and select Allow Access.

3

Ask Gemini

For example: "Did my messages today get delivered, and did anyone reply?"

MCP Server URL https://sms.dataflows.com.au/mcp/gemini
Using Antigravity CLI? Install the extension with Gemini CLI as above, then run agy plugin import gemini.

Gemini asks you to confirm before any message is sent. Full details are on the Gemini integration page.

Zapier Integration

Automate SMS workflows with thousands of apps, no code required. Trigger SMS from CRM events, form submissions, calendar reminders and more.

DataFlows SMS is an official Zapier integration. Find it in the Zapier App Directory.

Setup

1

Create a DataFlows account

Sign up at sms.dataflows.com.au/register and get your API token from Developers.

2

Connect DataFlows in Zapier

In your Zap, search for "DataFlows SMS" and click Connect Account. Paste your API token.

3

Choose a trigger, action or search

Select from the DataFlows triggers, actions and searches below.

4

Map your fields and test

Map your trigger data to the SMS fields and run a test to send a real SMS.

Actions

Send SMS

Send an SMS to one or more recipients from a Zap trigger.

FieldDescription
recipientPhone number(s) in international format. Comma separate for multiple.Required
sender_idA registered sender ID or one of your numbers.Required
messageSMS message body. You can insert dynamic data from your trigger.Required
schedule_timeOptional scheduled send time, format Y-m-d H:i in your account's timezone.Optional

Create Contact

Add a contact to a DataFlows contact group when a Zap trigger fires, for example a new form submission or a new CRM contact.

FieldDescription
group_idThe contact group to add the contact to.Required
PHONEPhone number in international format.Required
FIRST_NAMEContact first name.Optional
LAST_NAMEContact last name.Optional

Analyze SMS Sentiment With AI

Run AI sentiment analysis on inbound SMS text and return a sentiment result (positive, neutral or negative). Use it with the New SMS Received trigger to route or tag conversations.

Categorize SMS With AI

Classify inbound SMS into your own categories using AI. Define category labels (for example "Booking Request", "Complaint", "Opt-out") and the AI returns the best match.

Searches

Get Account Balance

Look up your current DataFlows SMS credit balance, for example to check you have enough credits before a Zap sends.

Search Contacts

Find an existing contact in your DataFlows contact groups, for example to check whether someone is already on a list.

Triggers

New SMS Received

Fires when an inbound SMS arrives in your DataFlows inbox. The payload includes the sender number, message body, timestamp and the number it was sent to.

Keyword Matched in SMS

Fires when an inbound SMS contains a keyword you choose (for example "INFO" or "YES"). Configure the keyword in the trigger settings.

SMS Delivery Status Changed

Fires when a sent SMS changes delivery status (Delivered, Failed, Pending). Use it to update CRM records or trigger follow-up actions.

Low Balance Alert

Fires when your SMS credit balance drops below a threshold you set. Use it to alert your team.

More detail on each trigger and action is on the Zapier integration page.

Power Automate Integration

Send and receive SMS from Microsoft Power Automate, Power Apps, Copilot Studio and Logic Apps with the DataFlows SMS connector, without writing code.

DataFlows SMS is a certified Microsoft connector, listed as DataFlows SMS (Preview), a Premium connector. There is nothing to install. See the connector reference on Microsoft Learn.

Setup

1

Copy your API token

Log in to DataFlows and copy your API token from Developers.

2

Add a DataFlows SMS step

In Power Automate, create or open a flow, add a step and search for DataFlows SMS.

3

Create the connection

When prompted, paste the API token from your Developers page into DataFlows API Key.

4

Build and test your flow

Pick an action or trigger, map your fields, then save and test.

The connector is Premium, so it needs a Power Automate Premium licence. To receive SMS you also need a dedicated number.

Actions

ActionWhat it does
Send SMS MessageSend to one or more numbers, now or at a scheduled time.
Get Account BalanceReturn your current SMS credit balance.
Get Account ProfileReturn your account profile.
Get SMS DetailsReturn one message by its ID.
List All SMS MessagesReturn a paginated list of your messages.

Trigger

When SMS received

Starts a flow when an SMS arrives at your dedicated number, for example to send an automatic reply, post the message to Teams or log it in SharePoint.

Common Flow Ideas

Microsoft Forms to SMS

Send an SMS confirmation when someone submits a Microsoft Form.

Outlook Calendar to SMS

Send SMS reminders before calendar events.

SharePoint to SMS

Notify a contact by SMS when a SharePoint list item changes status.

Inbound SMS auto reply

Reply automatically when a customer texts your number.

Alternative: HTTP Action

You can also call the API directly with the built-in HTTP action (also Premium):

FieldValue
MethodPOST
URIhttps://sms.dataflows.com.au/api/http/sms/send
HeadersAuthorization: Bearer YOUR_API_TOKEN
Accept: application/json
Content-Type: application/json
Body (JSON)
{
  "recipient": "@{triggerBody()?['PhoneNumber']}",
  "sender_id": "YourBrand",
  "type": "plain",
  "message": "Hi @{triggerBody()?['FirstName']}, your appointment is confirmed."
}

More Guides

See the Power Automate integration page, the advanced guide and use cases.

Microsoft Teams Integration

Turn Teams channels into shared two-way SMS inboxes. Receive customer SMS in a channel and reply from Teams, with no app switching.

Get the app from the Microsoft Marketplace.

Before You Start

Setup

1

Install the app

Install DataFlows SMS from the Microsoft Marketplace.

2

Connect your account

Open the DataFlows SMS app in Teams, click Connect Account and sign in with your DataFlows email and password.

3

Add the tab to a channel

Add the DataFlows SMS tab to the channel you want to use.

4

Choose the channel settings

Open Channel Settings, choose the Receiving Virtual Number and the Reply as sender ID, then click Save Channel Settings.

Channel settings lock once saved. To change them, remove the DataFlows SMS tab from the channel and add it again.

Using It

  • Team members see incoming SMS in the channel and can reply
  • Send Team SMS to send a new message
  • Reports for your message activity
  • Compose extension: More actions → Send DataFlows SMS
  • Bot: type @DataFlows SMS help
For help with tenant-wide installation and permissions, email [email protected]. More on the Microsoft Teams integration page.

Shopify Integration

Automated order notifications, abandoned cart recovery, a two-way inbox and bulk SMS campaigns, all inside Shopify Admin.

Install from the Shopify App Store.

Setup

1

Install from the Shopify App Store

Go to apps.shopify.com/dataflows-sms and click Install.

2

Connect your DataFlows account

In Shopify Admin, open Apps → DataFlows SMS and click Connect DataFlows. Sign in to DataFlows and approve access, and you're returned to Shopify connected. There is no API token to paste.

3

Select your Sender ID

Choose which Sender ID or number to use for outbound Shopify SMS.

4

Enable notification types

Toggle each of the 8 notification types on or off, and customise the message templates.

Automated Notifications

Each notification type can be turned on or off on its own and is sent in real time through Shopify webhooks.

NotificationTriggerAvailable Variables
Order ConfirmationNew order placed{{customer.first_name}} {{order.name}} {{shop.name}}
Shipping UpdateOrder fulfilled{{customer.first_name}} {{order.name}} {{tracking_url}}
Out for DeliveryTracking status update{{customer.first_name}} {{order.name}}
DeliveredOrder delivered{{customer.first_name}} {{shop.name}}
Order CancelledOrder cancelled{{customer.first_name}} {{order.name}}
Refund ProcessedRefund issued{{customer.first_name}} {{order.name}}
Welcome SMSNew customer account{{customer.first_name}} {{shop.name}}
Abandoned Cart RecoveryCart abandoned (delay from 5 minutes to 24 hours){{customer.first_name}} {{checkout_url}}

Two-Way Inbox

The inbox shows conversation threads grouped by customer phone number. View inbound messages and reply directly from Shopify Admin. Customers can only reply if you send from a dedicated number.

Bulk Campaigns

Broadcast to opted-in subscribers with AI-generated copy variants. Target from 9 audience segments, including All Subscribers, VIP, Lapsed, At-Risk, Abandoned Cart and Loyalty Members.

Shopify Flow

The app adds a Send SMS action and an Add to SMS List action to Shopify Flow, so you can send SMS from any Flow event, such as loyalty points earned or a tag added.

DataFlows is an ACMA-registered Originating Telco and compliant with the Spam Act 2003. The STOP keyword is always active and cannot be disabled. More on the Shopify integration page.

WordPress / WooCommerce Integration

Automated SMS order notifications for WooCommerce stores: order confirmation, shipping updates, abandoned cart recovery and more.

Get DataFlows SMS on WordPress.org. Requires WordPress 5.8 or higher and WooCommerce 6.0 or higher.

Setup

1

Install the plugin

In WordPress Admin, install DataFlows SMS from Plugins → Add New, then activate it.

2

Enter your API token

Go to DataFlows SMS → Settings. Paste your API token from Developers and click Test Connection to verify.

3

Set your country code and Sender ID

Set your default country code (for example 61 for Australia). The Sender ID dropdown loads from your DataFlows account. Click Refresh if it doesn't appear straight away.

4

Enable notifications

Turn on the notifications you want and click Save Settings. Customise the message text under DataFlows SMS → Templates.

Automated Notifications

NotificationTriggerVariables
Order ConfirmationNew order at checkout{customer_name} {order_number} {total}
Order ShippedStatus changed to Completed{customer_name} {order_number}
Order CancelledOrder cancelled{customer_name} {order_number}
Refund ProcessedFull refund issued{customer_name} {order_number}
Welcome SMSNew customer account created{customer_name} {shop_name}
Abandoned Cart RecoveryLogged-in customer leaves items in their cart (delay from 10 minutes to 24 hours){customer_name} {cart_url}

Plugin Features

  • Test Connection button that confirms the connection and shows your account name
  • Sender ID dropdown loaded from your DataFlows account, no copy and paste
  • International number support that strips spaces, dashes and brackets automatically
  • Default country code setting for local numbers
  • Dedicated DataFlows SMS menu in WordPress Admin

More on the WordPress integration page.

HighLevel (GoHighLevel)

Send SMS from HighLevel workflows with a DataFlows Send SMS action, and run two-way SMS through HighLevel Conversations.

Install from the HighLevel Marketplace. Step by step instructions are in the HighLevel setup guide (PDF).

What It Does

  • Send SMS workflow action: send an SMS from any workflow step, such as contact created, form submitted or appointment booked
  • Two-way SMS in Conversations: customer replies come back into HighLevel Conversations, and you can answer from there
  • Built for agencies: works across many sub-accounts, and each sub-account can have its own number
  • Personalise messages with HighLevel custom values such as {{contact.first_name}}
Two-way SMS through Conversations needs a dedicated number. A business name Sender ID can send, but customers can't reply to it.

Setup

1

Create a DataFlows account

Sign up at sms.dataflows.com.au/register.

2

Install from the HighLevel Marketplace

Open the DataFlows SMS listing, install it and connect your DataFlows account.

3

Add the action to your workflows

Open a workflow, add the DataFlows Send SMS action, write your message and publish.

The setup guide covers connecting sub-accounts and setting up two-way Conversations. More on the HighLevel integration page.

Cliniko

Appointment reminders and confirmations, two-way patient replies handled by an AI SMS receptionist, waitlist offers, recalls and campaigns for Cliniko clinics.

DataFlows SMS is a Cliniko connected app. Step by step instructions are in the Cliniko setup guide (PDF).

What It Does

  • AI SMS receptionist: reads patient replies, confirms appointments in Cliniko, and passes cancellations, reschedules and questions to your staff
  • Appointment reminders and confirmations: booking confirmations, rolling or fixed daily reminders, and cancellation and reschedule notices
  • Two-way patient replies: every conversation in one threaded inbox, where staff can reply
  • Waitlist offers: when a slot frees up, matching waitlist patients are texted and the first to reply CLAIM gets it
  • Recalls: reminders for patients due for a follow-up visit
  • Campaigns: filter patients by appointment date and outcome and send a campaign
Anything that needs a patient reply (confirmations, waitlist claims, the inbox) needs a dedicated number.

Setup

1

Create a DataFlows account

Sign up at sms.dataflows.com.au/register.

2

Get your Cliniko API key

In Cliniko, click your name in the bottom left corner, then My Info, then Manage API keys, and add a key. Copy it.

3

Connect Cliniko in DataFlows

In DataFlows, click Cliniko in the sidebar and paste your API key. DataFlows checks the connection and detects your region.

4

Choose your automations

Turn on the messages you want, set your templates and choose your sender. With several Cliniko businesses, each location has its own settings.

More on the Cliniko integration page.

ServiceM8

Send SMS straight from ServiceM8 jobs and customers, run campaigns to win back past customers, and let an AI receptionist handle the replies.

What It Does

  • Send SMS from a job or customer: a note is added to the job so your team can see what was sent
  • Campaigns: pick customers from your ServiceM8 data, for example customers with no job in the last 12 months, and send from your DataFlows dashboard
  • AI receptionist: reads replies, creates a Quote in ServiceM8 for booking requests, alerts your team, and removes customers who reply STOP
  • Automatic booking (optional): offers the customer real time slots from a staff member's ServiceM8 schedule and books the one they choose
  • Customers, jobs and job changes sync from ServiceM8 to DataFlows automatically

Setup Summary

1

Connect the add-on

Open DataFlows SMS from the ServiceM8 Add-ons menu, paste your API token from Developers and click Save & Connect.

2

Get a dedicated number

Campaigns and the AI receptionist need a dedicated number so customers can reply.

3

Choose your settings

In your DataFlows dashboard, open ServiceM8 → Settings to set default staff per job category and turn automatic booking on or off.

Every step, setting and troubleshooting answer is in the ServiceM8 guide.

Supabase Integration

Send Supabase Auth phone OTP codes through DataFlows, using Supabase's Send SMS auth hook and our Edge Function.

DataFlows is not a built-in Supabase phone provider. It connects through the Send SMS hook with the Edge Function at github.com/dataflows-au/supabase-sms-hook.

Before You Start

  • A DataFlows account, your API token from Developers, and your Sender ID (business name or number)
  • A Supabase project
  • The Supabase CLI

Setup

1

Add the Edge Function to your project

Clone supabase-sms-hook and copy supabase/functions/dataflows-sms-hook into your project's supabase/functions folder.

2

Set your DataFlows secrets and deploy

supabase secrets set DATAFLOWS_API_KEY=your_api_token_here
supabase secrets set DATAFLOWS_SENDER_ID=YourSenderID
supabase functions deploy dataflows-sms-hook
3

Configure the Send SMS hook

In the Supabase Dashboard, open your project and go to Authentication → Hooks. Edit the Send SMS hook, choose HTTP Request and enter https://<your-project-ref>.supabase.co/functions/v1/dataflows-sms-hook. Click Generate Secret, copy it and save.

4

Set the hook secret and redeploy

supabase secrets set SEND_SMS_HOOK_SECRET="v1,whsec_your_secret_here"
supabase functions deploy dataflows-sms-hook
5

Enable phone auth

Go to Authentication → Providers, enable Phone, and select Hook as the SMS provider.

Environment Variables

VariableDescription
DATAFLOWS_API_KEYYour DataFlows API tokenRequired
DATAFLOWS_SENDER_IDSender ID (business name or number)Required
SEND_SMS_HOOK_SECRETHook secret from the Supabase DashboardRequired
OTP_MESSAGE_TEMPLATECustom message. Default: Your verification code is: {otp}Optional
supabase secrets set OTP_MESSAGE_TEMPLATE="Your MyApp code is: {otp}. Valid for 10 minutes."

Test It in Your App

const { error } = await supabase.auth.signInWithOtp({ phone: '+61404235133' })

const { data, error: verifyError } = await supabase.auth.verifyOtp({
  phone: '+61404235133',
  token: '123456',
  type: 'sms'
})

Troubleshooting

  • OTP not received: check the logs with supabase functions logs dataflows-sms-hook, check your API token and credit balance, and make sure numbers include the country code
  • Signature errors: SEND_SMS_HOOK_SECRET must match the Dashboard secret, in the format v1,whsec_...
  • Deploy fails: update the CLI with supabase update and check your project is linked with supabase link

More on the Supabase integration page.

Auth0 Integration

Add SMS MFA and passwordless login to your Auth0 applications, with DataFlows sending the codes through an Auth0 Action.

Use Cases

SMS MFA

Add a second factor to your Auth0 login flow using a one-time code sent by DataFlows.

Passwordless Login

Let users log in with just their phone number, no password required.

Setup

1

Get your DataFlows credentials

Copy your API token from Developers and note your Sender ID.

2

Add the integration

Open the Auth0 Marketplace listing and click Add Integration. Auth0 creates the Action in your tenant's Send Phone Message flow.

3

Add your secrets

Open the Action in the Auth0 Dashboard and add your DataFlows API token and Sender ID as secrets.

4

Deploy the Action

Click Deploy, then make sure the Action is in the Send Phone Message flow.

5

Enable phone MFA

Go to Security → Multi-factor Auth → Phone Message, enable it and select Custom as the delivery provider.

More on the Auth0 integration page. For help, email [email protected].

Account API

Check your account profile, credit balance and the sender IDs and numbers you can send from.

Base URL https://sms.dataflows.com.au/api/http

View Profile

GET/api/http/me
Returns your account profile.
Auth: Bearer header or api_token
curl https://sms.dataflows.com.au/api/http/me \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

Check Balance

GET/api/http/balance
Returns your current SMS credit balance.
Auth: Bearer header or api_token
curl https://sms.dataflows.com.au/api/http/balance \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

List Sender IDs

GET/api/http/sender-ids
Returns the sender IDs and numbers your account can send from. Use one of these as sender_id when sending.
Auth: Bearer header only
curl https://sms.dataflows.com.au/api/http/sender-ids \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

SMS API

Send SMS to one or more numbers, now or at a scheduled time, and view the messages you have sent.

Base URL https://sms.dataflows.com.au/api/http

Send SMS

POST /api/http/sms/send
Send an SMS to one or more phone numbers immediately or at a scheduled time.
Auth: Bearer header or api_token in the body
ParameterTypeDescription
recipientstringNumber in international format, such as 61404235133. Comma separate for several: 61404235133,YOUR_SECOND_NUMBERRequired
messagestringThe message text.Required
sender_idstringA registered sender ID or one of your account's numbers. The send is refused without it. See List Sender IDs.Required
typestringplain or unicode. Default plain. A message that needs unicode switches to it automatically.Optional
schedule_timedatetimeSchedule the send for later. Format Y-m-d H:i, for example 2026-11-01 14:30, in your account's timezone.Optional
Example: single recipient
curl -X POST https://sms.dataflows.com.au/api/http/sms/send \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "recipient": "61404235133",
    "sender_id": "YourBrand",
    "message": "Hello from DataFlows!"
  }'
Example: several recipients, scheduled
curl -X POST https://sms.dataflows.com.au/api/http/sms/send \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "recipient": "61404235133,YOUR_SECOND_NUMBER",
    "sender_id": "YourBrand",
    "type": "plain",
    "message": "Hello from DataFlows!",
    "schedule_time": "2026-12-01 09:00"
  }'

Send an OTP or Verification Code

There is no separate OTP endpoint. A code goes out as a normal SMS through /api/http/sms/send, and your own system generates and checks it.

curl -X POST https://sms.dataflows.com.au/api/http/sms/send \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "recipient": "61404235133",
    "sender_id": "YourBrand",
    "message": "Your verification code is 483920. Valid for 10 minutes."
  }'

For OTP inside an authentication platform, see the Supabase and Auth0 guides.

List Sent Messages

GET/api/http/sms
Returns the messages sent from your account.
Auth: Bearer header or api_token

View a Message

GET/api/http/sms/{uid}
Returns one message by its unique ID.
Auth: Bearer header or api_token
curl https://sms.dataflows.com.au/api/http/sms/MESSAGE_UID \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

Contact Groups API

Create and manage contact groups. Use a group's UID when adding contacts.

Send the token as a Bearer header (recommended) or an api_token field. See Authentication.

List All Groups

GET/api/http/contacts
Returns the contact groups on your account.
curl https://sms.dataflows.com.au/api/http/contacts \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'

Create a Group

POST/api/http/contacts
ParameterTypeDescription
namestringName for the contact group.Required
curl -X POST https://sms.dataflows.com.au/api/http/contacts \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"name": "Newsletter Subscribers"}'

View a Group

POST/api/http/contacts/{group_uid}/show
Returns the details of one contact group.

Update a Group

PATCH/api/http/contacts/{group_uid}
ParameterTypeDescription
namestringNew name for the group.Required

Delete a Group

DELETE/api/http/contacts/{group_uid}
Permanently deletes a contact group and its contacts.

Contacts API

Add, view, update and remove contacts in a contact group.

Send the token as a Bearer header (recommended) or an api_token field. See Authentication.

List Contacts in a Group

POST/api/http/contacts/{group_uid}/all
Returns the contacts in the group.

Add a Contact

POST/api/http/contacts/{group_uid}/store
ParameterTypeDescription
PHONEstringPhone number in international format. Uppercase field name.Required
FIRST_NAMEstringContact first name.Optional
LAST_NAMEstringContact last name.Optional
custom fieldsstringAny custom fields the group has, using their tag names.Optional
curl -X POST https://sms.dataflows.com.au/api/http/contacts/GROUP_UID/store \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "PHONE": "61404235133",
    "FIRST_NAME": "Jane",
    "LAST_NAME": "Smith"
  }'

View a Contact

POST/api/http/contacts/{group_uid}/search/{contact_uid}
Returns one contact in the group.

Update a Contact

PATCH/api/http/contacts/{group_uid}/update/{contact_uid}
Updates a contact in the group. Send the fields to change: PHONE or phone, FIRST_NAME, LAST_NAME or a custom field tag. If you send neither PHONE nor phone, the number stays the same.

Delete a Contact

DELETE/api/http/contacts/{group_uid}/delete/{contact_uid}
Permanently removes a contact from the group.

Responses and Errors

Every endpoint returns JSON with a status field. Always check status, not just the HTTP status code.

Standard Response Format

Success
{
  "status": "success",
  ...
}
Error
{
  "status": "error",
  "message": "A human-readable description of the error."
}

HTTP Status Codes

Don't rely on the HTTP status code. Some errors come back as HTTP 200 with "status": "error", and others as a 4xx code (for example, a missing sender ID returns 404). Check whether status is "success" or "error".

Example messageWhat it means
These credentials do not match our records.The token is missing or wrong, or it was sent in a way the endpoint doesn't accept. See Authentication.
The recipient field is required.A required field is missing.
The api token field is required.No token was sent.
Need help? Email [email protected] or visit dataflows.com.au/contact-us.

SDKs

Node.js

npm install @dataflows/sms

npm and GitHub

PHP

composer require dataflows-au/dataflows-sms

Packagist and GitHub

Postman

1

In Postman, click Import and paste this link: https://sms.dataflows.com.au/dataflows-sms.postman_collection.json

2

Open the collection's Variables tab and set apiToken to your API token, senderId to one of your sender IDs, and recipient to your own mobile number starting with 61, without the first 0.

3

Open "Send an SMS" and click Send.

This sends a real text and uses your credit.