Abre em uma nova aba
Novo
Servidor MCP de SMS: Permita que seu agente de IA envie SMS e mensagens de voz
Saiba mais
SMS API REST · Versão 2

SMS API para
desenvolvedores.

SMS, mensagens de voz e códigos de verificação via REST

A SMS API da LOX24 conecta seu aplicativo a 880 redes móveis em todo o mundo. Por meio de uma interface REST com JSON, você envia SMS e mensagens de voz, recebe respostas por webhook e envia códigos de verificação, com operação exclusivamente em servidores na Europa.

  • REST + JSON
  • 99,9% de disponibilidade
  • Webhooks
  • Servidor na Europa
Os principais dados
REST · HTTP · MAIL · SOAP · KANNEL
O que é uma SMS API?

O que é uma SMS API?

Uma SMS API é uma interface de programação pela qual um software envia e recebe SMS automaticamente. Seu aplicativo envia uma requisição HTTP com o destinatário e o texto, e o provedor entrega a mensagem à rede móvel por meio do seu gateway de SMS. Você recebe uma confirmação e, mais tarde, um delivery report. Com a SMS API da LOX24, você também controla remetente, horário de envio, conjunto de caracteres e síntese de voz para cada mensagem.
02 · RECURSOS

Quais recursos a SMS API oferece?

Nossa SMS API permite o envio em massa de mensagens de texto, a criação de mensagens personalizadas, o recebimento automático de respostas e o acompanhamento de delivery reports. Segurança e proteção de dados são nossa maior prioridade.
03 · INTEGRAÇÃO

Quão simples é integrar a SMS API?

Nossa SMS API permite uma integração simples e rápida aos seus sistemas e aplicativos existentes. Oferecemos uma documentação clara e multilíngue, com exemplos de código, e suporte técnico.
REDES
880 redes em todo o mundo
VAZÃO
10SMS / segundo
Compatível com todas as linguagens de programação modernas
curl
php
go
c#
python
java
javascript
ruby
curl
php
go
c#
python
java
javascript
ruby
Fundamentos

Autenticação e endpoints da SMS API da LOX24

 

Todas as requisições vão para https://api.lox24.eu e são autenticadas pelo header X-LOX24-AUTH-TOKEN . O token é composto pelo seu ID de usuário e por uma chave de API (:), que você cria na área do cliente. Requisições e respostas usam JSON. Após três tentativas de login malsucedidas em um minuto, a API bloqueia o IP solicitante por dez minutos.

URL BASEhttps://api.lox24.euHeader: X-LOX24-AUTH-TOKEN

Área
Endpoint
Finalidade
SMS

POST/sms

Enviar SMS ou mensagem de voz

POST/sms/dryrun

Testar o envio sem enviar

GET/sms

Consultar SMS enviados e status
Envio em massa

POST/bulks

Milhares de destinatários em uma requisição
Recebimento

GET/incomings

Consultar SMS recebidos
Verificação

POST/verify_codes

Código via Telegram, chamada de voz ou SMS
Contatos

/groups/phones/blocked_numbers

Gerencie listas de distribuição e listas de bloqueio
Campanhas

/campaigns/links

Links curtos com rastreamento de cliques
Conta

GET/me

Informações da conta e saldo

Todos os endpoints com exemplos estão disponíveis na Documentação da API. Carregue a especificação OpenAPI diretamente no Postman, Insomnia ou em um gerador de código.

Envie e receba SMS com apenas algumas linhas de código

Exemplos de código para curl, PHP, Python, Java, Go, C# e JavaScript

A LOX24 SMS API funciona com qualquer linguagem capaz de enviar requisições HTTP. Veja aqui o envio de um SMS em sete linguagens, cada uma com tratamento de erros por meio dos códigos de status HTTP.
#!/usr/bin/env bash
curl -X POST https://api.lox24.eu/sms \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -d '{
    "sender_id": "My Sender",
    "phone": "+49751234567",
    "source": 111,
    "service_code": "direct",
    "text": "Test message",
    "delivery_at": 1573724611,
    "is_unicode": true,
    "callback_data": "123456",
    "voice_lang": "DE"
}'
'My Sender',
    'text' => "First line\nSecond line",
    'service_code' => 'direct',
    'phone' => '+49751234567',
    'delivery_at' => 1573724611,
    'is_unicode' => true,
    'callback_data' => '123456',
    'voice_lang' => 'DE',
];

if(!$body = json_encode($body)) {
    die('JSON encoding error!');
}

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_URL => $uri,
    CURLOPT_POSTFIELDS => $body,
    CURLOPT_HTTPHEADER => [
        "X-LOX24-AUTH-TOKEN: {$token}",
        'Accept: application/json',
        'Content-Type: application/json',
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 20,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
]);

