Guni SMS Gateway (1.0.0)

Download OpenAPI specification:

Introduction

Effortlessly send millions of texts and media messages, including SMS Broadcast Australia and Bulk SMS Australia, while building 2-way conversations with high-value customers. All this is made possible through our all-in-one web platform with robust APIs, CRM integration, and email to SMS Australia services.

Credentials

Benefits

Instant Customer Reach

Engage your audience with fast and effective SMS communication.

Seamless Team Engagement

Keep your team informed, wherever they are.

Efficiency Through Automation

Automate routine tasks like appointment reminders.

Secure & Reliable Communication

Protect your business with secure, encrypted messaging.

Global Reach

Send millions of messages at once.

2-Way Conversation

Engage in 2-way personalized conversations.

Out-of-the-Box Integration

Easily integrate SMS into your existing systems.

Authentication

How to Generate the App Token

App token is necessary for each action that requires authentication.

  1. Go to the integration portal to generate a token: https://app.gunisms.com.au/integrations
  2. Click Integration
  3. Create APP Token
  4. Copy the newly generated token

You can see the images below to know more:

  • How to Generate Token
  • token name
  • copy token name

How to Verify App Token

Use the /api/v1/user/token/verify endpoint to confirm that your APP Token is valid.
Include the token in the Authorization header as a Bearer token:

Authorization: Bearer <YOUR_TOKEN>

Verify App Token

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string",
  • "data": { }
}

Webhooks

How to Configure Webhooks

Guni uses webhooks to send real-time SMS delivery status (DLR) to your application.
You must configure your Callback URL in the Integration settings to receive these status updates.

  1. Log in to Guni SMS.
  2. Navigate to Integrations.
  3. Locate Webhook Settings and enter your Callback URL.
  4. Click Save to confirm.

Webhook Setup


Delivery Reports (DLRs)

For delivery reports or changes in the status of a message, Guni will send a POST request to your specified Callback URL. You may receive multiple notifications for a single message (e.g., queued → sent → delivered).

Example JSON:

{
  "_id": "615afd3cb033992b3a61933f",
  "status": "delivered",
  "type": "send",
  "sender": "+614xxxxxxxx",
  "receiver": "40XXXXXXX"
}

Request Body Parameters:

  • _id – Unique message ID
  • status – Current status of the message (e.g., delivered)
  • type – The message action type (e.g., "send")
  • reason – Error/failure description (if applicable)
  • sender – The sending phone number
  • receiver – The receiving phone number

Reply SMS

Guni also uses a webhook for real-time incoming SMS. You must update your Receive URL in the Integration Settings to handle replies:

  1. Go to Guni Integrations.
  2. Click Integration.
  3. Enter your Receive Callback URL and click Update.

Reply Webhook Setup

When a customer replies via SMS, Guni sends a POST request with the following JSON:

{
  "_id": "<unique_id>",
  "message": "This is reply message",
  "type": "receive",
  "sender": "40XXXXXXX",
  "receiver": "614xxxxxxxx"
}

Request Body Parameters:

  • _id – Unique message ID
  • message – The text response from your customer
  • type – The message action type (e.g., "receive")
  • sender – The customer's phone number (who sent the reply)
  • receiver – Your Guni phone number that received the reply

When a customer replies via MMS, Guni sends a POST request with the following JSON:

{
  "_id": "<unique_id>",
  "status": "delivered",
  "type": "receive",
  "message": "{\"message\":\"<text_message>\",\"media\":[{\"url\":\"<media_url_1>\"},{\"url\":\"<media_url_2>\"}]}",
  "sender": "40XXXXXXX",
  "receiver": "614xxxxxxxx",
  "media": [
    {
      "url": "<media_url_1>"
    },
    {
      "url": "<media_url_2>"
    }
  ],
  "mms": true
}

