LATEST RELEASE v1.2.0

Documentación Oficial

Integra capacidades de comunicación masiva en tus aplicaciones. Envía SMS y realiza llamadas TTS (Text-to-Speech) mediante nuestra API RESTful de baja latencia.

Autenticación

Seguridad basada en API Keys

Todas las peticiones deben incluir tu API Key secreta. Puedes pasarla como parámetro de consulta (Query Param) en la URL.

Seguridad: Nunca compartas tu API Key en repositorios públicos ni en el código del lado del cliente (frontend) expuesto.

SMS API

Envío de mensajes de texto programáticos

GET https://api.devproperu.com/api/sms
Parámetros
Parámetro Tipo Requerido Descripción
key String Tu clave de API única (ej. e8b37c...).
to String Número destino con código de país (ej. +51987654321).
mensaje String Contenido del texto a enviar (UTF-8).
<?php
$url = "https://api.devproperu.com/api/sms";
$params = [
    'key'     => 'TU_API_KEY',
    'to'      => '+51999888777',
    'mensaje' => 'Hola mundo desde PHP!'
];

// Construir URL con query params
$requestUrl = $url . '?' . http_build_query($params);

// Ejecutar petición
$response = file_get_contents($requestUrl);
$data = json_decode($response, true);

print_r($data);
?>
import requests

url = "https://api.devproperu.com/api/sms"
payload = {
    "key": "TU_API_KEY",
    "to": "+51999888777",
    "mensaje": "Hola mundo desde Python!"
}

try:
    response = requests.get(url, params=payload)
    print(response.json())
except Exception as e:
    print(f"Error: {e}")
const sendSMS = async () => {
    const apiKey = "TU_API_KEY";
    const phone = "+51999888777";
    const msg = encodeURIComponent("Hola desde JavaScript");

    try {
        const response = await fetch(
            `https://api.devproperu.com/api/sms?key=${apiKey}&to=${phone}&mensaje=${msg}`
        );
        const data = await response.json();
        console.log(data);
    } catch (error) {
        console.error("Error enviando SMS:", error);
    }
};
// En tu servicio (SmsService.ts)
import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable({ providedIn: 'root' })
export class SmsService {
  private apiUrl = 'https://api.devproperu.com/api/sms';

  constructor(private http: HttpClient) {}

  sendSms(phone: string, message: string) {
    const params = new HttpParams()
      .set('key', 'TU_API_KEY')
      .set('to', phone)
      .set('mensaje', message);

    return this.http.get(this.apiUrl, { params });
  }
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class SmsSender {
    public static void main(String[] args) throws Exception {
        String apiKey = "TU_API_KEY";
        String to = "+51999888777";
        String msg = URLEncoder.encode("Hola desde Java 11+", StandardCharsets.UTF_8);

        String url = String.format("https://api.devproperu.com/api/sms?key=%s&to=%s&mensaje=%s", apiKey, to, msg);

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
// Requiere libcurl
#include <iostream>
#include <curl/curl.h>
#include <string>

// Callback para guardar la respuesta
size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl;
    CURLcode res;
    std::string readBuffer;
    
    // Construcción básica de URL (en prod usar librería de codificación)
    std::string url = "https://api.devproperu.com/api/sms?key=KEY&to=%2B51999&mensaje=HolaCpp";

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);

        std::cout << "Respuesta: " << readBuffer << std::endl;
    }
    return 0;
}

Llamadas API

Realiza llamadas automáticas con TTS (Text-to-Speech)

GET https://api.devproperu.com/api/call
Este endpoint utiliza los mismos parámetros que la API de SMS. El mensaje de texto será convertido a audio automáticamente.
<?php
$url = "https://api.devproperu.com/api/call";
$apiKey = "TU_API_KEY";
$to = "+51999888777";
$mensaje = "Alerta de sistema. Por favor revise su correo.";

$fullUrl = $url . "?key=" . $apiKey . "&to=" . urlencode($to) . "&mensaje=" . urlencode($mensaje);
$response = file_get_contents($fullUrl);

echo "Estado: " . $response;
?>
import requests

# Endpoint de llamadas
url = "https://api.devproperu.com/api/call"
params = {
    "key": "TU_API_KEY",
    "to": "+51999888777",
    "mensaje": "Hola, esta es una llamada de prueba desde Python."
}

res = requests.get(url, params=params)
print(res.json())
const makeCall = async () => {
    const params = new URLSearchParams({
        key: "TU_API_KEY",
        to: "+51999888777",
        mensaje: "Llamada de prueba desde React"
    });

    const res = await fetch(`https://api.devproperu.com/api/call?${params}`);
    const data = await res.json();
    console.log("Call status:", data);
};
@Injectable({ providedIn: 'root' })
export class CallService {
  constructor(private http: HttpClient) {}

  initiateCall(phone: string, text: string) {
    const url = 'https://api.devproperu.com/api/call';
    const params = new HttpParams()
        .set('key', 'KEY')
        .set('to', phone)
        .set('mensaje', text);

    return this.http.get(url, { params });
  }
}
// Usando Java 11 HttpClient
HttpClient client = HttpClient.newHttpClient();
String msg = URLEncoder.encode("Mensaje de voz urgente", StandardCharsets.UTF_8);
String url = "https://api.devproperu.com/api/call?key=KEY&to=+51999&mensaje=" + msg;

HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
      .thenApply(HttpResponse::body)
      .thenAccept(System.out::println);
// Mismo método con libcurl, cambiando la URL base
std::string url = "https://api.devproperu.com/api/call?key=KEY&to=%2B5199&mensaje=Voz";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
// ... ejecutar perform