Saltar al contenido principal
Esta guía cubre los conceptos clave que necesitas conocer para integrar los endpoints de consulta de usuarios en tu aplicación.

Autenticación

Todos los endpoints de X API v2 requieren autenticación. Elige el método que mejor se adapte a tu caso de uso:
MétodoIdeal para¿Puede acceder a métricas privadas?
OAuth 2.0 App-OnlyServidor a servidor, datos públicosNo
OAuth 2.0 Authorization Code with PKCEApps de cara al usuarioSí (para los datos del usuario autorizado)
OAuth 1.0a User ContextIntegraciones heredadasSí (para los datos del usuario autorizado)

Autenticación solo con App

Para datos públicos de usuarios, usa un Bearer Token:
cURL
curl "https://api.x.com/2/users/by/username/XDevelopers" \
  -H "Authorization: Bearer $BEARER_TOKEN"

Autenticación de contexto de usuario

Requerida para el endpoint de usuario autenticado (/2/users/me):
cURL
curl "https://api.x.com/2/users/me" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"
El endpoint /2/users/me solo funciona con autenticación de contexto de usuario. Los tokens App-Only devolverán un error.

Campos y Expansions

La X API v2 devuelve una cantidad mínima de datos de forma predeterminada. Usa fields y expansions para solicitar exactamente lo que necesitas.

Respuesta predeterminada

{
  "data": {
    "id": "2244994945",
    "name": "X Developers",
    "username": "XDevelopers"
  }
}

Campos disponibles

CampoDescripción
created_atMarca temporal de creación de la cuenta
descriptionBiografía del usuario
entitiesURLs analizadas en la biografía
locationUbicación definida por el usuario
pinned_tweet_idid de la Publicación fijada
profile_image_urlURL del avatar
protectedIndica si la cuenta está protegida
public_metricsRecuentos de seguidores/seguidos
urlURL del sitio web
verifiedEstado de verificación
withheldInformación sobre retenciones
CampoDescripción
created_atMarca temporal de creación de la Publicación
textContenido de la Publicación
public_metricsRecuentos de interacción
entitiesHashtags, menciones, URLs

Ejemplo con campos

cURL
curl "https://api.x.com/2/users/by/username/XDevelopers?\
user.fields=created_at,description,public_metrics,verified&\
expansions=pinned_tweet_id&\
tweet.fields=created_at,public_metrics" \
  -H "Authorization: Bearer $BEARER_TOKEN"

Respuesta con Expansions

{
  "data": {
    "id": "2244994945",
    "name": "X Developers",
    "username": "XDevelopers",
    "created_at": "2013-12-14T04:35:55.000Z",
    "verified": true,
    "pinned_tweet_id": "1234567890",
    "public_metrics": {
      "followers_count": 583423,
      "following_count": 2048,
      "tweet_count": 14052
    }
  },
  "includes": {
    "tweets": [
      {
        "id": "1234567890",
        "text": "¡Bienvenido a la Plataforma de Desarrolladores de X!",
        "created_at": "2024-01-15T10:00:00.000Z"
      }
    ]
  }
}

Guía de campos y expansions

Más información sobre cómo personalizar las respuestas

Consultas por lotes

Consulta varios usuarios en una sola solicitud:
cURL (by IDs)
curl "https://api.x.com/2/users?ids=2244994945,783214,6253282&\
user.fields=username,verified" \
  -H "Authorization: Bearer $BEARER_TOKEN"
Las solicitudes por lotes están limitadas a 100 usuarios. Usa varias solicitudes para conjuntos de datos más grandes.

Gestión de errores

Errores comunes

EstadoErrorSolución
400Solicitud no válidaVerifica el formato de los parámetros
401No autorizadoVerifica las credenciales de autenticación
403ProhibidoVerifica los permisos de la App
404No encontradoEl usuario no existe o fue suspendido
429Demasiadas solicitudesEspera y vuelve a intentarlo (consulta los límites de tasa)

Usuarios suspendidos o eliminados

Si un usuario está suspendido o eliminado:
  • La consulta de un único usuario devuelve 404
  • La consulta de varios usuarios omite a ese usuario de los resultados y devuelve un array errors
{
  "data": [
    { "id": "2244994945", "username": "XDevelopers" }
  ],
  "errors": [
    {
      "resource_id": "1234567890",
      "resource_type": "user",
      "title": "Not Found Error",
      "detail": "Could not find user with id: [1234567890]."
    }
  ]
}

Usuarios protegidos

Para cuentas protegidas que no sigues:
  • La información básica (id, nombre, nombre de usuario) está disponible
  • El contenido protegido (Publicación fijada) puede estar restringido
  • protected: true indica el estado de la cuenta

Mejores prácticas

Solicitudes por lotes

Usa endpoints multiusuario para obtener hasta 100 usuarios a la vez y reducir las llamadas a la API.

Solicita solo los campos necesarios

Especifica solo los campos que necesitas para minimizar el tamaño de la respuesta.

Almacena en caché los datos de usuario

Almacena en caché los perfiles de usuario localmente para reducir solicitudes repetidas.

Gestiona los errores correctamente

Comprueba si hay errores parciales en las respuestas por lotes.

Próximos pasos

Referencia de la API

Documentación completa del endpoint

Diccionario de datos

Todos los objetos y campos disponibles

Código de ejemplo

Ejemplos de código funcionales

Gestión de errores

Gestiona los errores correctamente