Saltar al contenido principal
Las Expansions permiten incluir objetos relacionados en una sola respuesta de la API. En lugar de hacer múltiples solicitudes, obtén una publicación y su autor, contenido multimedia o publicaciones referenciadas en una sola llamada.

Cómo funcionan las expansiones

Cuando solicitas una expansión, la API incluye el objeto completo en la sección includes de la respuesta:
curl "https://api.x.com/2/tweets/1234567890?expansions=author_id" \
  -H "Authorization: Bearer $TOKEN"
Respuesta:
{
  "data": {
    "id": "1234567890",
    "text": "Hello world!",
    "author_id": "2244994945"
  },
  "includes": {
    "users": [{
      "id": "2244994945",
      "name": "X Developers",
      "username": "xdevelopers"
    }]
  }
}
El author_id en data hace referencia al objeto de usuario en includes.

Expansions de publicaciones

ExpansiónDevuelveCaso de uso
author_idObjeto de usuarioObtener detalles del autor de la publicación
referenced_tweets.idObjeto(s) de publicaciónObtener publicaciones citadas o respondidas
referenced_tweets.id.author_idObjeto(s) de usuarioObtener autores de las publicaciones referenciadas
in_reply_to_user_idObjeto de usuarioObtener el usuario al que se responde
attachments.media_keysObjeto(s) de mediosObtener imágenes, vídeos, GIFs
attachments.poll_idsObjeto de encuestaObtener opciones y votos de la encuesta
geo.place_idObjeto de lugarObtener detalles de la ubicación
entities.mentions.usernameObjeto(s) de usuarioObtener usuarios mencionados
edit_history_tweet_idsObjeto(s) de publicaciónObtener versiones anteriores de las publicaciones editadas

Expansions de usuario

ExpansiónDevuelveCaso de uso
pinned_tweet_idObjeto de PublicaciónObtener la publicación fijada del usuario

Expansions de Space

ExpansiónDevuelveCaso de uso
creator_idObjeto UserObtener al creador del Space
host_idsObjeto(s) UserObtener a los anfitriones del Space
speaker_idsObjeto(s) UserObtener a los oradores del Space
invited_user_idsObjeto(s) UserObtener a los usuarios invitados

Expansiones de DM

ExpansionReturnsUse case
sender_idObjeto de usuarioObtener el remitente del mensaje
participant_idsObjeto(s) de usuarioObtener los participantes de la conversación
attachments.media_keysObjeto multimediaObtener el contenido multimedia adjunto
referenced_tweets.idObjeto de PublicaciónObtener la Publicación referenciada

Expansiones de listas

ExpansiónDevuelveCaso de uso
owner_idObjeto de usuarioObtener el propietario de la lista

Combinación con campos

Expansions devuelven campos predeterminados para cada objeto. Para obtener campos adicionales, combina Expansions con parámetros de campos:
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"
Respuesta:
{
  "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"
    }]
  }
}

Múltiples expansions

Solicita varias expansions en una lista separada por comas:
expansions=author_id,referenced_tweets.id,attachments.media_keys

Patrones comunes

Obtén una publicación con su autor, contenido multimedia y publicaciones de referencia:
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

Vinculación de datos e includes

Los objetos de includes no contienen información de posición. Vincúlalos mediante sus id:
# Ejemplo en Python
response = api_call()
post = response["data"]
users = {u["id"]: u for u in response["includes"]["users"]}

# Obtener el autor
author = users.get(post["author_id"])
print(f"{author['name']} said: {post['text']}")
// Ejemplo de 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}`);

Próximos pasos

Campos

Solicita campos específicos para cada objeto.

Diccionario de datos

Esquemas completos de los objetos.