Request Body Parameters:

  • _id– Unique identifier for the message.
  • status– It will be delivered.
  • type– The message action type (e.g., "receive").
  • message– A JSON-encoded string containing:
    • message– The text response from the customer (empty if it's an MMS with only media).
    • media– An array of media objects with URLs to attached images, videos, or other files.
  • sender– The phone number of the customer who sent the message.
  • receiver– Your Guni phone number that received the message.
  • media– A separate array listing media URLs attached to the message.
  • mms– It will be true.

SMS

Endpoints to send Single or Bulk SMS.

Send Quick SMS or Schedule Quick SMS

Quick SMS:

  • Message in standard English is max 1224 characters and with unicode max 536 characters.
  • Maximum 20 contacts per request.
  • You can use any valid australian number format e.g. 6140XXXXXXX, 40XXXXXXX, 040XXXXXXX, 40X XXX XXX, 61 40X XXX XXX, etc.

For scheduling a one-time Quick SMS campaign:
Include an additional scheduleAt field in the payload.

Include Bearer Token in the request header and use Content-Type: application/json.

Authorizations:
BearerAuth
Request Body schema: application/json
One of
sender
required
string
message
required
string
contacts
required
Array of strings

Responses

Request samples

Content type
application/json
Example
{
  • "sender": "GuniSMS",
  • "message": "My Guni SMS",
  • "contacts": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 1,
  • "is_enc": false,
  • "status": true,
  • "message": "Quick SMS Sent Successfully",
  • "message_type": "toast",
  • "data": {
    }
}

Send Bulk SMS or Schedule Bulk SMS Campaign

For sending (Bulk SMS):

  • Message in standard English is max 1224 characters; with unicode, max 536 characters.
  • Maximum 3000 contacts per request.
  • You can use any valid australian number format e.g. 6140XXXXXXX, 40XXXXXXX, 040XXXXXXX, 40X XXX XXX, 61 40X XXX XXX, etc.

For scheduling a one-time Bulk SMS campaign:
Include an additional scheduleAt field in the payload and set repeat to "one_time".

Include Bearer Token in the request header and use Content-Type: application/json.

Exactly one of these settings can be true:

  • If "optout" is false and "replyStopToOptOut" is true, the message will include "reply stop to opt out."
  • If "optout" is true and "replyStopToOptOut" is false, the message will include a URL formatted as "stopsms.co/u#####."
Authorizations:
BearerAuth
Request Body schema: application/json
One of
name
required
string
description
string
sender
required
string
message
required
string
contacts
required
Array of strings
optout
boolean
replyStopToOptOut
boolean

Responses

Request samples

Content type
application/json
Example
{
  • "name": "My BulkSMS Campaign",
  • "sender": "GuniSMS",
  • "message": "My bulk SMS message",
  • "contacts": [
    ],
  • "optout": true,
  • "replyStopToOptOut": false
}

Response samples

Content type
application/json
Example
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 0,
  • "is_enc": false,
  • "status": true,
  • "message": "SMS Campaign Sent Successfully",
  • "message_type": "toast",
  • "data": {
    },
  • "error": { }
}

MMS

Endpoints for sending MMS messages.

Send Quick MMS or Schedule Quick MMS

For immediate sending (Quick MMS):

  • Message in standard English is max 1500 characters and unicode is 600 characters max.
  • Maximum 20 contacts per request.
  • You can use any valid australian number format e.g. 6140XXXXXXX, 40XXXXXXX, 040XXXXXXX, 40X XXX XXX, 61 40X XXX XXX, etc.

For scheduling a one-time Quick MMS campaign:
Include an additional scheduleAt field in the payload.

Use this endpoint to send Quick MMS messages immediately or schedule them.

Authorizations:
BearerAuth
Request Body schema: multipart/form-data
One of
media
required
string <uri>
message
required
string
sender
required
string
contacts
required
Array of strings

Responses

Request samples

Content type
multipart/form-data
Example
{
  "media": "https://example.com/beach.jpeg",
  "message": "My quick MMS",
  "sender": "#SharedNum#",
  "contacts": "['614xxxxxxxx']"
}

