Ir al contenido

API de mensajes

La API Message envía notificaciones transitorias de nivel superior. Úselo para alertas, mensajes de finalización, instantáneas de imágenes, notificaciones de precios y otro contenido que no necesite actualizaciones ni cierres posteriores.

POST /message

El cuerpo de la petición debe ser JSON y los campos desconocidos se rechazan. Si un Gateway privado habilita PUSHGO_TOKEN, incluya Authorization: Bearer <token>.

EncabezadoRequeridoDescripción
Content-Type: application/jsonSolicitar formato del cuerpo.
Authorization: Bearer <token>Dependiente del GatewaySe requiere solo cuando un Gateway privado habilita PUSHGO_TOKEN.
CampoTipoRequeridoDescripción
channel_idstringID de Channel de destino.
passwordstringContraseña Channel, normalmente de 8 a 128 caracteres.
titlestringTítulo Message, no debe estar vacío.
bodystringNoSe admite el cuerpo Message, Markdown.
op_idstringNoClave de idempotencia, 1-128 caracteres, letras/dígitos/_/:/-.
thing_idstringNoAsocie el mensaje con un Thing existente.
occurred_atnumberNoHora en que se produjo el mensaje, milisegundos Unix.
severitystringNocritical, high, normal, low; los valores desconocidos se normalizan a normal.
ttlnumberNoTiempo de vencimiento de milisegundos de Unix; El TTL del proveedor tiene un límite de alrededor de 28 días.
urlstringNoURL de destino opcional.
imagesstring[]NoHasta 32 URL de imágenes, con un máximo de 2048 caracteres cada una.
tagsstring[]NoHasta 32 etiquetas, con un máximo de 64 caracteres cada una, recortadas y deduplicadas.
ciphertextstringNoCarga útil de texto cifrado E2EE opcional.
metadataobjectNoValores-clave escalares personalizados; clave <= 64, valor <= 512.
severityNivel de interrupción APNsPrioridad FCM
criticalcriticalHIGH
hightime-sensitiveHIGH
normalactiveHIGH
lowpassiveNORMAL
Ventana de terminal
curl -X POST https://gateway.pushgo.dev/message \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Backup completed",
"body": "The daily NAS backup has finished.",
"severity": "normal"
}'

Si la alerta pertenece a una entidad persistente, pase thing_id.

{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"title": "Home NAS disk warning",
"body": "volume1 usage has reached 92%.",
"severity": "high",
"tags": ["nas", "disk"]
}
{
"success": true,
"data": {
"channel_id": "YOUR_CHANNEL_ID",
"op_id": "op-20260422-001",
"message_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"accepted": true
},
"error": null,
"error_code": null
}

success=true significa que Gateway procesó la petición. accepted=true significa que la petición entró en despacho; La visualización final aún depende de los servicios de inserción de la plataforma, el estado del dispositivo y los transportes privados.

EstadoRazón típica
400Falta campo obligatorio, campo desconocido, title vacío, op_id no válido.
401El Gateway privado requiere un token Bearer, pero el encabezado falta o es incorrecto.
404Channel no existe o las credenciales no coinciden.
413El cuerpo de la petición supera los 32 KB.
503Gateway no pudo entrar en despacho por completo; la respuesta puede incluir accepted=false.

Consulte Límites y errores para conocer los límites compartidos.

PushGo también proporciona puntos finales de compatibilidad ntfy, Bark y ServerChan para la migración. Su cobertura de campo es limitada; utilice /message nativo cuando necesite la semántica de thing_id, E2EE o PushGo completa. Consulte la Guía de migración.