Autenticación y llaves

Llaves pública y secreta, modos test y live, permisos, límites de velocidad y formato de las respuestas.

La API pública está en https://api.pushhub.daertec.com/v1. Cada petición lleva una llave en la cabecera:

Authorization: Bearer sk_live_…

Tipos de llave

Llave Dónde va Puede
Pública pk_test_… / pk_live_… Dentro de tu app (no es secreta) Registrar y actualizar dispositivos (devices:write) y reportar eventos (events:write). Nada más.
Secreta sk_test_… / sk_live_… Solo en tu servidor. Nunca en la app ni en el navegador Además: enviar (notifications:send), consultar envíos (notifications:read), listar dispositivos (devices:read) y gestionar topics (topics:write).

Al crear una llave puedes reducir sus permisos, limitarla a una app y, solo las secretas, a una lista de IPs (IP o rango CIDR). Usar una llave pública en un endpoint que exige secreta devuelve 1006.

Modo test y modo live

Con una llave test todo funciona igual, pero los envíos solo llegan a los dispositivos marcados como de prueba. Así integras sin riesgo de molestar a usuarios reales. Las llaves live envían a la audiencia real.

Llaves limitadas a una app

Si la llave no está limitada a una app, indica appId en la consulta o en el cuerpo. Si lo está, appId no hace falta.

Formato de respuesta

Todas las respuestas tienen la misma forma:

{ "errCode": 0, "errMsg": "", "data": { }, "meta": { "requestId": "01J…" } }
  • errCode: 0 es éxito. Cualquier otro valor es un error: consulta el catálogo de errores.
  • Los errores de validación agregan errors con el campo y el motivo.
  • meta.requestId identifica la petición: inclúyelo si escribes a soporte.

Límites de velocidad

Cada llave tiene un límite por minuto según el plan (120 en prueba, 300 en Básico, 1 200 en Pro). Cada respuesta lleva:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287

Al superarlo recibes 429 con errCode 3003 y Retry-After. Ver Límites y cuotas.

Idempotencia

En POST /v1/notifications envía una cabecera Idempotency-Key única por envío lógico (por ejemplo el id de tu pedido). Si repites la petición con la misma clave en 24 h, recibes la notificación original sin duplicarla. Si la repites con otro cuerpo: 4005.

Buenas prácticas de seguridad

  • Rota las llaves desde el panel: la anterior sigue funcionando 24 horas, para que cambies tu configuración sin cortes.
  • Limita las llaves secretas por IP.
  • Si una llave se filtra, revócala de inmediato.