Passer au contenu principal
Les Expansions vous permettent d’inclure des objets associés dans une seule réponse d’API. Au lieu d’effectuer plusieurs requêtes, récupérez une publication et son auteur, ses médias ou les publications référencées en un seul appel.

Comment fonctionnent les expansions

Lorsque vous demandez une expansion, l’API renvoie l’objet complet dans la section includes de la réponse :
curl "https://api.x.com/2/tweets/1234567890?expansions=author_id" \
  -H "Authorization: Bearer $TOKEN"
Réponse :
{
  "data": {
    "id": "1234567890",
    "text": "Hello world!",
    "author_id": "2244994945"
  },
  "includes": {
    "users": [{
      "id": "2244994945",
      "name": "X Developers",
      "username": "xdevelopers"
    }]
  }
}
Le author_id dans data référence l’objet utilisateur dans includes.

Expansions de publications

ExpansionReturnsUse case
author_idobjet UserObtenir les détails sur l’auteur de la publication
referenced_tweets.idobjet(s) PublicationObtenir les publications citées ou celles ayant reçu une réponse
referenced_tweets.id.author_idobjet(s) UserObtenir les auteurs des publications référencées
in_reply_to_user_idobjet UserObtenir l’utilisateur auquel il est répondu
attachments.media_keysobjet(s) MediaObtenir les images, les vidéos et les GIF
attachments.poll_idsobjet PollObtenir les options du sondage et les votes
geo.place_idobjet PlaceObtenir les détails du lieu
entities.mentions.usernameobjet(s) UserObtenir les utilisateurs mentionnés
edit_history_tweet_idsobjet(s) PublicationObtenir les versions précédentes des publications modifiées

Expansions utilisateur

ExpansionRenvoieCas d’utilisation
pinned_tweet_idObjet PublicationObtenir la publication épinglée de l’utilisateur

Expansions pour les Spaces

ExpansionRenvoieCas d’utilisation
creator_idObjet UserRécupérer le créateur du Space
host_idsObjet(s) UserRécupérer les hôtes du Space
speaker_idsObjet(s) UserRécupérer les intervenants du Space
invited_user_idsObjet(s) UserRécupérer les utilisateurs invités

Expansions pour les MD

ExpansionRenvoieCas d’utilisation
sender_idObjet UserRécupérer l’expéditeur du message
participant_idsObjet(s) UserRécupérer les participants à la conversation
attachments.media_keysObjet MediaRécupérer les médias joints
referenced_tweets.idObjet PublicationRécupérer la publication référencée

Expansions de Liste

ExpansionRenvoieCas d’utilisation
owner_idObjet UserObtenir le propriétaire de la Liste

Combinaison avec les champs

Les Expansions renvoient les champs par défaut de chaque objet. Pour obtenir des champs supplémentaires, combinez les expansions avec les paramètres de champs :
curl "https://api.x.com/2/tweets/1234567890?\
expansions=author_id,attachments.media_keys&\
user.fields=description,public_metrics&\
media.fields=url,alt_text" \
  -H "Authorization: Bearer $TOKEN"
Réponse :
{
  "data": {
    "id": "1234567890",
    "text": "Check out this image!",
    "author_id": "2244994945",
    "attachments": {
      "media_keys": ["3_1234567890"]
    }
  },
  "includes": {
    "users": [{
      "id": "2244994945",
      "name": "X Developers",
      "username": "xdevelopers",
      "description": "The voice of the X Developer Platform",
      "public_metrics": {
        "followers_count": 570842
      }
    }],
    "media": [{
      "media_key": "3_1234567890",
      "type": "photo",
      "url": "https://pbs.twimg.com/media/example.jpg",
      "alt_text": "Example image"
    }]
  }
}

Expansions multiples

Demandez plusieurs expansions en les fournissant sous forme de liste séparée par des virgules :
expansions=author_id,referenced_tweets.id,attachments.media_keys

Modèles courants

Récupérer une publication avec son auteur, ses médias et les publications référencées :
expansions=author_id,attachments.media_keys,referenced_tweets.id
tweet.fields=created_at,public_metrics,conversation_id
user.fields=username,name,profile_image_url
media.fields=url,preview_image_url,type

Associer les données et includes

Les objets dans includes ne contiennent pas d’informations de position. Reliez-les à l’aide de leurs id :
# Exemple Python
response = api_call()
post = response["data"]
users = {u["id"]: u for u in response["includes"]["users"]}

# Obtenir l'auteur
author = users.get(post["author_id"])
print(f"{author['name']} said: {post['text']}")
// Exemple JavaScript
const { data: post, includes } = response;
const users = Object.fromEntries(
  includes.users.map(u => [u.id, u])
);

const author = users[post.author_id];
console.log(`${author.name} said: ${post.text}`);

Prochaines étapes

Champs

Demandez des champs spécifiques pour chaque objet.

Dictionnaire de données

Schémas complets des objets.