Skip to main content
La V2 Webhooks API permite a los desarrolladores recibir notificaciones de eventos en tiempo real desde cuentas de X mediante mensajes JSON basados en webhooks. Estas APIs te permiten registrar y gestionar webhooks, desarrollar aplicaciones consumidoras para procesar eventos y garantizar comunicación segura mediante challenge-response checks (CRC) y cabeceras de firma.

Descripción general

Entrega en tiempo real

Recibe eventos al instante cuando ocurren

Basado en push

Los datos se envían directamente a tu servidor — sin polling

Seguro

Validación CRC y verificación de firma

Confiable

Soporte de reintentos y recuperación

Productos que soportan webhooks

Estos son los productos que actualmente soportan la entrega de eventos vía webhook:

Cómo funcionan los webhooks

  1. Ocurre un evento — Un usuario publica, envía un DM, es seguido, etc.
  2. X envía una solicitud POST — Payload JSON del evento enviado a tu URL de webhook registrada
  3. Procesas el evento — Tu servidor maneja los datos del evento
  4. Responde con 200 OK — Devuelve un estado 200 para confirmar la recepción

Requisitos del webhook


Endpoints

Todos los endpoints requieren autenticación con OAuth2 App Only Bearer Token.

Seguridad

Las APIs basadas en webhooks de X proporcionan dos métodos para confirmar la seguridad de tu servidor de webhook:
  1. Challenge-Response Check (CRC) — X envía solicitudes GET periódicas a la URL de tu webhook. Respondes con un hash HMAC-SHA256 para demostrar que controlas el endpoint. Las verificaciones CRC ocurren en el registro inicial, cada hora y ante una revalidación manual.
  2. Verificación de firma — Cada solicitud POST de X incluye una cabecera x-twitter-webhooks-signature. Puedes verificar esta firma para confirmar que X es la fuente de los eventos entrantes.

Consulta los detalles completos de la implementación

Configuración de CRC paso a paso, ejemplos de código y verificación de firma

Validación de webhook

Se envía una verificación CRC a tu webhook en los siguientes casos:
  • Inmediatamente al crearse
  • Ante una solicitud PUT explícita (PUT /2/webhooks/{id})
  • Periódicamente cada 30 minutos, pero solo si el webhook no ha sido validado con éxito en las últimas 24 horas
Un webhook se marca como inválido cuando:
  • Devuelve una respuesta inválida a una verificación CRC
    • Devuelve un código de estado 2XX pero el response_token es incorrecto
    • Devuelve un código de estado 3XX
    • Provoca una excepción SSL
  • Experimenta errores transitorios persistentes de modo que no ha validado con éxito por más de 28 horas (incluye un período de gracia de 4 horas para problemas transitorios)
    • Las siguientes respuestas se tratan como errores transitorios:
      • Código de estado 4XX
      • Código de estado 5XX
      • Tiempo de espera de solicitud
      • Canal cerrado
Puedes verificar el estado válido/inválido de un webhook usando el endpoint GET /2/webhooks o mediante la toolbox en el Developer Console.

Primeros pasos

Requisitos previos
  • Una cuenta de desarrollador aprobada
  • Un Project y App en el Developer Console
  • Un endpoint HTTPS accesible públicamente
  • El consumer secret de tu app (API secret key) para la validación CRC

Inicio rápido

Configura tu webhook de principio a fin

Filtered Stream Webhooks

Recibe Posts filtrados vía webhook

Account Activity API

Recibe eventos de cuenta vía webhook

Apps de ejemplo

Ejemplos de código funcionales