Skip to main content

GET/v1/users/{name}

A Reddit user's profile aggregate — karma, post/comment counts, first/last activity. Roughly Reddit's own /user/{name}/about. Exact username match, not prefix/fuzzy search.

A username with no matching account is still 1 credit — the lookup made a real upstream call either way — and comes back as a normal 200 with data.user: null rather than a 404. See Errors for what actually returns non-200.

That same null also covers a second case with no way to tell it apart from a nonexistent username in the response alone: a real, active account that has enabled Reddit's own profile privacy setting to hide its posts and comments. This endpoint reads from an archive of publicly visible Reddit content, so a fully-hidden profile has nothing to aggregate even though the account itself exists.

ParamTypeDefaultNotes
name *string (path)3–64 chars, letters/digits/underscore/hyphen. A name with no matching account is still charged — see above.
curl "https://api.threadsnoop.com/v1/users/spez" \
  -H "x-api-key: ts_live_YOUR_KEY"
response (truncated, hit)
{
  "data": {
    "user": {
      "author": "spez",
      "id": "1w72",
      "_meta": {
        "num_posts": 549,
        "num_comments": 2568,
        "post_karma": 832984,
        "comment_karma": 666948,
        "total_karma": 1499932,
        "earliest_post_at": 1119552314,
        "earliest_comment_at": 1134392748,
        "last_post_at": 1751475161,
        "last_comment_at": 1729645028
      }
    }
  },
  "_threadsnoop": { "credits_used": 1, "credits_remaining": 327 }
}
response (miss OR hidden-profile account — still 1 credit)
{
  "data": { "user": null },
  "_threadsnoop": { "credits_used": 1, "credits_remaining": 326 }
}