Get Chat Message Requests
Retrieves the authenticated user’s pending Chat message requests from one inbox. Message contents are end-to-end encrypted. Accepting or deleting requests between pages can skip or repeat requests, and a page can be empty while next_token is set.
GET
/
2
/
chat
/
message_requests
Get Chat Message Requests
curl --request GET \
--url https://api.x.com/2/chat/message_requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.x.com/2/chat/message_requests"
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/chat/message_requests', 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/chat/message_requests",
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/chat/message_requests"
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/chat/message_requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/chat/message_requests")
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": [
{
"conversation_id": "<string>",
"sender_id": "<string>",
"conversation_key_events": [
"<string>"
],
"encoded_message_create_event": "<string>",
"has_more_events": true,
"message_events": [
"<string>"
],
"sender_recently_modified_profile": true,
"social_proof_user_ids": [
"<string>"
]
}
],
"errors": [
{
"detail": "<string>",
"resource_type": "<string>",
"title": "<string>",
"type": "https://api.x.com/2/problems/resource-not-found",
"parameter": "<string>",
"resource_id": "<string>",
"status": 123,
"value": "<string>"
}
],
"meta": {
"next_token": "<string>",
"result_count": 123,
"total_count": 123
}
}{
"code": 123,
"message": "<string>"
}Authorizations
OAuth2UserTokenUserToken
The access token received from the authorization server in the OAuth 2.0 flow.
FlowAuthorization Code
- Authorization URL
- https://api.x.com/2/oauth2/authorize
- Token URL
- https://api.x.com/2/oauth2/token
Scopes3
users.read
View any account you can see, including protected accounts.
dm.read
Read all your Direct Messages.
tweet.read
View all posts you can see, including those from protected accounts.
Query Parameters
Which message request inbox to list: you_may_know (the apps' Priority tab) or low_quality (the apps' Hidden tab).
Available options:
you_may_know, low_quality The maximum number of message requests to return.
Required range:
1 <= x <= 50The next_token from a previous response, to fetch the next page.
Pattern:
^[0-9]{1,10}$⌘I
Get Chat Message Requests
curl --request GET \
--url https://api.x.com/2/chat/message_requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.x.com/2/chat/message_requests"
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/chat/message_requests', 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/chat/message_requests",
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/chat/message_requests"
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/chat/message_requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/chat/message_requests")
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": [
{
"conversation_id": "<string>",
"sender_id": "<string>",
"conversation_key_events": [
"<string>"
],
"encoded_message_create_event": "<string>",
"has_more_events": true,
"message_events": [
"<string>"
],
"sender_recently_modified_profile": true,
"social_proof_user_ids": [
"<string>"
]
}
],
"errors": [
{
"detail": "<string>",
"resource_type": "<string>",
"title": "<string>",
"type": "https://api.x.com/2/problems/resource-not-found",
"parameter": "<string>",
"resource_id": "<string>",
"status": 123,
"value": "<string>"
}
],
"meta": {
"next_token": "<string>",
"result_count": 123,
"total_count": 123
}
}{
"code": 123,
"message": "<string>"
}