Saltar al contenido principal
Esta guía te mostrará cómo enviar Mensajes Directos y crear conversaciones de grupo.
Requisitos previosAntes de comenzar, necesitarás:
  • Una cuenta de desarrollador con una App aprobada
  • Un User Access Token (OAuth 2.0 PKCE con los ámbitos dm.write y dm.read)

Enviar un mensaje individual

1

Obtener el ID de usuario del destinatario

Necesitas el ID de usuario de la persona a la que quieres enviar un mensaje. Puedes obtenerlo mediante el endpoint de búsqueda de usuarios.
2

Enviar el mensaje

cURL
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "¡Hola! Este es un mensaje desde la API."}'
3

Revisa la respuesta

{
  "data": {
    "dm_conversation_id": "1234567890-9876543210",
    "dm_event_id": "1582103724607971332"
  }
}

Crear una conversación de grupo

1

Definir participantes

Reúne los identificadores de usuario de todas las personas que quieres incluir en el grupo (sin incluirte a ti).
2

Crear el grupo con el primer mensaje

cURL
curl -X POST "https://api.x.com/2/dm_conversations" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_type": "Group",
    "participant_ids": ["944480690", "906948460078698496"],
    "message": {"text": "¡Bienvenidos a nuestro nuevo grupo!"}
  }'
3

Recibir el identificador de la conversación

{
  "data": {
    "dm_conversation_id": "1582103724607971328",
    "dm_event_id": "1582103724607971332"
  }
}
Guarda el dm_conversation_id para añadir más mensajes más adelante.

Agregar un mensaje a una conversación existente

Envía un mensaje a una conversación de la que ya formas parte:
cURL
curl -X POST "https://api.x.com/2/dm_conversations/1582103724607971328/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Agregando otro mensaje a la conversación."}'

Enviar un mensaje con contenido multimedia

1

Subir el contenido multimedia

Primero, sube tu contenido multimedia utilizando el endpoint Media Upload.
2

Enviar con contenido multimedia adjunto

cURL
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Check out this image!",
    "attachments": [{"media_id": "1234567890123456789"}]
  }'

Eliminar un mensaje

Elimina un mensaje que enviaste:
cURL
curl -X DELETE "https://api.x.com/2/dm_events/1582103724607971332" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"
Respuesta:
{
  "data": {
    "deleted": true
  }
}
Solo puedes eliminar los mensajes que tú enviaste; no puedes eliminar los mensajes de otros participantes.

Permisos requeridos

Cuando uses OAuth 2.0 PKCE, tu token de acceso debe tener estos permisos:
ScopeDescripción
dm.writeEnviar y eliminar mensajes
dm.readLeer conversaciones (requerido con dm.write)
tweet.readRequerido para algunas expansions
users.readRequerido para expansions de usuario

Próximos pasos

Consulta de mensajes directos

Recupera conversaciones de mensajes directos

Guía de integración

Conceptos clave y mejores prácticas

Referencia de la API

Documentación completa del endpoint

Código de ejemplo

Ejemplos de código funcional