curl --request GET \
--url https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"event_type": "MessageCreate",
"id": "1146654567674912769",
"attachments": {
"card_ids": [
"<string>"
],
"media_keys": [
"<string>"
]
},
"cashtags": [
{
"end": 61,
"start": 50,
"tag": "TWTR"
}
],
"created_at": "2023-11-07T05:31:56Z",
"dm_conversation_id": "123123123-456456456",
"hashtags": [
{
"end": 61,
"start": 50,
"tag": "MondayMotivation"
}
],
"mentions": [
{
"end": 61,
"start": 50,
"username": "<string>",
"id": "2244994945"
}
],
"participant_ids": [
"2244994945"
],
"referenced_tweets": [
{
"id": "1346889436626259968"
}
],
"sender_id": "2244994945",
"text": "<string>",
"urls": [
{
"end": 61,
"start": 50,
"url": "https://developer.twitter.com/en/docs/twitter-api",
"description": "This is a description of the website.",
"display_url": "twittercommunity.com/t/introducing-…",
"expanded_url": "https://developer.twitter.com/en/docs/twitter-api",
"images": [
{
"height": 1,
"url": "https://developer.twitter.com/en/docs/twitter-api",
"width": 1
}
],
"media_key": "<string>",
"status": 349,
"title": "Introducing the v2 follow lookup endpoints",
"unwound_url": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118"
}
]
}
],
"errors": [
{
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"status": 123
}
],
"includes": {
"media": [
{
"type": "<string>",
"preview_image_url": "<string>",
"variants": [
{
"bit_rate": 123,
"content_type": "<string>",
"url": "<string>"
}
],
"height": 1,
"media_key": "<string>",
"width": 1
}
],
"places": [
{
"full_name": "Lakewood, CO",
"id": "f7eb2fa2fea288b1",
"contained_within": [
"f7eb2fa2fea288b1"
],
"country": "United States",
"country_code": "US",
"geo": {
"bbox": [
-105.193475,
39.60973,
-105.053164,
39.761974
],
"properties": {},
"type": "Feature",
"geometry": {
"coordinates": [
-105.18816086351444,
40.247749999999996
],
"type": "Point"
}
},
"name": "Lakewood",
"place_type": "city"
}
],
"polls": [
{
"id": "1365059861688410112",
"options": [
{
"label": "<string>",
"position": 123,
"votes": 123
}
],
"duration_minutes": 5042,
"end_datetime": "2023-11-07T05:31:56Z",
"voting_status": "open"
}
],
"topics": [
{
"id": "<string>",
"name": "Technology",
"description": "All about technology"
}
],
"tweets": [
{
"author_id": "2244994945",
"created_at": "Wed Jan 06 18:40:40 +0000 2021",
"id": "1346889436626259968",
"text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i",
"username": "XDevelopers"
}
],
"users": [
{
"created_at": "2013-12-14T04:35:55Z",
"id": "2244994945",
"name": "X Dev",
"protected": false,
"username": "TwitterDev"
}
]
},
"meta": {
"next_token": "<string>",
"previous_token": "<string>",
"result_count": 123
}
}{
"code": 123,
"message": "<string>"
}Get DM events for a DM conversation
Retrieves direct message events for a specific conversation.
curl --request GET \
--url https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/dm_conversations/with/{participant_id}/dm_events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"event_type": "MessageCreate",
"id": "1146654567674912769",
"attachments": {
"card_ids": [
"<string>"
],
"media_keys": [
"<string>"
]
},
"cashtags": [
{
"end": 61,
"start": 50,
"tag": "TWTR"
}
],
"created_at": "2023-11-07T05:31:56Z",
"dm_conversation_id": "123123123-456456456",
"hashtags": [
{
"end": 61,
"start": 50,
"tag": "MondayMotivation"
}
],
"mentions": [
{
"end": 61,
"start": 50,
"username": "<string>",
"id": "2244994945"
}
],
"participant_ids": [
"2244994945"
],
"referenced_tweets": [
{
"id": "1346889436626259968"
}
],
"sender_id": "2244994945",
"text": "<string>",
"urls": [
{
"end": 61,
"start": 50,
"url": "https://developer.twitter.com/en/docs/twitter-api",
"description": "This is a description of the website.",
"display_url": "twittercommunity.com/t/introducing-…",
"expanded_url": "https://developer.twitter.com/en/docs/twitter-api",
"images": [
{
"height": 1,
"url": "https://developer.twitter.com/en/docs/twitter-api",
"width": 1
}
],
"media_key": "<string>",
"status": 349,
"title": "Introducing the v2 follow lookup endpoints",
"unwound_url": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118"
}
]
}
],
"errors": [
{
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"status": 123
}
],
"includes": {
"media": [
{
"type": "<string>",
"preview_image_url": "<string>",
"variants": [
{
"bit_rate": 123,
"content_type": "<string>",
"url": "<string>"
}
],
"height": 1,
"media_key": "<string>",
"width": 1
}
],
"places": [
{
"full_name": "Lakewood, CO",
"id": "f7eb2fa2fea288b1",
"contained_within": [
"f7eb2fa2fea288b1"
],
"country": "United States",
"country_code": "US",
"geo": {
"bbox": [
-105.193475,
39.60973,
-105.053164,
39.761974
],
"properties": {},
"type": "Feature",
"geometry": {
"coordinates": [
-105.18816086351444,
40.247749999999996
],
"type": "Point"
}
},
"name": "Lakewood",
"place_type": "city"
}
],
"polls": [
{
"id": "1365059861688410112",
"options": [
{
"label": "<string>",
"position": 123,
"votes": 123
}
],
"duration_minutes": 5042,
"end_datetime": "2023-11-07T05:31:56Z",
"voting_status": "open"
}
],
"topics": [
{
"id": "<string>",
"name": "Technology",
"description": "All about technology"
}
],
"tweets": [
{
"author_id": "2244994945",
"created_at": "Wed Jan 06 18:40:40 +0000 2021",
"id": "1346889436626259968",
"text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i",
"username": "XDevelopers"
}
],
"users": [
{
"created_at": "2013-12-14T04:35:55Z",
"id": "2244994945",
"name": "X Dev",
"protected": false,
"username": "TwitterDev"
}
]
},
"meta": {
"next_token": "<string>",
"previous_token": "<string>",
"result_count": 123
}
}{
"code": 123,
"message": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The ID of the participant user for the One to One DM conversation. Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.
^[0-9]{1,19}$"2244994945"
Query Parameters
The maximum number of results.
1 <= x <= 100This parameter is used to get a specified 'page' of results. A base32 pagination token.
16The set of event_types to include in the results.
1MessageCreate, ParticipantsJoin, ParticipantsLeave ["MessageCreate", "ParticipantsLeave"]
A comma separated list of DmEvent fields to display. The fields available for a DmEvent object.
1attachments, created_at, dm_conversation_id, entities, event_type, id, participant_ids, referenced_tweets, sender_id, text [
"attachments",
"created_at",
"dm_conversation_id",
"entities",
"event_type",
"id",
"participant_ids",
"referenced_tweets",
"sender_id",
"text"
]
A comma separated list of fields to expand. The list of fields you can expand for a DmEvent object. If the field has an ID, it can be expanded into a full object.
1attachments.media_keys, participant_ids, referenced_tweets.id, sender_id [
"attachments.media_keys",
"participant_ids",
"referenced_tweets.id",
"sender_id"
]
A comma separated list of Media fields to display. The fields available for a Media object.
1alt_text, duration_ms, height, media_key, non_public_metrics, organic_metrics, preview_image_url, promoted_metrics, public_metrics, type, url, variants, width [
"alt_text",
"duration_ms",
"height",
"media_key",
"non_public_metrics",
"organic_metrics",
"preview_image_url",
"promoted_metrics",
"public_metrics",
"type",
"url",
"variants",
"width"
]
A comma separated list of User fields to display. The fields available for a User object.
1affiliation, confirmed_email, connection_status, created_at, description, entities, id, is_identity_verified, location, most_recent_tweet_id, name, parody, pinned_tweet_id, profile_banner_url, profile_image_url, protected, public_metrics, receives_your_dm, subscription, subscription_type, url, username, verified, verified_followers_count, verified_type, withheld [
"affiliation",
"confirmed_email",
"connection_status",
"created_at",
"description",
"entities",
"id",
"is_identity_verified",
"location",
"most_recent_tweet_id",
"name",
"parody",
"pinned_tweet_id",
"profile_banner_url",
"profile_image_url",
"protected",
"public_metrics",
"receives_your_dm",
"subscription",
"subscription_type",
"url",
"username",
"verified",
"verified_followers_count",
"verified_type",
"withheld"
]
A comma separated list of Tweet fields to display. The fields available for a Tweet object.
1article, attachments, author_id, card_uri, community_id, context_annotations, conversation_id, created_at, display_text_range, edit_controls, edit_history_tweet_ids, entities, geo, id, in_reply_to_user_id, lang, media_metadata, non_public_metrics, note_tweet, organic_metrics, possibly_sensitive, promoted_metrics, public_metrics, referenced_tweets, reply_settings, scopes, source, suggested_source_links, suggested_source_links_with_counts, text, withheld [
"article",
"attachments",
"author_id",
"card_uri",
"community_id",
"context_annotations",
"conversation_id",
"created_at",
"display_text_range",
"edit_controls",
"edit_history_tweet_ids",
"entities",
"geo",
"id",
"in_reply_to_user_id",
"lang",
"media_metadata",
"non_public_metrics",
"note_tweet",
"organic_metrics",
"possibly_sensitive",
"promoted_metrics",
"public_metrics",
"referenced_tweets",
"reply_settings",
"scopes",
"source",
"suggested_source_links",
"suggested_source_links_with_counts",
"text",
"withheld"
]
Response
The request has succeeded.
1Show child attributes
Show child attributes
1An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes