SMS API for Developers
with Awesome Support

Reliable, scalable and transactional SMS to integrate easily into any application.

Developer API

A Developer's Dream

The FireText SMS API will give you the tools you need to send & receive SMS text messages, add new contacts and manage your account. You can connect into our SMS API using a simple HTTP POST. We've made it very easy to connect with us.

What the SMS API can do

We've packed our API with some powerful, yet simple tools to maximise your development:

We've provided full documentation and a Software Development Kit (SDK) to get you started.

Try Texting Out

Intelligent SMS API & friendly experts on hand.

We've put some code examples below in a number of different languages.

# Prerequisite: install the requests module e.g. using pip or easy_install

import requests

api_key = "YOUR_API_KEY"
end_point = "sendsms"
url_args = {
    "apiKey": api_key,
    "to": "447700900000",
    "from": "Firetext",
    "message" : "FireText is excellent via Python3 too!"

def send_api_message(end_point, url_args):

    url = "" + end_point
    response =, params = url_args)
    return response.text

resp = send_api_message(end_point, url_args)
print (resp)
# Prerequisite: composer require firetext/php-sdk

use FireText\Api;
require 'vendor/autoload.php';

$apiKey = 'YOUR_API_KEY';

$client = new Api\Client(new Api\Credentials\ApiKey($apiKey));

$message = 'FireText is outstanding and really easy to use!';
$from = 'FireText';
$to = '07123456789';

$request = $client->request('SendSms', $message, $from, $to);

$response = $client->execute($request);
$result = $request->response($response);

if($result->isSuccessful()) {
    echo "Sent {$result->getCount()} messages".PHP_EOL;
} else {
    throw $result->getStatus()->getException();
using System;
using System.Net.Http;
using System.Collections.Generic;

*  Code designed to work with .net core 2.0+

namespace CSharpApiExample
    class CSharpApiExample
        private string apiKey;
	private string endPoint;
	private static readonly HttpClient client = new HttpClient();

	static void Main(string[] args)
	    CSharpApiExample smsSender = new CSharpApiExample();
	    smsSender.apiKey = "YOUR_API_KEY";
	    smsSender.endPoint = "sendsms";
	    Dictionary<string, string> urlArgsArray = new Dictionary<string, string>()
		{"apiKey", smsSender.apiKey},
		{"to", "07700900000"},
		{"from", "Firetext"},
		{"message", "Sending Firetext sms with c# is simple!"}
	    smsSender.sendApiMessage(smsSender.endPoint, urlArgsArray);
	    Console.WriteLine("Pending Response ...");

	private async void sendApiMessage(string endPoint, Dictionary<string, string> urlArgsArray)
	    var baseUrl = "" + endPoint;
	    var urlArgs = new FormUrlEncodedContent(urlArgsArray);
	    var response = await client.PostAsync(baseUrl, urlArgs);
	    var responseString = await response.Content.ReadAsStringAsync();
	    Console.WriteLine("Response:  ");
	    Console.WriteLine("Press any key to continue...");
// Prerequisite: install the request package e.g. npm install request

const request = require('request');
const apiKey = 'YOUR API KEY';
const sendApiMessage = function(endpoint, messageArgs, callback) {
        '' + endpoint,
        { form: messageArgs },

var endpoint = 'sendsms';
var urlArgs = {
    'apiKey' : apiKey,
    'to' : '447700900000',
    'from' : 'Firetext',
    'message' : 'Sending sms with Firetext and Node.js is a snap!'

sendApiMessage(endpoint, urlArgs, function(error, response, body){
    if (error) {
        return console.log(error);
# Important.  Ensure that your version of Ruby is using the latest installation of OpenSSL

require "net/http"
require "uri"

api_key = "YOUR_API_KEY"

def send_api_message(endpoint, url_args)
    uri = URI.parse(""+endpoint)
    http =, uri.port)
    http.use_ssl = true
    request =
    response = http.request(request)
    return response

data = send_api_message("sendsms",{
    "apiKey" => api_key,
    "to" => "447700900000",
    "from" => "Firetext",
    "message" => "Sending Firetext SMS with Ruby is crystal clear!"

puts data.body, ""
curl '' \

    -d apiKey='YOUR_API_KEY' \

    -d to='447000000000' \

    --data-urlencode 'message=Hello from FireText.' \

    -d from='FireText'
package main
import ("fmt"; "net/url"; "net/http"; "io/ioutil")

var api_key = "API_KEY_HERE"

func sendApiMessage(endpoint string, parameters url.Values) string {
    resp, _ := http.PostForm(""+endpoint, parameters)
    defer resp.Body.Close()
    body, _ := ioutil.ReadAll(resp.Body)
    return string(body)

func main() {
    endpoint := "sendsms"
    urlArgs := url.Values{
        "apiKey": {api_key},
        "to": {"447700900000"},
        "from": {"FireText"},
        "message": {"FireText is excellent via Go too!"},
    resp := sendApiMessage(endpoint, urlArgs)
package uk.firetext;

import java.util.*;

public class Main {
    public static final String API_KEY = "API_KEY_HERE";

    public static String sendApiMessage(String endpoint, Map urlArgs) throws Exception {
        URL url = new URL(""+endpoint);

        StringBuilder post = new StringBuilder();
        for (Map.Entry param : urlArgs.entrySet()) {
            if (post.length() != 0) {
            post.append(param.getKey()).append('=').append(URLEncoder.encode(param.getValue(), "UTF-8"));

        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

        StringBuilder response = new StringBuilder();
        for (int c; (c = >= 0;) {
            response.append((char) c);
        return response.toString();

    public static void main(String[] args) {
        String endpoint = "sendsms";
        Map urlArgs = new HashMap();
        urlArgs.put("apiKey", API_KEY);
        urlArgs.put("to", "447700900000");
        urlArgs.put("from", "FireText");
        urlArgs.put("message", "FireText is excellent via Java too!");

        try {
            String response = sendApiMessage(endpoint, urlArgs);
        } catch (Exception e) {
            throw new RuntimeException(e);

Reliable. Secure. Fast.

Flexible & Free

Your account is free forever, only pay for the credits you need when you need them.

Tier-1 Networks

We connect with only the highest quality, Tier-1 and UK direct connections to deliver your messages.


Super-quick message throughput to ensure campaigns are sent in an instant.

UK Data Centres

All of your data is hosted safely and securely in UK cloud hosting data centres.

Maximum Up-Time

Multiple redundancy systems in place across data centres & network connections.

Safe & Secure

We are ISO27001 certified to meet strict due diligence for security and redundancy.


Start sending SMS in no time...

Get started with testing in three simple steps.


Signing up is easy

Pop in a few basic details to get started with a free trial account - no contract or credit card required.


Await verification

As a trusted provider for the NHS and GOV, we manually verify every account to ensure a safe platform for all.


We'll set you up!

Your new account manager will email you, ready to chat about how you can get the best out of FireText.

Try Texting Out

Let's chat!

Our lovely SMS experts are always here on standby.


Email us at

More Awesome Features

Check 'em out or sign up and play for real.

Get started. No credit card required. Try Us Free