Check DM Permissions (V2)
Check DM status signals for user IDs or usernames. Accept either an object with users and an optional sender cookie, or the original string array. When cookie is supplied, both username resolution and permission queries use that sender session. Omitting cookie uses service-managed accounts. A supplied invalid session never falls back to those accounts.
cookie accepts the complete X Cookie header value or the raw auth_token. Empty strings, whitespace-only values, null, and non-string values return HTTP 422. Results retain the existing fields and batch/credit limits. can_dm_on_xchat=false alone does not mean ordinary DMs are unavailable; the returned signals do not guarantee that sending will succeed.
With a sender session:
{"users":["44196397","elonmusk"],"cookie":"auth_token=YOUR_X_AUTH_TOKEN; ct0=YOUR_CT0"}
The original request remains supported:
["44196397","elonmusk"]
/v2/dm/statusAuthorizationBearer token · headerrequiredapplication/jsonusersstring[]requiredcookiestringstringstringcodeintegerrequiredmsgstringrequireddataDMStatusModelV2[]requiredShow propertiesHide properties
DMStatusModelV2user_idstring | anyShow propertiesHide properties
stringanyscreen_namestring | anyShow propertiesHide properties
stringanyis_blue_verifiedboolean | anyShow propertiesHide properties
booleananyis_verified_organization_affiliateboolean | anyShow propertiesHide properties
booleananyverifiedboolean | anyShow propertiesHide properties
booleananycan_dmboolean | anyShow propertiesHide properties
booleananycan_dm_on_xchatboolean | anyShow propertiesHide properties
booleananydm_blockingboolean | anyShow propertiesHide properties
booleananypasses_premium_checkboolean | anyShow propertiesHide properties
booleananydetailValidationError[]Show propertiesHide properties
ValidationErrorlocstring | integer[]requiredShow propertiesHide properties
string | integerstringintegermsgstringrequiredtypestringrequiredinputanyctxobject⚡Interactive Console / Try APIPOSTLive Console
https://api.twexapi.ioThis endpoint queries public Twitter data — no Twitter account or Cookie required! Simply enter your TwexAPI Platform Key (Bearer Token) in the "API Authorization" section below to test.
Configure parameters in the Request tab and click Send Request below.
curl -X POST "https://api.twexapi.io/v2/dm/status" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"users": [
"44196397",
"elonmusk"
]
}'const response = await fetch("https://api.twexapi.io/v2/dm/status", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"users": [
"44196397",
"elonmusk"
]
})
});import requests
response = requests.post(
"https://api.twexapi.io/v2/dm/status",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"users": [
"44196397",
"elonmusk"
]
},
){
"code": 0,
"msg": "string",
"data": [
{
"user_id": "string",
"screen_name": "string",
"is_blue_verified": true,
"is_verified_organization_affiliate": true,
"verified": true,
"can_dm": true,
"can_dm_on_xchat": true,
"dm_blocking": true,
"passes_premium_check": true
}
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}