Elija su método de acceso
Los agentes suelen necesitar dos cosas: datos para planificar y una forma de actuar. BroadNet los mantiene separados. El servidor de conocimiento responde preguntas sin necesidad de una cuenta; el envío siempre requiere su token.
Respuestas públicas de solo lectura con los mismos datos que este sitio web: cobertura, reglas del ID de remitente, listas de precios indicativas, regulaciones, recuento de segmentos, respuestas, casos de estudio, registro de cambios y estado.
- Autenticación:
- Ninguno
- Acceso:
- Solo lectura · 13 herramientas, 60 solicitudes por minuto por IP
- Ideal para:
- Preguntas de planificación, investigación y preventa, antes de que exista cualquier cuenta.
La API de mensajería de BroadNet expuesta como herramientas MCP. El agente envía y sigue mensajes con los permisos del token que usted le asigne.
- Autenticación:
- Bearer <token>
- Acceso:
- Actúa en su cuenta
- Ideal para:
- Asistentes y agentes que envían mensajes a petición de un usuario, con una persona confirmando cada envío.
API REST con token Bearer, una familia de rutas por canal, descrita en una especificación OpenAPI 3.1. Su agente decide; su código hace la llamada.
- Autenticación:
- Bearer <token>
- Acceso:
- Su código llama a la API · OpenAPI 3.1
- Ideal para:
- Agentes de producción donde su backend gestiona los reintentos, el registro y los límites.
El único SDK oficial, @broadnet/cpaas-sdk, generado a partir de la especificación OpenAPI. Los demás lenguajes llaman a la API REST o generan un cliente.
- Autenticación:
- Bearer <token>
- Acceso:
- Su código llama a la API · TypeScript / Node.js
- Ideal para:
- Frameworks de agentes Node.js y definiciones de herramientas con tipos completos.
Lo que un agente puede enviar
Se aplican las mismas reglas independientemente de la interfaz que utilice el agente: un ID de remitente registrado, un destinatario con consentimiento y un contenido adecuado para el canal.
Un mensaje por solicitud, o un trabajo masivo desde un archivo. La facturación es por segmento, por lo que los textos largos o no latinos cuestan más: cuéntelos primero.
- API REST
POST /sms/sendSms(JSON)POST /sms/sendbulk(multipart)- MCP de mensajería
- Herramientas de envío de SMS, por ejemplo
post_sms_send
Mensajes de formato libre dentro de la ventana de servicio de 24 horas; fuera de ella, solo plantillas aprobadas. Las plantillas se enumeran y se envían por nombre.
- API REST
POST /whatsapp/message/sendbulk(multipart)- MCP de mensajería
post_whatsapp_message_sendget_whatsapp_template_listpost_whatsapp_template_send
Su sistema genera el código; el agente lo envía en un SMS o en una plantilla de autenticación de WhatsApp. La API pública no tiene un endpoint de verificación independiente, por lo que la comprobación del código se queda en su sistema.
- API REST
POST /sms/sendSmscon el código en el mensaje- MCP de mensajería
- Las mismas herramientas de SMS y de plantillas de WhatsApp
El OTP por voz, las llamadas de texto a voz y el IVR se habilitan a través de su equipo de cuenta. La especificación OpenAPI pública y las herramientas MCP cubren los canales de mensajería, no las llamadas de voz. Para llamadas salientes con IA, consulte DialerBee.
- API REST
- Aprovisionado por cuenta
- MCP de mensajería
- Sin herramientas de voz
Un ejemplo práctico: un agente planifica un lanzamiento de OTP
Un usuario pide a un agente que planifique el envío de códigos de un solo uso a los EAU. El agente realiza cuatro llamadas a herramientas en el servidor de conocimiento público. Los resultados a continuación son la salida real del servidor, recortada a los campos que utiliza el agente.
Queremos enviar unos 50.000 códigos de inicio de sesión al mes a clientes en los EAU. ¿Qué necesitamos y cuánto costará?
- 1Llamada a herramienta
check_coverage¿Están cubiertos los EAU? ¿Con qué operadores?→{"country":"UAE"}Resultado (recortado){ "country": "UAE", "regulator": "TDRA (Telecommunications and Digital Government Regulatory Authority)", "channels": { "sms": "Live", "otp": "Live", "whatsapp": "Live", "rcs": "Available", "voice": "Live" }, "operators": [ { "name": "Etisalat / e&", "status": "Direct" }, { "name": "du", "status": "Direct" }, { "name": "Virgin Mobile", "status": "Operator-grade" } ] } - 2Llamada a herramienta
sender_id_rules¿Qué se necesita para un ID de remitente allí?→{"country":"ae"}Resultado (recortado){ "typicalLeadTime": "5-7 business days", "requirements": [ { "format": "Alphanumeric (Latin or Arabic), up to 11 chars. AD- prefix mandatory on promotional senders.", "preRegistration": "Required — one sender ID per legal entity per use case" } ], "marketingRules": { "quietHours": "TDRA's spam policy bars marketing text messages between 21:00 and 07:00 GST. Transactional OTP and alerts are 24/7." } } - 3Llamada a herramienta
count_sms_segments¿Cuántos segmentos ocupa el mensaje?→{"text":"Your MyShop code is 482913. It expires in 5 minutes. Never share it."}Resultado (recortado){ "encoding": "GSM-7", "units": 68, "segments": 1 } - 4Llamada a herramienta
estimate_price¿Cuál es el precio indicativo?→{"country":"UAE","channel":"sms","volume":50000}Resultado (recortado){ "country": "UAE", "unitPriceUsd": 0.0123, "unit": "per SMS segment", "estimatedMonthlyUsd": 615, "ratesReviewed": "2026-09-24", "note": "Indicative list rate, excluding taxes and sender-ID fees. Volume pricing available; a written quote confirms per-operator pricing." }
Los EAU tienen cobertura directa con los operadores (Etisalat / e& · du). Su ID de remitente requiere registro previo ante la TDRA, que suele tardar 5–7 días hábiles. Su mensaje con el código ocupa 1 segmento SMS. Con la tarifa de lista indicativa de 0,0123 US$ por segmento, 50.000 códigos suponen unos 615 US$ al mes, sin impuestos ni tasas de ID de remitente. Esto no es un presupuesto.
Siguiente paso: solicite acceso de prueba en broadnet.me/signup. Una vez que tenga un token, puedo enviar un código de prueba a su propio número verificado a través del servidor de mensajería. ¿Preparo ese mensaje para que lo confirme?
Generado con la salida real de las herramientas en cada despliegue
Copiar y pegar
Los ejemplos usan solo números ficticios. Lea el token desde una variable de entorno; nunca lo pegue en un chat ni en un archivo versionado.
{
"mcpServers": {
"broadnet-knowledge": {
"type": "http",
"url": "https://www.broadnet.me/mcp"
},
"broadnet": {
"type": "http",
"url": "https://mcp.broadnet.me/mcp",
"headers": {
"Authorization": "Bearer ${BROADNET_TOKEN}"
}
}
}
}curl -X POST https://www.broadnet.me/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"estimate_price",
"arguments":{"country":"UAE","channel":"sms","volume":50000}}}'curl -X POST https://api.broadnet.me/sms/sendSms \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "BroadNet",
"destinationNumber": "447700900123",
"message": "Your verification code is 482913",
"messageType": "TEXT"
}'
# 200 OK → response body is the message ID, e.g. 2603121407537573731// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";
const sms = new SMSSMSApi(
new Configuration({
basePath: "https://api.broadnet.me",
accessToken: process.env.BROADNET_TOKEN!,
}),
);
const res = await sms.smsSendsmsPost({
sMSSmsRequest: {
senderId: "BroadNet",
destinationNumber: "447700900123",
message: "Your verification code is 482913",
messageType: "TEXT",
},
});
console.log(res.data); // message ID# Send an approved WhatsApp template
curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-F batchId=0 \
-F campaignName=order-updates \
-F destinationNo=447700900123 \
-F messageType=TEMPLATE \
-F templateName=order_update \
-F templateLanguage=en_US \
-F bodyTemplateVariables=INV-400
# 200 OK → the response carries the batchId; per-recipient status
# (SUBMITTED → SENT → DELIVERED → READ) arrives on your webhook.Puntos de entrada legibles por máquina
Los agentes que navegan en lugar de conectarse pueden leerlo todo en archivos simples. Ninguno requiere inicio de sesión.
- llms.txt
/llms.txtEl índice del sitio para modelos de lenguaje, con una sección sobre el acceso y las restricciones de los agentes, además de un archivo por idioma.
- Habilidades del agente
/.well-known/agent-skills/index.jsonCinco runbooks SKILL.md: cobertura y precio, registro del ID de remitente, un primer SMS de prueba, acceso de prueba y conexión a los servidores MCP.
- Tarjeta de agente A2A
/.well-known/agent-card.jsonUna tarjeta Agent2Agent para las mismas herramientas de conocimiento de solo lectura, servidas a través de JSON-RPC en /a2a.
- Catálogo API
/.well-known/api-catalogUn conjunto de enlaces RFC 9727 que apunta a la especificación OpenAPI, la documentación API, ambos servidores MCP y la página de estado.
- Tarjeta del servidor MCP
/.well-known/mcp.jsonLa tarjeta del servidor que describe ambos servidores MCP, su transporte y autenticación.
- OpenAPI 3.1
/developers/openapi.yamlLa descripción completa de la API REST: descárguela o genere a partir de ella un cliente tipado.
- Versiones Markdown
/pricing/sms/uae.mdAñada .md a la mayoría de las URL de la página, o envíe Accept: text/markdown para obtener una copia limpia de la página en Markdown.
- Archivos de datos
/data/coverage.jsonCobertura, precios publicados y regulaciones de cada mercado como JSON (CSV para cobertura y precios).
- Estado en JSON
/status/api/v2/summary.jsonDisponibilidad medida del sitio web, la pasarela de la API y ambos endpoints MCP, en el formato de resumen Statuspage v2.
Reglas que un agente debe seguir
Un agente que envía mensajes actúa en nombre de su marca utilizando sus credenciales. Integre estas reglas en sus instrucciones y herramientas.
- Consentimiento previo al contenido
Envíe mensajes de marketing solo a los destinatarios que hayan dado su consentimiento y conserve el registro de dicha aceptación. La herramienta sender_id_rules devuelve las reglas de consentimiento de cada mercado.
- Respete las bajas
Los mensajes promocionales incluyen la palabra clave de baja del mercado, como STOP. Un agente nunca enviará mensajes a un número que haya solicitado la baja.
- Solo ID de remitente registrados
Muchos mercados requieren el registro previo de los ID de remitente alfanuméricos. El agente utiliza los ID de remitente aprobados en su cuenta, nunca uno inventado.
- Respete el horario restringido
Varios mercados prohíben el marketing por la noche. sender_id_rules devuelve el horario restringido con su fuente; los OTP y las alertas suelen permitirse a cualquier hora.
- Proteja los flujos de OTP contra el bombeo (pumping)
Los bots pueden activar envíos de OTP a números con los que obtienen beneficios. Limite la frecuencia de las solicitudes de código por número, IP y dispositivo, y bloquee los destinos a los que no presta servicio. MyOTP incluye estas protecciones de forma predeterminada.
- Una persona confirma cada envío
Solicite permiso al cliente antes de utilizar cualquier herramienta de envío, especialmente si se dirige a múltiples destinatarios, y habilite únicamente las herramientas que el agente necesite.
- Realice pruebas en su propio número
Con las credenciales de prueba, envíe mensajes únicamente a su propio número verificado. Los ejemplos y los prompts utilizan números ficticios.
- Mantenga el token fuera del chat
El token es una credencial de envío. Cárguelo desde una variable de entorno, nunca desde un prompt, y revóquelo si se filtra.
Relacionado
Detalle de ambos servidores: endpoints, autenticación, configuración del cliente y la demo.
Del acceso de prueba al primer SMS con curl o el TypeScript SDK.
El endpoint de envío de cada canal, la autenticación Bearer y el formato de error.
Cómo reintentar sin enviar un mensaje duplicado.
Codificación y recuento de segmentos para cualquier texto de mensaje.
Modelos de visión y de voz a texto en árabe para agentes de voz y de documentos.
Marcador saliente multilingüe con IA para centros de contacto.
Cómo funciona el fraude de OTP y las defensas para detenerlo.
Preguntas
¿Puede un agente de IA enviar mensajes SMS y WhatsApp a través de BroadNet?
Sí. Conéctelo al servidor de mensajería MCP en https://mcp.broadnet.me/mcp con su token BroadNet, o haga que su código llame a la API REST en https://api.broadnet.me. En ambos casos el agente actúa con los permisos de su token, así que exija que una persona confirme cada envío.
¿Necesita un agente una cuenta para consultar la cobertura o los precios?
No. El servidor de conocimiento MCP en https://www.broadnet.me/mcp es público y de solo lectura. Devuelve la cobertura, las reglas del ID de remitente, los precios de lista indicativos y las regulaciones utilizando los mismos datos que el sitio web. Los precios son tarifas de lista indicativas, no presupuestos.
¿Cómo envía un agente un código de un solo uso?
Su sistema genera el código y el agente lo envía en un SMS con POST /sms/sendSms, o en una plantilla de autenticación de WhatsApp. La API pública no tiene un endpoint de verificación independiente, por lo que la comprobación del código se queda en su sistema.
¿Puede un agente realizar llamadas de voz?
El OTP por voz, las llamadas de texto a voz y el IVR se habilitan a través de su equipo de cuenta de BroadNet. No están en la especificación OpenAPI pública ni en las herramientas MCP. DialerBee es el marcador saliente con IA de BroadNet para centros de contacto.
¿Cómo obtengo un token?
Solicite acceso de prueba en /signup. BroadNet responde en un día hábil con credenciales de prueba. No existe una clave instantánea de autoservicio.
Conecte su agente a BroadNet
Comience hoy mismo con el servidor de conocimiento público. Solicite acceso de prueba cuando su agente esté listo para realizar envíos.