Response samples

Content type
application/json
Example
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 0,
  • "is_enc": false,
  • "status": true,
  • "message": "Request is being processed",
  • "message_type": "toast",
  • "data": {
    }
}

Send Bulk MMS

For Sending (Bulk MMS):

  • Message in standard English is max 1500 characters and unicode is 600 characters max.
  • Maximum 3000 contacts per request.
  • You can use any valid australian number format e.g. 6140XXXXXXX, 40XXXXXXX, 040XXXXXXX, 40X XXX XXX, 61 40X XXX XXX, etc.

Use this endpoint to send Bulk MMS messages.

If "replyStopToOptOut": true this will put reply stop to optout in message

Authorizations:
BearerAuth
Request Body schema: multipart/form-data
media
required
string <uri>
message
required
string
sender
required
string
contacts
required
string
name
string
replyStopToOptout
string

Responses

Request samples

Content type
multipart/form-data
{
  "media": "https://example.com/myImage.jpg",
  "message": "My bulk MMS message",
  "sender": "#SharedNum#",
  "contacts": "['614xxxxxxxx']",
  "replyStopToOptout": "true"
}

Response samples

Content type
application/json
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 0,
  • "is_enc": false,
  • "status": true,
  • "message": "MMS Campaign Sent Successfully",
  • "message_type": "toast",
  • "data": {
    },
  • "error": { }
}

Dynamic Callback and Auto Detect Long URL SMS

Endpoints for dynamic callbacks and detecting long URLs in SMS. If the message content contains multiple URLs, the API will generate a short URL link only for the first long URL. All other URLs will remain unchanged.

Quick SMS: Auto Detect Long URL in message Content and Dynamic Callback

Quick SMS messages are sent by automatically detecting long URLs in the message content and including a callback URL, and email for replies.

Authorizations:
BearerAuth
Request Body schema: application/json
sender
required
string
message
required
string
contacts
required
Array of strings
callback
string
replyEmail
string

Responses

Request samples

Content type
application/json
{
  • "sender": "#SharedNum#",
  • "message": "Testing Quick SMS with dynamic callback and long auto direct url https://www.google.com",
  • "contacts": [
    ],
  • "replyEmail": "replyEmail@example.com"
}

Response samples

Content type
application/json
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 1,
  • "is_enc": false,
  • "status": true,
  • "message": "Quick SMS Sent Successfully",
  • "message_type": "toast",
  • "data": {
    }
}

Bulk SMS: Auto Detect Long URL in message Content and Dynamic Callback

Bulk SMS messages are sent by automatically detecting long URLs in the message content and including a callback URL, and email for replies.

Exactly one of these settings can be true:

  • If "optout" is false and "replyStopToOptOut" is true, the message will include "reply stop to opt out."
  • If "optout" is true and "replyStopToOptOut" is false, the message will include a URL formatted as "stopsms.co/u#####."
Authorizations:
BearerAuth
Request Body schema: application/json
name
required
string
description
string
sender
required
string
message
required
string
contacts
required
Array of strings
optout
boolean
replyStopToOptOut
boolean
callback
string
replyEmail
string

Responses

Request samples

Content type
application/json
{
  • "sender": "#SharedNum#",
  • "message": "Testing bulk SMS with dynamic callback and long auto direct url https://www.google.com",
  • "contacts": [
    ],
  • "name": "CampaignName",
  • "replyEmail": "replyEmail@example.com",
  • "optout": false,
  • "replyStopToOptOut": true
}

Response samples

Content type
application/json
{
  • "app_type": "web",
  • "app_version": "1.0",
  • "maintainence": 0,
  • "new_version": 0,
  • "force_update": 0,
  • "invalid_token": 0,
  • "refresh_token": "",
  • "show_message": 0,
  • "is_enc": false,
  • "status": true,
  • "message": "SMS Campaign Sent Successfully",
  • "message_type": "toast",
  • "data": {
    },
  • "error": { }
}