API de envío SMS http/GET
La API SMS http/GET está diseñada para técnicos y clientes que quieran conectar sus aplicaciones con la plataforma de mensajería SMS de LabsMobile.
Las funcionalidades de la API SMS http/GET son:
- El envío de mensajes SMS de forma individual o masivo en tiempo real
- Envío programado de mensajes SMS
- Envío de mensajes SMS Unicode, SMS Concatenados y SMS Certificados
- Consulta de saldo de créditos de una cuenta
Esta documentación explica detalladamente el proceso de integración y automatización de estas funcionalidades.
Para iniciar una integración con la API http/GET son imprescindibles los siguientes requisitos:
- Una cuenta de LabsMobile asociada con un nombre de usuario (correo electrónico de registro). Crea una cuenta aquí.
- Token API utilizado como contraseña y generado desde la sección Configuración API de tu cuenta.
- URL del endpoint de la API http/GET y los valores de los parámetros para realizar la petición.
Colección Postman API http/GET
Descargar
A tener en cuenta
RecomendaciónRecomendamos utilizar la API SMS http/POST porque incluye más funcionalidades, mejora la seguridad y el rendimiento.
La API http/GET de LabsMobile es una API REST que utiliza el protocolo HTTP GET con una URL base común para todas las peticiones: https://api.labsmobile.com/get
Es recomendable utilizar una URL que incluya el protocolo HTTPS
en cualquier versión de nuestra API.
Autenticación
En la API SMS http/GET existen dos posibles métodos de autenticación:
Basic Auth HTTP. Este tipo de autenticación consta de unas credenciales
username:tokenapi
que se incluyen en el encabezado de la petición HTTP codificado enbase64()
.
Ejemplo de valor de encabezado de autenticación:Authorization:
Basic 9yewaXic21vYmlsZqS5jmSk04enFTbUU= Parámetros GET. Las credenciales se envían en dos parámetros
username
ypassword
que se incluyen en la URL de la petición.
Ejemplo de autenticación con parámetros GET:?username=myusername&password=tokenapi
Importante Recomendamos el uso del método Basic Auth debido a que no es seguro transmitir credenciales en parámetros GET.
Configuración y filtros
A continuación se detallan variables de configuración y aspectos de seguridad importantes en una integración con la API de envío SMS http/GET:
- Dirección IP desde donde se enviarán los mensajes. Si se activa esta opción, sólo se admitirán peticiones de la lista de dirección IPs introducida. Esta funcionalidad es opcional, por defecto se aceptarán mensajes de cualquier IP.
- Remitente por defecto (por defecto
LABSMOBILE
). Sólo algunos operadores permiten la asignación dinámica y con valor alfanumérico del campo remitente. - Límite de mensajes diario, por defecto 100.000 sms/día.
- Límite de mensajes por batch, por defecto 10.000 sms/petición.
- Filtro por países, para que sólo se procesen mensajes de una lista de países.
- Filtro anti-duplicados, para evitar enviar mensajes iguales a un mismo destinatario.
Todos estos parámetros se pueden activar y modificar en la Configuración API y Preferencias de la cuenta.
Importante Se establece un máximo de 10 peticiones por segundo. Malos usos, abusos o un mayor volumen de peticiones provocarán un bloqueo temporal o permanente de la cuenta y/o dirección IP.
Recomendación Recomendamos activar las Recargas automáticas para que siempre existan créditos disponibles en la cuenta y no se interrumpa el servicio de envío SMS.
Envío de mensajes SMS
Petición para el envío de mensajes SMS de forma individual o masiva.
Con esta funcionalidad se pueden enviar mensajes en tiempo real o de forma programada para un día y hora específicos. Además, se pueden añadir otros parámetros como el remitente, etiqueta, identificador, modo simulado, etc.
ENDPOINT
GET https://api.labsmobile.com/get/send
- Ampliar todo
PARÁMETROS
Los parametros o datos se envían en variables http/GET en la propia URL de la petición. A continuación se describen los valores y funcionalidad de todos los parámetros:
username email obligatorio
Email de nombre de usuario que identifica la cuenta que realiza el envío.
Ejemplo:
&username=myUsername
password string obligatorio
Token API generado en la sección Configuración API de la cuenta.
Ejemplo:
&password=myToken
msisdn string | list obligatorio
Números de teléfono de los destinatarios a los que se envía el mensaje. Los números deben cumplir el formato internacional E.164 y separados por comas (",") si se incluyen más de un número de destino.
Ejemplo:
&msisdn=34609033162,34609362742
message string obligatorio
Texto del mensaje a enviar. Si se envían SMS estándar sólo son válidos los caracteres del alfabeto GSM 3.38 7bit . Se pueden enviar también SMS Concatenados, SMS Unicode y SMS Certificados con los correspondientes parámetros.
Ejemplo:
&message=Hello%20world%21
scheduled YYYY-MM-DD HH:MM:SS
Programación del envío para el día y hora indicados. Si no se especifica este campo, se enviará el mensaje de forma inmediata. Formato:
YYYY-MM-DD HH:MM:SS
.Importante: El valor de este campo se debe expresar en el uso horario GMT.
Ejemplo:
&scheduled=2024-12-03%2015%3A34%3A00%0A
sender string
Campo remitente del mensaje SMS. Puede tener un valor numérico (longitud máxima 16 dígitos) o alfanumérico (capacidad máxima 11 caracteres).
La asignación y personalización del remitente sólo está disponible en algunos países y operadores. En caso contrario, el remitente será un valor numérico (shortcode o longcode) estático.
Ejemplo:
&sender=MyBRAND
subid string
Identificador de la petición. Longitud máxima de 20 caracteres.
Si no se incluye un valor en el parámetro
subid
, la plataforma asignará un identificador único de 13 caracteres que se mostrará en el resultado de la petición.Ejemplo:
&subid=5aa3ea8028ce5
label string
Campo de información libre para identificar y asignar atributos. Longitud máxima de 255 caracteres.
Posibles usos: usuario, aplicación, agrupación o campaña, etc.
Ejemplo:
&label=A05-enero-2024
test 0 | 1
Activación del modo simulado de envío para pruebas y monitorización.
Si se asigna un valor
1
a este parámetro, los mensajes no se enviarán a los destinatarios y no se descontará ningún crédito. Los mensajes enviados en modo simulado se podrán consultar en el Histórico y otras herramientas.Ejemplo:
&test=1
ackurl url
Url a la que se enviarán las notificaciones de confirmación de entrega y error de los mensajes enviados.
Se puede establecer una URL por defecto en la Configuración API de la cuenta y en ese caso no es necesario incluir este parámetro.
Ejemplo:
&ackurl=http%3A%2F%2F
clientserver.com%2Freceive _ack clickurl url
Url a la que se enviarán las notificaciones de eventos de click en los enlaces de los mensajes enviados.
Se puede establecer una URL por defecto en la Configuración API de la cuenta y en ese caso no es necesario incluir este parámetro.
Ejemplo:
&clickurl=http%3A%2F%2F
clientserver.com% 2Freceive_click shortlink 0 | 1
Activación del reemplazo automático de enlaces.
Si su valor es
1
se reemplazarán todas las Urls del mensaje con un link corto (formato:labsmo.bi/XXXXXXX
o dominio personalizado).Se puede activar esta prestación de forma permanente para todos los mensajes en las Preferencias de la cuenta y en ese caso no es necesario incluir este parámetro.
Ejemplo:
&shortlink=1
long 0 | 1
Activación de los SMS Concatenados en esta petición.
Si este campo tiene valor
1
el mensaje puede contener más de 160 caracteres. Más información sobre Cómo calcular el precio de un SMS.Ejemplo:
&long=1
ucs2 0 | 1
Activación de los SMS Unicode en esta petición.
Si este campo tiene valor
1
el mensaje puede contener cualquier carácter, símbolo o emoji. La capacidad se reduce a 70 caracteres y se pueden enviar SMS concatenados y unicode. Más información sobre Cómo calcular el precio de un SMS.Ejemplo:
&ucs2=1
crt email
Envío de un SMS Certificado en esta petición.
Se enviará a la dirección que contenga este parámetro un e-mail con el documento PDF de certificación.
Ejemplo:
&crt=info%40client.es
crt_name string
Nombre de la entidad o compañía que envía el SMS certificado. Sólo tiene efecto si se envía conjuntamente con el parámetro
crt
.Ejemplo:
&crt_name=My%20Company%20SL
crt_id string
Identificador fiscal de la entidad o compañía que envía el SMS certificado. Sólo tiene efecto si se envía conjuntamente con el parámetro
crt
.Ejemplo:
&crt_id=ESB65213332
crt_lang string
Idioma del certificado. Sólo tiene efecto si se envía conjuntamente con el parámetro
crt
.Valores:
ES
EN
CA
FR
DE
IT
NL
PT
NL
DA
SV
PL
RO
EL
Ejemplo:
&crt_lang=EN
nofilter 0 | 1
Si este campo tiene valor
1
no se aplicará el filtro de mensajes duplicados.Se puede activar o desactivar esta prestación de forma permanente para todos los mensajes en las Preferencias de la cuenta y en ese caso no es necesario incluir este parámetro.
Ejemplo:
&nofilter=1
RESULTADO
El resultado de cualquier petición API SMS http/GET se obtiene en formato
XML
con el elemento raíz<response>
y con los siguientes elementos hijos:code integer
Código identificador que indica si se ha podido procesar la petición de forma exitosa o si se ha producido un error. Posibles valores en el apartado Errores.
Ejemplo:
<code>0</code>
message string
Descripción que indica si se ha podido procesar la petición de forma exitosa o si se ha producido un error. Posibles valores en el apartado Errores.
Ejemplo:
<message>The message element cannot be empty</message>
subid string
Identificador de la petición API.
Ejemplo:
<subid>6615686480e47</subid>
Envío individualcurl --location 'https://api.labsmobile.com/get/send.php?username=myUsername&password=myToken&msisdn=12015550123&message=Your%20verification%20code%20is%20123'
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; char *username = "myUsername"; char *token = "myToken"; char *msisdn = "12015550123"; char *message = "Your verification code is 123"; char *encoded_username = curl_easy_escape(curl, username, 0); char *encoded_message = curl_easy_escape(curl, message, 0); char url[500]; sprintf(url, "https://api.labsmobile.com/get/send.php?username=%s&password=%s&msisdn=%s&message=%s&test=1", encoded_username, token, msisdn, encoded_message); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } } curl_free(encoded_username); curl_free(encoded_message); curl_easy_cleanup(curl); return 0; }
using System; using RestSharp; namespace SendGetUni { class Program { static void MainSend(string[] args) { string username = "myUsername"; string token = "myToken"; string msisdn = "12015550123"; string message = "Your verification code is 123"; var client = new RestClient("https://api.labsmobile.com"); var request = new RestRequest("/get/send.php", Method.Get); request.AddParameter("username", username); request.AddParameter("password", token); request.AddParameter("msisdn", msisdn); request.AddParameter("message", message); RestResponse response = client.Execute(request); if (response.ErrorException != null) { Console.WriteLine("Error: " + response.ErrorException.Message); } else { Console.WriteLine("Response content: " + response.Content); } } } }
import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class App { public static void main(String[] args) throws UnirestException, UnsupportedEncodingException { String username = "myUsername"; String token = "myToken"; String message = "Your verification code is 123"; String[] msisdn = {"12015550123"}; String url = "https://api.labsmobile.com/get/send.php?username=" + URLEncoder.encode(username, "utf-8") + "&password=" + URLEncoder.encode(token, "utf-8") + "&message=" + URLEncoder.encode(message, "utf-8") + "&msisdn=" + URLEncoder.encode(String.join(",", msisdn), "utf-8"); Unirest.setTimeouts(0, 0); HttpResponse<String> response = Unirest.get(url).asString(); System.out.println("Status code: " + response.getBody()); } }
<?php $curl = curl_init(); $username = "myUsername"; $token = "myToken"; $msisdn = array(12015550123); $message = "Don't miss our Sale! Use code XXXX123 for 20% off."; $url = 'https://api.labsmobile.com/get/send.php?'; $url .= 'username='. urlencode($username) .'&'; $url .= 'password='. urlencode($token) .'&'; $url .= 'msisdn=' . urlencode(json_encode($msisdn)) .'&'; $url .= 'message=' . urlencode($message); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); echo $response;
import requests, urllib.parse data = { 'username':'myUsernmae', 'password': 'myToken', 'msisdn': '[12015550123]', 'message':'Your verification code is 123' } url = "https://api.labsmobile.com/get/send.php?"+urllib.parse.urlencode(data, doseq=True) payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text)
const axios = require('axios'); const username = "myUsername"; const token = "myToken"; const message = "Your verification code is 123"; const msisdns = ["12015550123"]; let config = { method: 'get', maxBodyLength: Infinity, url: `https://api.labsmobile.com/get/send.php?username=${encodeURIComponent(username)}&password=${encodeURIComponent(token)}&message=${encodeURIComponent(message)}&msisdn=${encodeURIComponent(JSON.stringify(msisdns))}` }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });
require "uri" require "net/http" url = URI("https://api.labsmobile.com/get/send.php") data = { 'username' => 'myUsername', 'password' => 'myToken', 'msisdn' => '[12015550123]', 'message' => 'Your verification code is 123' } url.query = URI.encode_www_form(data) https = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body
Envío múltiplecurl --location 'https://api.labsmobile.com/get/send.php?username=myUsername&password=myToken&msisdn=12015550123,12015550124,12015550125&message=Your%20verification%20code%20is%20123'
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; char *username = "myUsername"; char *token = "myToken"; char *msisdn = "[12015550123,12015550124,12015550125]"; char *message = "Don't miss our Sale! Use code XXXX123 for 20% off."; char *test = "1"; char *encoded_username = curl_easy_escape(curl, username, 0); char *encoded_message = curl_easy_escape(curl, message, 0); char *encoded_msisdn = curl_easy_escape(curl, msisdn, 0); char url[500]; sprintf(url, "https://api.labsmobile.com/get/send.php?username=%s&password=%s&msisdn=%s&message=%s&test=1", encoded_username, token, encoded_msisdn, encoded_message); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } } curl_free(encoded_username); curl_free(encoded_message); curl_free(encoded_msisdn); curl_easy_cleanup(curl); return 0; }
using System; using RestSharp; namespace SendGetMul { class Program { static void MainSend(string[] args) { string username = "myUsername"; string token = "myToken"; string msisdn = "[12015550123,12015550124,12015550125]"; string message = "Don't miss our Sale! Use code XXXX123 for 20% off."; var client = new RestClient("https://api.labsmobile.com"); var request = new RestRequest("/get/send.php", Method.Get); request.AddParameter("username", username); request.AddParameter("password", token); request.AddParameter("msisdn", msisdn); request.AddParameter("message", message); RestResponse response = client.Execute(request); if (response.ErrorException != null) { Console.WriteLine("Error: " + response.ErrorException.Message); } else { Console.WriteLine("Response content: " + response.Content); } } } }
import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class App { public static void main(String[] args) throws UnirestException, UnsupportedEncodingException { String username = "myUsername"; String token = "myToken"; String message = "Don't miss our Sale! Use code XXXX123 for 20% off."; String[] msisdn = {"12015550123,12015550124,12015550125"}; String url = "https://api.labsmobile.com/get/send.php?username=" + URLEncoder.encode(username, "utf-8") + "&password=" + URLEncoder.encode(token, "utf-8") + "&message=" + URLEncoder.encode(message, "utf-8") + "&msisdn=" + URLEncoder.encode(String.join(",", msisdn), "utf-8"); Unirest.setTimeouts(0, 0); HttpResponse<String> response = Unirest.get(url).asString(); System.out.println("Status code: " + response.getBody()); } }
<?php $curl = curl_init(); $username = "myUsername"; $token = "myToken"; $msisdn = array(12015550123,12015550124,12015550125); $message = "Don't miss our Sale! Use code XXXX123 for 20% off."; $url = 'https://api.labsmobile.com/get/send.php?'; $url .= 'username='. urlencode($username) .'&'; $url .= 'password='. urlencode($token) .'&'; $url .= 'msisdn=' . urlencode(json_encode($msisdn)) .'&'; $url .= 'message=' . urlencode($message); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); echo $response;
import requests, urllib.parse data = { 'username':'myUsername', 'password': 'myToken', 'msisdn': '[12015550123,12015550124,12015550125]', 'message':"Don't miss our Sale! Use code XXXX123 for 20% off." } url = "https://api.labsmobile.com/get/send.php?"+urllib.parse.urlencode(data, doseq=True) payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text)
const axios = require('axios'); const username = "myUsername"; const token = "myToken"; const message = "Don't miss our Sale! Use code XXXX123 for 20% off."; const msisdns = ["12015550123","12015550124","12015550125"]; let config = { method: 'get', maxBodyLength: Infinity, url: `https://api.labsmobile.com/get/send.php?username=${encodeURIComponent(username)}&password=${encodeURIComponent(token)}&message=${encodeURIComponent(message)}&msisdn=${encodeURIComponent(JSON.stringify(msisdns))}` }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });
require "uri" require "net/http" url = URI("https://api.labsmobile.com/get/send.php") data = { 'username' => 'myUsername', 'password' => 'myToken', 'msisdn': '[12015550123,12015550124,12015550125]', 'message' => "Don't miss our Sale! Use code XXXX123 for 20% off." } url.query = URI.encode_www_form(data) https = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body
Resultado positivo<?xml version="1.0" encoding="utf-8"?> <response> <code>0</code> <message>Message has been successfully sent</message> <subid>56fb9baa6bc22</subid> </response>
Resultado erróneo<?xml version="1.0" encoding="utf-8"?> <response> <subid>6615686480e47</subid> <code>21</code> <message>The message element cannot be empty</message> </response>
Consulta de saldo
Consulta sobre el número de créditos disponibles de una cuenta.
ENDPOINT
GET https://api.labsmobile.com/get/balance
PARÁMETROS
username email obligatorio
Email de nombre de usuario que identifica la cuenta que realiza el envío.
Ejemplo:
&username=myUsername
password string obligatorio
Token API generado en la sección Configuración API de la cuenta.
Ejemplo:
&password=myToken
RESULTADO
El resultado de cualquier petición API SMS http/GET se obtiene en formato
XML
con el elemento raíz<response>
y con el siguiente elemento hijo:messages float
Número de créditos disponibles en el saldo de la cuenta.
Ejemplo:
<messages>32.45</messages>
curl --location 'https://api.labsmobile.com/get/balance.php?username=myUsername&password=myToken'
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; char *username = "oscar.santa@labsmobile.com"; char *token = "HWzeyIS8AX1jPio7P5ZNxpPDktQ1Lnpj"; char *encoded_username = curl_easy_escape(curl, username, 0); char url[500]; sprintf(url, "https://api.labsmobile.com/get/balance.php?username=%s&password=%s", encoded_username, token); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } } curl_free(encoded_username); curl_easy_cleanup(curl); return 0; }
using System; using RestSharp; namespace BalanceGet { class Program { static void MainBalance(string[] args) { string username = "myUsername"; string token = "myToken"; var client = new RestClient("https://api.labsmobile.com"); var request = new RestRequest("/get/balance.php", Method.Get); request.AddParameter("username", username); request.AddParameter("password", token); RestResponse response = client.Execute(request); if (response.ErrorException != null) { Console.WriteLine("Error: " + response.ErrorException.Message); } else { Console.WriteLine("Response content: " + response.Content); } } } }
import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class App { public static void main(String[] args) throws UnirestException, UnsupportedEncodingException { String username = "oscar.santa@labsmobile.com"; String token = "HWzeyIS8AX1jPio7P5ZNxpPDktQ1Lnpj"; String url = "https://api.labsmobile.com/get/balance.php?username=" + URLEncoder.encode(username, "utf-8") + "&password=" + URLEncoder.encode(token, "utf-8"); Unirest.setTimeouts(0, 0); HttpResponse<String> response = Unirest.get(url).asString(); System.out.println("Status code: " + response.getBody()); } }
<?php $curl = curl_init(); $username = "myUsername"; $token = "myToken"; $url = 'https://api.labsmobile.com/get/balance.php?'; $url .= 'username='. urlencode($username) .'&'; $url .= 'password='. urlencode($token); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); echo $response;
import requests, urllib.parse data = { 'username':'myUsername', 'password': 'myToken' } url = "https://api.labsmobile.com/get/balance.php?"+urllib.parse.urlencode(data, doseq=True) print(url) payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text)
const axios = require('axios'); const username = "myUsername"; const token = "myToken"; let config = { method: 'get', maxBodyLength: Infinity, url: `https://api.labsmobile.com/get/balance.php?username=${encodeURIComponent(username)}&password=${encodeURIComponent(token)}` }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });
require "uri" require "net/http" url = URI("https://api.labsmobile.com/get/balance.php") data = { 'username' => 'myUsername', 'password' => 'myToken' } url.query = URI.encode_www_form(data) https = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body
<?xml version="1.0" encoding="utf-8"?> <response> <messages>9.956954285714286</messages> </response>
<html> <head> <title>403 Forbidden</title> </head> <body> <h1>403 Forbidden</h1> /body> </html>
Errores
A continuación se describen los códigos de error HTTP que puede devolver una petición a la API SMS http/GET.
Código HTTP | Descripción |
---|---|
200 OK | Petición procesada correctamente. |
400 Bad Request | Error en los parámetros de la petición. Se detalla y especifica el error en el código devuelto en el formato XML. |
401 Unauthorized | Error en las credenciales o método de autenticación. |
402 Payment Required | Error por falta de créditos en la cuenta. |
403 Forbidden | Petición bloqueada por el filtro IP o por infringir alguna política de uso de la plataforma. |
500 Internal Server Error | Error temporal o incidencia en el servicio |
Esta es la lista completa de códigos de respuesta en el formato XML:
Código XML | Descripción |
---|---|
0 | Message has been successfully sent |
10 | Missing XML data in request |
11 | Badly formed XML in request |
20 | The message element must be present in the request |
21 | The message element cannot be empty |
23 | There are no recipients |
24 | Too many recipients |
27 | This message contained one or more invalid character(s) |
28 | Subid is exceeding maximum length |
30 | There was an error while sending the message |
35 | The account has no enough credit for this sending |
39 | The value of the scheduled field is not a valid datetime format |
41 | Scheduled messages cannot be send in test mode |
Recursos de soporte
Recomendamos consultes y tengas en cuenta los siguientes recursos de soporte en tu integración:
- Descripción, manual y ejemplos de código de la API de envío SMS
- Guía técnica de un proceso de validación o autenticación OTP por SMS
- Todas las versiones y funcionalidades de la API de LabsMobile
- Tutorial primeros pasos de una integración API
- Crea una cuenta de prueba
- Recomendaciones y buenas prácticas en cualquier integración
- Plugins, módulos y extensiones
- ¿Necesitas ayuda? Contacta con nuestros técnicos