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.

ParamTypeDefaultNotes
name *string (path)3–64 chars, letters/digits/underscore/hyphen. A name with no matching account is still charged — see above.
curl
curl "https://api.threadsnoop.com/v1/users/spez" \
  -H "x-api-key: ts_live_YOUR_KEY"
JavaScript (fetch)
const res = await fetch(
  "https://api.threadsnoop.com/v1/users/spez",
  { headers: { "x-api-key": "ts_live_YOUR_KEY" } },
);
const data = await res.json();
console.log(data.data.user);
TypeScript (fetch)
type RedditUser = {
  author: string;
  id: string;
  _meta: {
    num_posts: number;
    num_comments: number;
    post_karma: number;
    comment_karma: number;
    total_karma: number;
    earliest_post_at: number;
    earliest_comment_at: number;
    last_post_at: number;
    last_comment_at: number;
  };
} | null;
type UserResponse = {
  data: { user: RedditUser };
  _threadsnoop: { credits_used: number; credits_remaining: number };
};

const res = await fetch(
  "https://api.threadsnoop.com/v1/users/spez",
  { headers: { "x-api-key": "ts_live_YOUR_KEY" } },
);
const data: UserResponse = await res.json();
console.log(data.data.user);
python (requests)
import requests

r = requests.get(
    "https://api.threadsnoop.com/v1/users/spez",
    headers={"x-api-key": "ts_live_YOUR_KEY"},
)
data = r.json()
print(data["data"]["user"])
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 — still 1 credit)
{
  "data": { "user": null },
  "_threadsnoop": { "credits_used": 1, "credits_remaining": 326 }
}