Reportes
Reportes de envíos SMS
Generar Reporte de Envíos
POST /reports/generate
Detalle de Reporte
POST /reports/details
Generar Reporte de Envíos
POST https://api.smsmasivos.com.mx/reports/generate
Genera un reporte de todos los envíos dentro de un rango de fechas. La respuesta incluye todos los mensajes del período sin paginación. El endpoint tiene un límite de peticiones por cuenta (código
report_05 al excederlo); usa rangos amplios en lugar de consultas frecuentes.Parameters
start_datestringrequerido
Fecha de inicio del rango (
YYYY-MM-DD, zona horaria America/Mexico_City). No debe ser posterior a end_date.end_datestringrequerido
Fecha de fin del rango (
YYYY-MM-DD, zona horaria America/Mexico_City)sandboxintegeropcional
1 para consultar envíos de prueba (sandbox), 0 para envíos reales. Por defecto 0.curl -X POST https://api.smsmasivos.com.mx/reports/generate \
-H "Content-Type: application/json" \
-H "apikey: TU_API_KEY" \
-d '{
"start_date": "2026-07-01",
"end_date": "2026-07-15"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/reports/generate');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'apikey: ' . getenv('SMSMASIVOS_API_KEY')
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'start_date' => '2026-07-01',
'end_date' => '2026-07-15'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.post(
'https://api.smsmasivos.com.mx/reports/generate',
headers={
'Content-Type': 'application/json',
'apikey': 'TU_API_KEY'
},
json={
'start_date': '2026-07-01',
'end_date': '2026-07-15'
}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/reports/generate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
},
body: JSON.stringify({
start_date: '2026-07-01',
end_date: '2026-07-15'
})
});
const data = await response.json();
console.log(data);
const axios = require('axios');
const { data } = await axios.post(
'https://api.smsmasivos.com.mx/reports/generate',
{
start_date: '2026-07-01',
end_date: '2026-07-15'
},
{
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
}
}
);
console.log(data);
require 'net/http'
require 'json'
uri = URI('https://api.smsmasivos.com.mx/reports/generate')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, {
'Content-Type' => 'application/json',
'apikey' => ENV['SMSMASIVOS_API_KEY']
})
request.body = {
start_date: '2026-07-01',
end_date: '2026-07-15'
}.to_json
response = http.request(request)
puts JSON.parse(response.body)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("apikey", "TU_API_KEY");
var payload = new
{
start_date = "2026-07-01",
end_date = "2026-07-15"
};
var response = await client.PostAsJsonAsync(
"https://api.smsmasivos.com.mx/reports/generate",
payload
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();
String json = "{"
+ "\"start_date\":\"2026-07-01\","
+ "\"end_date\":\"2026-07-15\""
+ "}";
Request request = new Request.Builder()
.url("https://api.smsmasivos.com.mx/reports/generate")
.post(RequestBody.create(json, MediaType.parse("application/json")))
.addHeader("apikey", "TU_API_KEY")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
Response
{ "success": true, "message": "report_generated", "status": 200, "code": "report_04", "report": [ { "name": "Campaña Black Friday", "created_date": "2026-07-15 09:00:00", "reference": "abc123def456ghi789jkl", "number": "525512345678", "message": "Aprovecha nuestras ofertas de Black Friday!", "sent_date": "2026-07-15 09:00:01", "status": "0", "operator": "Telcel", "type": "SMS" } ] }
{ "success": false, "message": "Parámetros inválidos.", "status": 400, "code": "<string>" }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "auth_05" }
{ "success": false, "message": "La dirección IP no está autorizada para acceder.", "status": 403, "code": "auth_04" }
{ "success": false, "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).", "status": 429, "code": "rate_01" }
{ "success": false, "message": "Error interno del servidor. Contacta a soporte con el request_id.", "status": 500, "code": "server_01", "request_id": "550e8400-e29b-41d4-a716-446655440000" }
Detalle de Reporte
POST https://api.smsmasivos.com.mx/reports/details
Obtiene el desglose detallado de un reporte de campaña específico
Parameters
campaign_idintegerrequerido
ID de la campaña
sandboxintegeropcional
1 = consultar una campaña de envíos de prueba (sandbox)curl https://api.smsmasivos.com.mx/reports/details \ -d campaign_id=100 \ -d sandbox=100
const Reporte = await sms.reportes.create({ campaign_id: 100, sandbox: 100, })
Reporte = sms.reportes.create( campaign_id=100, sandbox=100, )
Reporte, err := client.Reportes.Create(ctx, &sms.ReporteParams{ CampaignId: sms.Int(100), Sandbox: sms.Int(100), })
Response
{ "success": true, "message": "report_generated", "status": 200, "code": "details_01", "details": { "effectiveness": 95.5, "totals": 1000, "delivered": 955, "failed": 30, "pending": 10, "not_charged": 5 } }
{ "success": false, "message": "Parámetros inválidos.", "status": 400, "code": "<string>" }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "auth_05" }
{ "success": false, "message": "La dirección IP no está autorizada para acceder.", "status": 403, "code": "auth_04" }
{ "success": false, "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).", "status": 429, "code": "rate_01" }
{ "success": false, "message": "Error interno del servidor. Contacta a soporte con el request_id.", "status": 500, "code": "server_01", "request_id": "550e8400-e29b-41d4-a716-446655440000" }
Objeto de respuesta
Estructura de la respuesta que devuelven estos endpoints.
Atributos
successboolean
—
messagestring
Mensaje de estado
statusinteger
—
codestring
Código de respuesta
reportarray<object>
—
Objeto de respuesta
{ "success": true, "message": "report_generated", "status": 200, "code": "report_04", "report": [] }