$response = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

$data = json_decode($response, JSON_OBJECT_AS_ARRAY);

if(201 === $code) {
    echo 'Success: response data = ' . var_export($data, true);
} else {
    echo "Error: code = {$code}, data = " . var_export($data, true);
}
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	const Method = "POST"
	const URL = "https://api.lox24.eu/sms"
	const Token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"

	payload := map[string]interface{}{
		"sender_id":     "My Sender",
		"phone":         "+49751234567",
		"source":        111,
		"service_code":  "direct",
		"text":          "Test message",
		"delivery_at":   1593724611,
		"is_unicode":    true,
		"callback_data": "123456",
		"voice_lang":    "DE",
	}

	jsonPayload, _ := json.Marshal(payload)
	client := &http.Client{}

	req, err := http.NewRequest(Method, URL, bytes.NewBuffer(jsonPayload))
	if err != nil {
		log.Fatal(err)
	}

	req.Header.Add("X-LOX24-AUTH-TOKEN", Token)
	req.Header.Add("Content-Type", "application/json")

	res, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		log.Fatal(err)
	}

	switch res.StatusCode {
	case 201:
		fmt.Println((string(body)))
	case 400:
		fmt.Println("Error: code = 400 - Invalid input")
	case 401:
		fmt.Println("Error: code = 401 - Client ID or API key isn't active or invalid!")
	case 403:
		fmt.Println("Error: code = 403 - Account isn't activated. Please wait or contact to support!")
	default:
		fmt.Printf("Error: code = %d\n", res.StatusCode)
	}
}
using Newtonsoft.Json;
using System;
using System.IO;
using System.Net;
using System.Text;

namespace Lox24.Api
{
    class client
    {
        static void Main()
        {
            string key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx";
            string url = "https://api.lox24.eu/sms";

            var data = new {
                sender_id = "My Sender",
                text = "Test message",
                service_code = "direct",
                phone = "+49751234567",
                delivery_at = 1573724611,
                is_unicode = true,
                callback_data = "123456",
                voice_lang = "DE"
            };

            string postdata = JsonConvert.SerializeObject(data);

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            httpWebRequest.ContentType = "application/json; charset=utf-8";
            httpWebRequest.Accept = "application/json";
            httpWebRequest.Method = "POST";
            httpWebRequest.Headers.Add("X-LOX24-AUTH-TOKEN", key);

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(postdata);
            }

            using (HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse())
            {
                if (resp.StatusCode == HttpStatusCode.Created)
                    Console.WriteLine("Success: sms resource created");
            }
        }
    }
}
import json
import requests

token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"
url = 'https://api.lox24.eu/sms'

data = {
    'sender_id': "My Sender",
    'text': "Test message",
    'service_code': "direct",
    'phone': "+49751234567",
    'delivery_at': 1573724611,
    'is_unicode': True,
    'callback_data': '123456',
    'voice_lang': 'DE'
}

headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'X-LOX24-AUTH-TOKEN': token,
}

try:
    # o timeout é de 100 segundos, o payload é convertido automaticamente para json
    res = requests.post(url, headers=headers, json=data, timeout=100)
    if res.status_code != 201:  # Created
        print("Error: Wrong response code on create sms")
        res.raise_for_status()
    else:
        print(f'Success: code = {res.status_code} - sms resource created')
        print("Response: ", json.dumps(res.json(), indent=4))
except requests.HTTPError:
    if res.status_code == 400:
        print("Error:400 Invalid input")
    elif res.status_code == 401:
        print("Error: code = 401 - Client ID or API key isn't active or invalid!")
    elif res.status_code == 402:
        print("Error:402 There are not enough funds on your account!")
    elif res.status_code == 403:
        print("Error: code = 403 - Account isn't activated!")
package eu.lox24.doc.sms;

import org.json.JSONObject;

