Skip to content

The SMS Works API API

by thesmsworks.co.uk

API keyHTTPSMessaging
Open documentation ↗

Overview

The SMS Works provides a low-cost, reliable SMS API for developers. Pay only for delivered texts, all failed messages are refunded.

The SMS Works API is a messaging API from thesmsworks.co.uk. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 18 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
Messaging
Base URL
https://api.thesmsworks.co.uk/v1
Version
1.8.0
Endpoints
18
Spec updated
2023-03-06

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X GET "https://api.thesmsworks.co.uk/v1/credits/balance" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"
JavaScript
const response = await fetch("https://api.thesmsworks.co.uk/v1/credits/balance", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "https://api.thesmsworks.co.uk/v1/credits/balance",
    headers={
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
POST/batch/anySends a collection of unique SMS messages. Batches may contain up to 5000 messages at a time.
POST/batch/scheduleSchedules a batch of SMS messages to be sent at the date time you specify
POST/batch/sendSend a single SMS message to multiple recipients. Batches may contain up to 5000 messages at a time.
GET/batch/{batchid}Retrieve all messages in a batch with the given batch ID
DELETE/batches/schedule/{batchid}Cancels a scheduled SMS message
GET/credits/balanceReturns the number of credits currently available on the account
POST/message/flashSends an SMS flash message, which appears on the recipients lock screen
POST/message/scheduleSchedules an SMS message to be sent at the date-time you specify
POST/message/sendSend an SMS Message
POST/messagesRetrieve up to 1000 messages matching your search criteria
POST/messages/failedGet failed messages matching your search criteria
POST/messages/inboxGet unread uncoming messages matching your search criteria
GET/messages/scheduleReturns a list of messages scheduled from your account, comprising any messages scheduled in the last 3 months and any scheduled to send in the future
DELETE/messages/schedule/{messageid}Cancels a scheduled SMS message
GET/messages/{messageid}Retrieve a logged message by the message ID
DELETE/messages/{messageid}Delete the message with the mathcing messageid
GET/utils/errors/{errorcode}Returns a sample error object for the given error code. Useful for designing code to react to errors when they occur for real.
GET/utils/testReturns the customer ID to the caller

Questions

Does the The SMS Works API API need an API key?

Yes. The The SMS Works API API uses API key authentication; the documentation explains how to get credentials.

Does the The SMS Works API API support HTTPS?

Yes, the The SMS Works API API is served over HTTPS.

How many endpoints does the The SMS Works API API have?

Its OpenAPI description lists 18 endpoints in version 1.8.0. All of them are shown on this page.

What are alternatives to the The SMS Works API API?

Other Messaging APIs include Qakka, Telegram Bot API, Airflow API (Stable), Sakari, SIGNL4 API.

Compare alternatives →

Qakka

Messaging

API for Qakka Queue System

No auth10 endpoints

Telegram Bot API

Messaging

Auto-generated OpenAPI schema

No auth74 endpoints

Airflow API (Stable)

Messaging

# Overview To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases. Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ``` ## Resources The term `resource` refers to a single type of object in the Airflow metadata. An API is broken up by its endpoint's corresponding resource. The name of a resource is typically plural and expressed in camelCase. Example: `dagRuns`. Resource names are used as part of endpoint URLs, as well as in API parameters and responses. ## CRUD Operations The platform supports **C**reate, **R**ead, **U**pdate, and **D**elete operations on most resources. You can review the standards for these operations and their standard parameters below. Some endpoints have special behavior as exceptions. ### Create To create a resource, you typically submit an HTTP `POST` request with the resource's required metadata in the request body. The response returns a `201 Created` response code upon success with the resource's metadata, including its internal `id`, in the response body. ### Read The HTTP `GET` request can be used to read a resource or to list a number of resources. A resource's `id` can be submitted in the request parameters to read a specific resource. The response usually returns a `200 OK` response code upon success, with the resource's metadata in the response body. If a `GET` request does not include a specific resource `id`, it is treated as a list request. The response usually returns a `200 OK` response code upon success, with an object containing a list of resources' metadata in the response body. When reading resources, some common query parameters are usually available. e.g.: ``` v1/connections?limit=25&offset=25 ``` |Query Parameter|Type|Description| |---------------|----|-----------| |limit|integer|Maximum number of objects to fetch. Usually 25 by default| |offset|integer|Offset after which to start returning objects. For use with limit query parameter.| ### Update Updating a resource requires the resource `id`, and is typically done using an HTTP `PATCH` request, with the fields to modify in the request body. The response usually returns a `200 OK` response code upon success, with information about the modified resource in the response body. ### Delete Deleting a resource requires the resource `id` and is typically executing via an HTTP `DELETE` request. The response usually returns a `204 No Content` response code upon success. ## Conventions - Resource names are plural and expressed in camelCase. - Names are consistent between URL parameter name and field name. - Field names are in snake_case. ```json { "name": "string", "slots": 0, "occupied_slots": 0, "used_slots": 0, "queued_slots": 0, "open_slots": 0 } ``` ### Update Mask Update mask is available as a query parameter in patch endpoints. It is used to notify the API which fields you want to update. Using `update_mask` makes it easier to update objects by helping the server know which fields to update in an object instead of updating all fields. The update request ignores any fields that aren't specified in the field mask, leaving them with their current values. Example: ``` resource = request.get('/resource/my-id').json() resource['my_field'] = 'new-value' request.patch('/resource/my-id?update_mask=my_field', data=json.dumps(resource)) ``` ## Versioning and Endpoint Lifecycle - API versioning is not synchronized to specific releases of the Apache Airflow. - APIs are designed to be backward compatible. - Any changes to the API will first go through a deprecation phase. # Trying the API You can use a third party client, such as [curl](https://curl.haxx.se/), [HTTPie](https://httpie.org/), [Postman](https://www.postman.com/) or [the Insomnia rest client](https:

HTTP Basic73 endpoints

Sakari

Messaging

# Introduction Welcome to the documentation for the Sakari Messaging REST API. Sakari provides an advanced platform to drive large scale customized SMS communication REST is a web-service protocol that lends itself to rapid development by using everyday HTTP and JSON technology. To find out more about our product offering, please visit [https://sakari.io](https://sakari.io). # Quickstart For your convenience we have created a quickstart guide to get you up and running in 5 minutes. [https://sakari.io/blog/sakari-api-quickstart](https://sakari.io/blog/sakari-api-quickstart) # PostMan Collection We've created a simple set of examples using [PostMan](https://www.getpostman.com/) Simply click below to import these. You will need to setup three environment variables in PostMan - AccountId, ClientId and ClientSecret. Check out our PostMan blog post for more information [![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/d616e273edc916a7a6eb) # Finding your client id, client secret and account id To authenticate against the API's you will need three key pieces of data - client id - client secret - account id To retrieve these, simply login into [https://hub.sakari.io](https://hub.sakari.io) and click on the "cog" in the top right corner. In the popup dialog at the bottom you should see your API credentials and account id. If these are not visible you will need to click on "Request Credentials" # Versioning With any breaking changes we will introduce a new version of the API. The latest version is v1. The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break. # Testing There are numerous tools available for testing the API's. We will include examples using curl and the client SDKs that we have created. If you would like to see an SDK in a language not currently available, please let us know. # Throttling / Limits Our API's have been specifically designed to support bulk messaging in a single API call. We therefore impose limits on the frequency of calling the APIs to prevent abuse or runaway processes. If you feel you need a higher limit, please contact us. If you hit the limit you will get a 429 error code returned from our servers # Errors The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format: ``` { "success": false, "error": { "code": "CONT-001", "message": "Invalid mobile number" } } ``` # Pagination For performance, most GET calls return a subset of data. This data is paginated for easy access. Most APIs which return collections of data will return a pagination object as such: ``` { "pagination": { "offset": 0, "limit": 10 "totalCount": 21 } } ``` When making calls to the API, you can adjust the slice of data returned using query parameters such as: `` https://api.sakari.io/v1/accounts/123/contacts?offset=20&limit=25 `` This will return 25 contacts with an offset of 20.

OAuth26 endpoints

SIGNL4 API

Messaging

<p>Use our API for systems integration or to build your own use cases. Sample scenarios include but are not limited to:</p><ul><li>2-way integration: Triggering of Signls and updates in the third party systems when alert state changes occur</li><li>Retrieving alarms for logging purposes</li><li>Calendar integrations: Creation and management of on-call duties</li><li>Punch users in and out based on external calendars</li><li>etc.</li></ul><p>AUTHENTICATION<br>Using the API requires an API key, which you can generate in the SIGNL4 portal under 'Developers'.<br>This key must then be specified in a special header in every HTTP request.<br>This header is called <b style='color:#F8B41F'>X-S4-Api-Key</b>.<br><br>The base URL of the API is <a rel='noopener noreferrer' target='_blank' href='https://connect.signl4.com/api/'>https://connect.signl4.com/api/</a>.<br>Copyright © Derdack GmbH<br></p>

OAuth101 endpoints

The Mercure protocol

Messaging

[Mercure](https://mercure.rocks) is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way.

API key5 endpoints

Listed from APIs.guru (CC0).