Passer au contenu principal
Ce guide présente les concepts clés nécessaires pour intégrer les points de terminaison de recherche d’utilisateurs à votre application.

Authentification

Tous les endpoints de X API v2 nécessitent une authentification. Choisissez la méthode la mieux adaptée à votre cas d’usage :
MéthodeIdéale pourPeut accéder aux métriques privées ?
OAuth 2.0 App-OnlyServeur-à-serveur, données publiquesNon
OAuth 2.0 Authorization Code with PKCEApps destinées aux utilisateurs finauxOui (pour les données de l’utilisateur autorisé)
OAuth 1.0a User ContextAnciennes intégrationsOui (pour les données de l’utilisateur autorisé)

Authentification App-only

Pour les données publiques d’utilisateurs, utilisez un jeton Bearer :
cURL
curl "https://api.x.com/2/users/by/username/XDevelopers" \
  -H "Authorization: Bearer $BEARER_TOKEN"

Authentification en contexte utilisateur

Requise pour le point de terminaison de l’utilisateur authentifié (/2/users/me) :
cURL
curl "https://api.x.com/2/users/me" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"
Le point de terminaison /2/users/me ne fonctionne qu’avec l’authentification en contexte utilisateur. Les jetons App-Only renverront une erreur.

Champs et expansions

L’API X v2 renvoie par défaut un ensemble minimal de données. Utilisez fields et expansions pour obtenir exactement ce dont vous avez besoin.

Réponse par défaut

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

Champs disponibles

ChampDescription
created_atHorodatage de création du compte
descriptionBio de l’utilisateur
entitiesURL analysées dans la bio
locationLieu défini par l’utilisateur
pinned_tweet_idID de la Publication épinglée
profile_image_urlURL de l’avatar
protectedIndique si le compte est protégé
public_metricsNombre d’abonnés / d’abonnements
urlURL du site Web
verifiedStatut de vérification
withheldInformations relatives à la restriction de diffusion
ChampDescription
created_atHorodatage de création de la Publication
textContenu de la Publication
public_metricsNombre d’engagements
entitiesHashtags, mentions, URL

Exemple avec des champs

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"

Réponse avec 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": "Bienvenue sur la plateforme de développement X !",
        "created_at": "2024-01-15T10:00:00.000Z"
      }
    ]
  }
}

Guide des champs et des expansions

En savoir plus sur la personnalisation des réponses

Recherches groupées

Recherchez plusieurs utilisateurs en une seule requête :
cURL (par identifiants)
curl "https://api.x.com/2/users?ids=2244994945,783214,6253282&\
user.fields=username,verified" \
  -H "Authorization: Bearer $BEARER_TOKEN"
Les requêtes groupées sont limitées à 100 utilisateurs. Utilisez plusieurs requêtes pour des ensembles de données plus volumineux.

Gestion des erreurs

Erreurs courantes

StatutErreurSolution
400Requête invalideVérifiez le format des paramètres
401Non autoriséVérifiez vos informations d’authentification
403Accès interditVérifiez les autorisations de l’App
404IntrouvableL’utilisateur n’existe pas ou a été suspendu
429Trop de requêtesPatientez puis réessayez (voir limites de taux)

Utilisateurs suspendus ou supprimés

Si un utilisateur est suspendu ou supprimé :
  • La recherche d’un seul utilisateur renvoie un 404
  • La recherche de plusieurs utilisateurs omet cet utilisateur des résultats et inclut un tableau 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]."
    }
  ]
}

Utilisateurs protégés

Pour les comptes protégés que vous ne suivez pas :
  • Les informations de base (id, nom, nom d’utilisateur) sont disponibles
  • Le contenu protégé (Publication épinglée) peut être restreint
  • protected: true indique l’état du compte

Bonnes pratiques

Regrouper les requêtes

Utilisez des endpoints multi-utilisateurs pour récupérer jusqu’à 100 comptes à la fois et réduire le nombre d’appels à l’API.

Ne demander que les champs nécessaires

Indiquez uniquement les champs dont vous avez besoin afin de minimiser la taille de la réponse.

Mettre en cache les données utilisateur

Mettez en cache les profils utilisateur en local pour réduire les requêtes répétées.

Gérer les erreurs de manière robuste

Vérifiez la présence d’erreurs partielles dans les réponses par lot.

Prochaines étapes

Référence de l’API

Documentation complète de l’endpoint

Dictionnaire des données

Tous les objets et champs disponibles

Exemples de code

Exemples de code prêts à l’emploi

Gestion des erreurs

Gérez les erreurs proprement