import java.net.HttpURLConnection;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class PostSmsCollection {

    public static void main(String[] args) {

        var key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx";
        var url = "https://api.lox24.eu/sms";

        var json = new JSONObject();
        json.put("sender_id", "My Sender");
        json.put("text", "Test message");
        json.put("service_code", "direct");
        json.put("phone", "+49751234567");
        json.put("delivery_at", 1573724611);
        json.put("is_unicode", true);

        var httpRequest = HttpRequest.newBuilder(URI.create(url))
                .timeout(Duration.ofMillis(100000))
                .setHeader("Content-Type", "application/json; charset=utf-8")
                .setHeader("Accept", "application/json")
                .setHeader("X-LOX24-AUTH-TOKEN", key)
                .POST(HttpRequest.BodyPublishers.ofString(json.toString()))
                .build();

        var client = HttpClient.newBuilder()
                .version(HttpClient.Version.HTTP_1_1)
                .build();

        try {
            var httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
            if (httpResponse.statusCode() == HttpURLConnection.HTTP_CREATED) {
                System.out.println("Success: sms resource created");
                System.out.println(httpResponse.body());
            } else {
                System.out.println("Error: wrong response code " + httpResponse.statusCode());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
/*
 * Post sms
 */
const token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx";

var postObj = {
    sender_id: 'My Sender',
    text: 'Test message',
    service_code: 'direct',
    phone: '+49751234567',
    delivery_at: 1573724611,
    is_unicode: true,
    callback_data: "123456",
    voice_lang: "DE"
};

var postdata = JSON.stringify(postObj);

const https = require('https');
const options = {
    hostname: 'api.lox24.eu',
    path: '/sms',
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'Content-Length': postdata.length,
        'X-LOX24-AUTH-TOKEN': token
    }
}

const req = https.request(options, res => {
    if (res.statusCode == 201) {
        console.log("Success: code = 201 - sms resource created");
        res.on('data', d => { process.stdout.write(d) })
    }
    else if (res.statusCode == 400) console.log("Error: code = 400 - Invalid input");
    else if (res.statusCode == 401) console.log("Error: code = 401 - API key isn't active or invalid!");
    else if (res.statusCode == 402) console.log("Error: code = 402 - Not enough funds on your account!");
})

req.on('error', error => { console.error(error) })
req.write(postdata);
req.end();

PARÂMETROS DE POST /sms · JSON

Parâmetro
Tipo
Descrição
phone
string

Número do destinatário em formato internacional, p. ex. +49151…

text
string

Texto da mensagem. Textos mais longos são divididos em vários SMS.

sender_id
string

Remetente: texto com até 11 caracteres ou número de telefone com até 15 dígitos.

service_code
string

Tipo de envio, por exemplo direct (padrão) ou text2speech para mensagens de voz.

delivery_at
integer

Data e hora de envio como timestamp Unix, para SMS agendados.

is_unicode
boolean

true para emojis e caracteres especiais (UCS-2); caso contrário, conjunto de caracteres GSM.

callback_data
string

Identificador próprio, por exemplo, um número de pedido. Retorna no delivery report.

voice_lang
string

Idioma da mensagem de voz, por exemplo DE. Sem essa informação, a API detecta o idioma automaticamente (20 idiomas).

Todos os parâmetros, campos obrigatórios e formatos de resposta estão na Documentação da API.

Documentação da API
SMS API para o seu app

SMS API mesmo sem programador

Você quer aproveitar as vantagens da SMS API da LOX24 na sua empresa, mas não tem um programador para ajudar? Sem problema. Temos a solução para você. Com nossa integração com o Zapier, você conecta seu software à nossa API de forma simples e sem conhecimentos de programação. Você não precisa do apoio do seu departamento de TI.

  • Mais de 6.745 aplicativosCom nossa solução de SMS API, você se comunica pelo Zapier com mais de 6.745 aplicativos que utiliza no seu negócio.
  • SMS Gateway para o seu appDiversos aplicativos já oferecem suporte nativo ao envio de SMS com a LOX24, como Bitrix24, Theorg e Synology.
  • Sem conhecimentos de programaçãoVocê não precisa do apoio do seu departamento de TI.
Aplicações

O que você pode criar com a SMS API da LOX24

 

Uma API, muitos usos: de códigos de login a avisos de envio e campanhas com rastreamento de cliques, todas as funções usam a mesma interface, a mesma chave de API e o mesmo faturamento.

Autenticação de dois fatores

Envie códigos de confirmação para login, cadastro e pagamentos. Você define a ordem dos canais, por exemplo Telegram, depois chamada de voz e depois SMS. Se o código não chegar, a LOX24 tenta automaticamente o próximo canal.

POST /verify_codes

Notificações automáticas

Seu software informa clientes e colaboradores no momento em que algo acontece: pedido enviado, compromisso amanhã, servidor fora do ar. Com delivery_at você agenda mensagens com antecedência; com callback_data você associa cada delivery report à sua operação.

POST /sms

SMS em massa e campanhas

Envie milhares de SMS personalizados com uma única requisição, para listas de números ou grupos salvos. Links curtos com rastreamento de cliques mostram quem reagiu à sua oferta.

POST /bulks · /campaigns

Diálogos nos dois sentidos

Com um número virtual, os destinatários podem responder. Cada SMS recebido chega à sua aplicação por webhook, por exemplo como confirmação de compromisso, pedido de retorno ou resposta a um ticket. Cancelamentos por "STOP" são processados automaticamente.

GET /incomings · Webhook

Verificação de fraude antes do envio

Verifique pedidos e cadastros antes de disparar um SMS. A API antifraude detecta VPNs anônimas e dados suspeitos e retorna uma pontuação de risco. Isso protege você contra fraudes e contra o caro SMS pumping.

API de verificação de fraude

SMS a partir de agentes de IA

Pelo servidor MCP da LOX24, assistentes de IA como Claude ou Cursor usam a API diretamente: enviar SMS e mensagens de voz, ler SMS recebidos, consultar o saldo. Para isso, você só precisa da sua chave de API.

Servidor MCP
Para desenvolvedores

O que mais a SMS API da LOX24 oferece

 

Além do envio, a SMS API da LOX24 oferece tudo o que uma integração precisa no dia a dia: webhooks, modo de teste, listas de bloqueio e consultas de preços e da conta.

Delivery reports por webhook
Para cada SMS, a LOX24 informa o status por webhook (sms.delivery) à sua aplicação, incluindo o seu callback_data. Se o seu servidor ficar brevemente inacessível, a LOX24 repete a entrega automaticamente.
SMS recebidos por webhook
As respostas ao seu número virtual chegam imediatamente ao seu aplicativo, com remetente, texto e data/hora. Como alternativa, consulte-as por meio de GET /incomings .
Envio de teste com dryrun
Com POST /sms/dryrun você testa sua integração sem enviar uma SMS real. A API responde como em produção e envia um delivery report simulado.
Cancelar SMS agendadas
Com delivery_at você agenda SMS com antecedência, por exemplo lembretes de compromissos. Se o compromisso for cancelado, basta cancelar via API a SMS ainda não enviada.
Listas de bloqueio
Com /blocked_numbers você define números que nunca mais devem receber SMS, por exemplo após um cancelamento de inscrição ou uma reclamação. O gateway os bloqueia automaticamente em cada envio.
Inscrições e cancelamentos automáticos
Quando um contato se inscreve ou cancela a inscrição por palavra-chave via SMS ou formulário, a LOX24 informa seu aplicativo por webhook. Assim, CRM e listas de distribuição ficam atualizados sem trabalho manual.
Links curtos com análise de cliques
Os links nas suas SMS são enviados como links curtos e rastreados. Via API, você consulta quais SMS foram clicadas e quantas vezes.

Preços e conta via API
Com /me/pricelist/{country} consulte seus preços atuais por país, por exemplo para calcular os custos antes de um envio. Faturas e pagamentos também podem ser consultados via API.

Proteção contra ataques
Após três tentativas de login malsucedidas em um minuto, a API bloqueia o IP solicitante por dez minutos (HTTP 429). Além disso, você pode restringir o acesso aos seus próprios servidores por meio da liberação de IPs.

FAQ

Perguntas frequentes sobre a SMS API da LOX24

Você envia em cada requisição o header X-LOX24-AUTH-TOKEN com o valor :. Você cria a chave de API na conta de cliente da LOX24. Além disso, é possível restringir o acesso aos seus servidores por bloqueio de IP.

 

Sim. A especificação completa da LOX24 API v2 está disponível em doc.lox24.eu/openapi-en.json. Você pode importá-la no Postman ou no Insomnia, ou usá-la para gerar um cliente na sua linguagem.

 

Sim, por meio do endpoint POST /sms/dryrun. Ele valida sua requisição como em produção e aciona um delivery report simulado, sem que nenhuma SMS seja enviada.

 

No formato internacional com código do país, por exemplo +49151… para um número de celular alemão.

 

Você define service_code como text2speech. A LOX24 liga para o destinatário e lê o texto em voz alta. O idioma é definido com voice_lang , ou a API o detecta automaticamente a partir do texto (20 idiomas).

 

Por meio do endpoint /verify_codes. Nele você define uma ordem de canais, por exemplo primeiro Telegram, depois chamada de voz e, por último, SMS. Se o código não chegar em um canal, a LOX24 tenta automaticamente o próximo.

A API é uma interface REST enxuta; exemplos de código para sete linguagens e a especificação OpenAPI bastam para a integração. Para Symfony, há um Notifier Transport pronto.

Documentação completa da API

Na documentação da LOX24 API você encontra todos os endpoints, parâmetros e códigos de status com exemplos, além dos formatos de webhook para delivery reports e SMS recebidas. A especificação OpenAPI pode ser importada diretamente no Postman ou no Insomnia.
Documentação da APIespecificação OpenAPI

Crie agora sua chave de API e envie a primeira SMS

Cadastre-se gratuitamente, crie sua chave de API na conta de cliente e teste a integração com dryrun, com 50 centavos de crédito inicial para as primeiras SMS reais.

SEM TAXA BÁSICA
99,9% DE DISPONIBILIDADE
PROTEÇÃO DE DADOS EUROPEIA
SEGURANÇA SEM COMPROMISSOS