List All Direct Message Threads & Inbox
List the account's direct-message conversations and chat sidebar — newest activity first, with full thread metadata, last message, and unread count.
/api/reddit/dm/threads$0.025 / callList all of the account's direct-message conversations — the same view you see in the Reddit chat sidebar. Returns one entry per thread with the other party's username, the latest message preview, and unread count. Sorted newest activity first.
Request Body
Cookies are passed as flat top-level fields (same shape as /comment, /vote, /dm).
| Field | Type | Required | Description |
|---|---|---|---|
reddit_session | string | yes | Session cookie from /api/reddit/login |
loid | string | yes | Long-lived account identifier cookie |
csrf_token | string | yes | Anti-CSRF cookie |
Example
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"reddit_session": "eyJhbGc...",
"loid": "000000...",
"csrf_token": "1c0819..."
}' \
"https://api.redditapis.com/api/reddit/dm/threads"const response = await fetch("https://api.redditapis.com/api/reddit/dm/threads", {
method: "POST",
headers: {
Authorization: "Bearer TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
reddit_session: "eyJhbGc...",
loid: "000000...",
csrf_token: "1c0819...",
}),
});import requests
response = requests.post(
"https://api.redditapis.com/api/reddit/dm/threads",
json={
"reddit_session": "eyJhbGc...",
"loid": "000000...",
"csrf_token": "1c0819...",
},
headers={"Authorization": "Bearer TOKEN"},
)Success Response
{
"success": true,
"me": "@t2_xxxxxxxx:reddit.com",
"thread_count": 2,
"threads": [
{
"room_id": "!hdstiJypyVtzbpoUJZe9mUc-zl-5BnADoRlS7h4itZg:reddit.com",
"with_user_t2": "t2_ugmf7dmn",
"with_username": "Ok-Establishment9204",
"with_membership": "invite",
"last_message": {
"body": "hey!",
"from_me": true,
"ts": 1777105649773,
"date": "2026-04-25T15:07:29.773Z"
},
"unread_count": 0
},
{
"room_id": "!H4x5BE5COOdVAKbcAFD_5YMM_NS3xEhHZ2hp2hnoE9o:reddit.com",
"with_user_t2": "t2_284523vyfl",
"with_username": "henry-gilbert",
"with_membership": "join",
"last_message": {
"body": "Here is my mail id - example@gmail.com",
"from_me": true,
"ts": 1772876668412,
"date": "2026-03-07T09:44:28.412Z"
},
"unread_count": 0
}
]
}Field Reference
| Field | Description |
|---|---|
room_id | Internal thread ID. Pass this to a per-room messages endpoint to fetch full history. |
with_user_t2 | The other party's t2_* ID. |
with_username | The other party's Reddit username (display name). |
with_membership | join if they accepted the chat, invite if they were invited but haven't opened it, leave if they left. |
last_message.from_me | true if the most recent message was sent by the authenticated account. |
last_message.body | Plain-text preview. May be null if the latest event was a redaction or non-message. |
unread_count | Number of unread messages in this thread. |
Note:
last_messageis only the most recent message. Use/api/reddit/dm/messagesto fetch the full history of a thread.
Errors
| Status | Meaning |
|---|---|
400 | Missing required cookies |
401 | Missing Bearer token |
403 | Invalid Bearer token |
502 | Could not fetch the thread list (e.g. session cookies expired — re-login) |
500 | Unexpected server error |
Send DMNew
Send a direct message to any Reddit user via a single HTTP call. No browser automation, no captcha at send time — just paste cookies and the message body.
Fetch MessagesNew
Fetch the complete message history of a single Reddit DM thread with cursor-based pagination — every message, sender, timestamp, and redaction state.
