Saltar al contenido principal
La X API usa códigos de estado HTTP estándar. Las solicitudes satisfactorias devuelven códigos 2xx; los errores devuelven códigos 4xx o 5xx con detalles en el cuerpo de la respuesta.

Códigos de estado HTTP

Códigos de éxito

CódigoSignificadoDescripción
200OKSolicitud correcta
201CreadoRecurso creado (solicitudes POST)
204Sin contenidoÉxito sin cuerpo de respuesta (solicitudes DELETE)

Códigos de error del cliente

CódigoSignificadoCausas comunes
400Bad RequestJSON no válido, consulta mal formada, falta de parámetros obligatorios
401UnauthorizedCredenciales de autenticación no válidas o ausentes
403ForbiddenAutenticación válida, pero sin permisos para este recurso o acción
404Not FoundEl recurso no existe o se ha eliminado
409ConflictEl stream no tiene reglas (solo para el stream filtrado)
429Too Many RequestsLímite de frecuencia o de uso superado

Códigos de error del servidor

CodeMeaningWhat to do
500Error interno del servidorEspera y vuelve a intentarlo; consulta la página de estado
502Error de puerta de enlaceEspera y vuelve a intentarlo
503Servicio no disponibleX está sobrecargado; espera y vuelve a intentarlo
504Tiempo de espera de la puerta de enlace agotadoEspera y vuelve a intentarlo

Formato de respuesta de error

Las respuestas de error contienen detalles estructurados:
{
  "title": "Invalid Request",
  "detail": "The 'query' parameter is required.",
  "type": "https://api.x.com/2/problems/invalid-request"
}
CampoDescripción
typeURI que identifica el tipo de error
titleDescripción breve del error
detailExplicación específica para este error
Pueden aparecer campos adicionales según el tipo de error.

Tipos de error

TipoDescripción
about:blankError genérico (consulta el código de estado HTTP)
.../invalid-requestSolicitud mal formada o parámetros no válidos
.../resource-not-foundLa Publicación, el usuario u otro recurso no existe
.../not-authorized-for-resourceSin acceso al contenido privado/protegido
.../client-forbiddenApp no inscrita o sin el acceso requerido
.../usage-cappedLímite de uso superado
.../rate-limit-exceededLímite de frecuencia superado
.../streaming-connectionProblema de conexión de streaming
.../rule-capDemasiadas reglas de stream filtrado
.../invalid-rulesError de sintaxis en la regla
.../duplicate-rulesLa regla ya existe

Errores parciales

Algunas solicitudes pueden completarse solo parcialmente. Una respuesta 200 puede incluir tanto data como errors:
{
  "data": [
    {"id": "123", "text": "Hello"}
  ],
  "errors": [
    {
      "resource_id": "456",
      "resource_type": "tweet",
      "title": "Not Found Error",
      "detail": "Could not find tweet with id: [456].",
      "type": "https://api.x.com/2/problems/resource-not-found"
    }
  ]
}
Esto sucede cuando se solicitan varios recursos y algunos no están disponibles.

Solución de problemas comunes

Verifica tu autenticación:
  • Verifica que estés usando el método de autenticación correcto para el endpoint
  • Asegúrate de que las credenciales no se hayan regenerado
  • Comprueba el formato del encabezado Authorization
  • Para OAuth 1.0a, verifica el cálculo de la firma
Guía de autenticación →
Verifica tu acceso:
  • Verifica que tu App tenga acceso a este endpoint
  • Algunos endpoints requieren una inscripción o aprobación específica
  • Los endpoints en contexto de usuario necesitan ámbitos de OAuth apropiados
  • El recurso puede ser privado o estar protegido
Límite de tasa alcanzado:
  • Consulta el encabezado x-rate-limit-reset para saber cuándo reintentar
  • Implementa backoff exponencial
  • Considera almacenar en caché las respuestas
  • Distribuye las solicitudes a lo largo de la ventana de tiempo
Guía de límites de tasa →
Corrige tu solicitud:
  • Valida la sintaxis JSON
  • Comprueba si faltan parámetros obligatorios
  • Verifica los tipos de los parámetros (cadenas frente a números)
  • Escapa los caracteres especiales en las consultas
Comprueba estos factores:
  • Las Publicaciones de cuentas protegidas solo son visibles con autorización
  • Las Publicaciones eliminadas devuelven 404
  • Algunas Publicaciones no están disponibles en ciertas regiones
  • Verifica que la sintaxis de la consulta de búsqueda sea correcta
Gestiona la reconexión:
  • Implementa reconexión automática con backoff
  • Usa las funciones de recuperación para los datos perdidos
  • Comprueba si hay desconexiones por búfer lleno (el Client no consume lo suficientemente rápido)
  • Verifica que exista al menos una regla de stream
Guía de streaming →

Encabezados de límite de frecuencia

Todas las respuestas incluyen información sobre los límites de frecuencia:
x-rate-limit-limit: 900
x-rate-limit-remaining: 847
x-rate-limit-reset: 1705420800
HeaderDescription
x-rate-limit-limitMáximo de solicitudes en la ventana actual
x-rate-limit-remainingSolicitudes restantes
x-rate-limit-resetMarca de tiempo Unix en la que la ventana se restablece

Mejores prácticas

Comprueba los códigos de estado

Siempre comprueba el código de estado HTTP antes de procesar el cuerpo de la respuesta.

Gestiona errores parciales

Comprueba el array errors incluso en respuestas 200.

Implementa lógica de reintentos

Utiliza backoff exponencial para errores 429 y 5xx.

Registra los detalles de la solicitud

Incluye el ID de la solicitud y la marca de tiempo para facilitar la depuración.

Obtener ayuda

Cuando publiques preguntas sobre errores, incluye:
  • La URL del endpoint de la API
  • Encabezados de la solicitud (oculta las credenciales)
  • Respuesta de error completa
  • Lo que esperabas que ocurriera
  • Pasos que ya has probado

Foro de desarrolladores

Haz preguntas y busca soluciones.

Estado de la API

Comprueba si hay incidencias conocidas.