RedditAPIRedditAPIs
DM

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.

POST/api/reddit/dm/threads$0.025 / call

List 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).

FieldTypeRequiredDescription
reddit_sessionstringyesSession cookie from /api/reddit/login
loidstringyesLong-lived account identifier cookie
csrf_tokenstringyesAnti-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

FieldDescription
room_idInternal thread ID. Pass this to a per-room messages endpoint to fetch full history.
with_user_t2The other party's t2_* ID.
with_usernameThe other party's Reddit username (display name).
with_membershipjoin if they accepted the chat, invite if they were invited but haven't opened it, leave if they left.
last_message.from_metrue if the most recent message was sent by the authenticated account.
last_message.bodyPlain-text preview. May be null if the latest event was a redaction or non-message.
unread_countNumber of unread messages in this thread.

Note: last_message is only the most recent message. Use /api/reddit/dm/messages to fetch the full history of a thread.

Errors

StatusMeaning
400Missing required cookies
401Missing Bearer token
403Invalid Bearer token
502Could not fetch the thread list (e.g. session cookies expired — re-login)
500Unexpected server error

On this page