httpSMS
  • Introduction
    • Getting Started
  • Webhooks
    • Introduction
    • Events
  • Features
    • Phone API Keys
    • Control SMS Send Rate
Powered by GitBook
On this page

Was this helpful?

  1. Introduction

Getting Started

httpSMS is an open-source service that converts your Android phone into an SMS Gateway so you can send and receive SMS messages using an intuitive HTTP API with support for end-to-end encryption.

NextIntroduction

Last updated 25 days ago

Was this helpful?

Authentication

API requests to are authenticated using API keys in the x-api-key header. Any request that doesn't include an API key will return a 401 (Unauthorized) response.

You can get your API key from the dashboard at

Install the Android App

To send and receive SMS messages using your android phone, you will need to on your phone so it can be triggered to send an SMS message when you make a request to the HTTP SMS API.

Android App 👉

Send an SMS

To send an SMS message using an android phone, send an authenticated POST request to the endpoint.

You can also use the code samples below to send an SMS message using our API on your favorite programing language.

// initialize guzzle client https://github.com/guzzle/guzzle
$client = new GuzzleHttp\Client();

$apiKey = "Get API Key from https://httpsms.com/settings";

$res = $client->request('POST', 'https://api.httpsms.com/v1/messages/send', [
  'headers' => [
    'x-api-key' => $apiKey,
  ],
  'json'    => [
    'content' => 'This is a sample text message',
    'from'    => "+18005550199",
    'to'      => '+18005550100'
  ]
]);

echo $res->getBody(); 
let apiKey = "Get API Key from https://httpsms.com/settings";

fetch('https://api.httpsms.com/v1/messages/send', {
    method: 'POST',
    headers: {
        'x-api-key': apiKey,
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        "content": "This is a sample text message",
        "from": "+18005550199",
        "to": "+18005550100"
    })
})
.then(res => res.json())
.then((data) => console.log(data));
import requests
import json

api_key = "Get API Key from https://httpsms.com/settings"

url = 'https://api.httpsms.com/v1/messages/send'

headers = {
    'x-api-key': api_key,
    'Accept': 'application/json',
    'Content-Type': 'application/json'
}

payload = {
    "content": "This is a sample text message",
    "from": "+18005550199",
    "to": "+18005550100"
}

response = requests.post(url, headers=headers, data=json.dumps(payload))

print(response.json())
curl --location --request POST 'https://api.httpsms.com/v1/messages/send' \
--header 'x-api-key: Get API Key from https://httpsms.com/settings' \
--header 'Content-Type: application/json' \
--data-raw '{
    "from": "+18005550199",
    "to": "+18005550100",
    "content": "This is a sample text message"
}'
import "github.com/NdoleStudio/httpsms-go"

client := htpsms.New(htpsms.WithAPIKey(/* API Key from https://httpsms.com/settings */))

client.Messages.Send(context.Background(), &httpsms.MessageSendParams{
    Content: "This is a sample text message",
    From:    "+18005550199",
    To:      "+18005550100",
})
var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", ""/* Get API Key from https://httpsms.com/settings */);

var response = await client.PostAsync(
    "https://api.httpsms.com/v1/messages/send",
    new StringContent(
        JsonSerializer.Serialize(new {
            from = "+18005550199",
            To = "+18005550100",
            Content = "This is a sample text message",
        }),
        Encoding.UTF8,
        "application/json"
    )
);

Console.WriteLine(await response.Content.ReadAsStringAsync());
var client = HttpClient.newHttpClient();

var apiKey = "Get API Key from https://httpsms.com/settings";

JSONObject request = new JSONObject();
request.put("content", "This is a sample text message");
request.put("from", "+18005550199")
request.put("to", "+18005550100")

// create a request
var request = HttpRequest.newBuilder()
  .uri(URI.create("https://api.httpsms.com/v1/messages/send"))
  .header("accept", "application/json")
  .header("x-api-key", apiKey)
  .setEntity(new StringEntity(request.toString()))
  .POST()
  .build();

// use the client to send the request
var response = client.send(request, new JsonBodyHandler<>(APOD.class));

// the response:
System.out.println(response.body().get());

Install

The best way to interact with the httpSMS API is by using one of our official SDK client libraries:

npm install httpsms
# or
yarn install httpsms
# install the go package using the "go get" command
go get github.com/NdoleStudio/httpsms-go
httpSMS
https://httpsms.com/settings
download and install our android app
https://github.com/NdoleStudio/httpsms/releases/latest/download/HttpSms.apk
https://api.httpsms.com/v1/messages/send
  • Authentication
  • Install the Android App
  • Send an SMS
  • POSTSend a new SMS message
  • Install

Send a new SMS message

post

Add a new SMS message to be sent by the android phone

Authorizations
Body
contentstringRequiredExample: This is a sample text message
encryptedbooleanOptional

Encrypted is an optional parameter used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app

fromstringRequiredExample: +18005550199
request_idstringOptional

RequestID is an optional parameter used to track a request from the client's perspective

Example: 153554b5-ae44-44a0-8f4f-7bbac5657ad4
send_atstringOptional

SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.

Example: 2022-06-05T14:26:09.527976+03:00
tostringRequiredExample: +18005550100
Responses
200
OK
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
422
Unprocessable Entity
application/json
500
Internal Server Error
application/json
post
POST /v1/messages/send HTTP/1.1
Host: api.httpsms.com
x-api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 200

{
  "content": "This is a sample text message",
  "encrypted": false,
  "from": "+18005550199",
  "request_id": "153554b5-ae44-44a0-8f4f-7bbac5657ad4",
  "send_at": "2022-06-05T14:26:09.527976+03:00",
  "to": "+18005550100"
}
{
  "data": {
    "can_be_polled": false,
    "contact": "+18005550100",
    "content": "This is a sample text message",
    "created_at": "2022-06-05T14:26:02.302718+03:00",
    "delivered_at": "2022-06-05T14:26:09.527976+03:00",
    "encrypted": false,
    "expired_at": "2022-06-05T14:26:09.527976+03:00",
    "failed_at": "2022-06-05T14:26:09.527976+03:00",
    "failure_reason": "UNKNOWN",
    "id": "32343a19-da5e-4b1b-a767-3298a73703cb",
    "last_attempted_at": "2022-06-05T14:26:09.527976+03:00",
    "max_send_attempts": 1,
    "order_timestamp": "2022-06-05T14:26:09.527976+03:00",
    "owner": "+18005550199",
    "received_at": "2022-06-05T14:26:09.527976+03:00",
    "request_id": "153554b5-ae44-44a0-8f4f-7bbac5657ad4",
    "request_received_at": "2022-06-05T14:26:01.520828+03:00",
    "scheduled_at": "2022-06-05T14:26:09.527976+03:00",
    "scheduled_send_time": "2022-06-05T14:26:09.527976+03:00",
    "send_attempt_count": 0,
    "send_time": 133414,
    "sent_at": "2022-06-05T14:26:09.527976+03:00",
    "sim": "DEFAULT",
    "status": "pending",
    "type": "mobile-terminated",
    "updated_at": "2022-06-05T14:26:10.303278+03:00",
    "user_id": "WB7DRDWrJZRGbYrv2CKGkqbzvqdC"
  },
  "message": "Request handled successfully",
  "status": "success"
}