# Reddit Profile Comments API (https://www.socialcrawl.dev/platforms/reddit/profile-comments) > Returns the comments one Reddit account has written, newest first, read from the account's own listing rather than from a search index. **That distinction is the whole endpoint.** `/v1/reddit/search/comments?query=author:username` costs 1 credit for a page and looks like the same thing, but it reads Reddit's search index, which holds a small relevance-ranked subset: measured 07/09/2026 on one account, the search route returned 9 comments and then stopped, while this endpoint returned 60 in chronological order reaching back to 2021. **Start with the search route.** Come here when you need the history rather than a sample. Each row carries the comment text, the score, the permalink, the post it sits under at `post_id` and `ext.post_url`, the community at `ext.subreddit`, and a real `parent_id` — `t1_` on a reply and `t3_` on a top-level comment, so a comment whose `parent_id` equals its `post_id` is top-level. `ext.is_submitter` is Reddit's OP badge, true when the commenter also wrote the post they are replying under, and `ext.controversiality` is Reddit's own flag for a comment with roughly balanced up and down votes, which the score alone hides. `limit` is a real depth control and not a page size: a higher `limit` reaches further back, at the same speed. There is no cursor, because the depth control makes one unnecessary — ask for the depth you want in one call. **Pricing is metered at 2 credits per comment RETURNED**, so an account with fewer comments than your `limit` costs less than you asked for. A username that does not exist returns an empty list and costs nothing, and so does a real account that has never commented — this upstream cannot tell them apart, so call `/v1/reddit/profile` when you need to know which it was. When the main source is unavailable, a second source answers the same call with the same fields and the same price; on those rows `comment.text` is Reddit's own markdown, so a link reads `[text](url)`. A call with `before` has no second source and returns an error to retry. TL;DR: `GET /v1/reddit/profile/comments` costs 2 credits per comment returned. A limit of 25 holds 50 credits and settles down to the number of comments that actually came back; an account with no comments costs nothing. and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `handle` | yes | Reddit username without the u/ prefix. Case-insensitive. | | `limit` | no | How many comments to return, 1-100, default 25. This is a depth control, not a page size: a higher limit reaches further back into the account's history at the same speed. | | `before` | no | Only return comments older than this date (YYYY-MM-DD). Use it to walk a long history in windows instead of raising limit. | | `since` | no | Only rows published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Rows older than it are left off each page. This list is not in date order, so the walk does not stop at the date: keep following `next_cursor`, and each page costs what a page costs even when every row on it is filtered out. A row with no date is kept. `published_after`, `start_date`, `from_date`, `publish_time` (`yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`) and `max_age_days` are accepted and applied as `since`. | | `until` | no | Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept. `published_before`, `end_date` and `to_date` are accepted and applied as `until`. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/reddit/profile/comments" \ --data-urlencode "handle=spez" \ -H "x-api-key: sc_YOUR_API_KEY" ``` ## FAQ ### How do I pull a Reddit user's comment history? Send a GET request to /v1/reddit/profile/comments with the username. Comments come back newest first, read from the account's own listing, each with its text, score, permalink and the post it sits under. ### Why not just search comments by author instead? Start there if a sample is enough: /v1/reddit/search/comments?query=author:name costs 1 credit. It reads the search index, which holds a relevance-ranked subset. Measured on one account, the search route returned 9 comments where this endpoint returned 60 going back years. ### How do I reach further back in the history? Raise limit, which is a depth control rather than a page size: a higher limit reaches further back at the same speed, up to 100. There is no cursor. To go past that, pass before with the oldest date you received. ### How much does the Reddit comment history API cost? It is metered at 2 credits per comment returned, so the call holds twice your limit up front and settles to what actually came back. An account with fewer comments than your limit costs less, and an account with none costs nothing. ### Can I tell a top-level comment from a reply? Yes. parent_id is t3_ on a top-level comment and t1_ on a reply, so a comment whose parent_id equals its post_id sits at the top of the thread. ext.is_submitter marks the ones where the commenter wrote the post. See the full Reddit API: https://www.socialcrawl.dev/platforms/reddit ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing ## Explore with AI Questions this API answers, phrased for an AI assistant: - How do I pull a Reddit user's full comment history? - Why does Reddit search not return a user's older comments? - What does the SocialCrawl Reddit Comment History API return?