Reddit post comments API
  1. Docs
  2. Reddit
  3. Reddit post comments API

Reddit post comments API

The post's comment tree, flattened in display order (replies carry parent_id); on the first page `parent` is the post.

GET /v1/reddit/post/comments

GET /v1/reddit/post/comments

The post's comment tree, flattened in display order (replies carry parent_id); on the first page parent is the post. Replies Reddit folds away stay folded.

  • Cost: 1 credit
  • Cache: Results are kept up to 30 days; send max_age_days to reuse them for free.
  • Timeout: A request still running after about 25 seconds answers 202 with a job to poll (Batch and jobs).

Parameters#

NameTypeRequiredDescription
urlURLyesPost URL (reddit.com/r/.../comments/..., redd.it/..., mobile share links). Accepted hosts: reddit.com, redd.it.
sortstringnoOrder of results. Changing it restarts the cursor chain. One of confidence, top, new, controversial, old, qa. Default confidence. Also accepted as sort_by, sortBy, order.

Every request also accepts:

  • cursor: the cursor from the previous page (Pagination).
  • trim: true for a smaller response without null fields and extra.
  • raw: true to also get the platform's original object as raw.
  • max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).

Example request#

Set your key in the environment first (see Authentication).

1curl -G "https://api.socialscrape.dev/v1/reddit/post/comments" \2  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3  --data-urlencode "url=https://www.reddit.com/r/webscraping/comments/1q6pxwn/just_started_web_scraping_is_this_a_good_start/"

Example response#

This is a sample from a recorded response, lists and long text are shortened, dash characters in the text are replaced with hyphens, other people's names and handles are replaced. Status 200.

200 OKSample response
1{2  "ok": true,3  "credits_charged": 1,4  "credits_remaining": 4999,5  "cached": false,6  "cached_at": null,7  "request_id": "req_f3b8983d7898d6a8fae72aa4",8  "data": {9    "object": "list",10    "items": [11      {12        "object": "comment",13        "platform": "reddit",14        "id": "nyfjrfq",15        "url": "https://www.reddit.com/r/webscraping/comments/1q6pxwn/comment/nyfjrfq/",16        "post_id": "1q6pxwn",17        "parent_id": null,18        "author": {19          "id": "1000000001",20          "handle": "sample_user",21          "name": "Sample User",22          "url": null,23          "avatar_url": null,24          "verified": false25        },26        "text": "Nice work for 3 days in. But yeah, context matters, scraping a static site vs a protected one is night and day. Just be ready for the maintenance, scripts break all the time. Still worth learning imo",27        "published_at": "2026-01-08T17:16:35.580000Z",28        "stats": {29          "likes": 19,30          "replies": null,31          "dislikes": null32        },33        "is_pinned": null,34        "is_by_creator": null,35        "extra": {36          "depth": 0,37          "score": 19,38          "thing_id": "t1_nyfjrfq"39        }40      },41      {42        "object": "comment",43        "platform": "reddit",44        "id": "nyfa2v8",45        "url": "https://www.reddit.com/r/webscraping/comments/1q6pxwn/comment/nyfa2v8/",46        "post_id": "1q6pxwn",47        "parent_id": null,48        "author": {49          "id": "1000000001",50          "handle": "sample_user",51          "name": "Sample User",52          "url": null,53          "avatar_url": null,54          "verified": false55        },56        "text": "Pursuing web scraping as a sole career is a BIG NO but having web scraping skill in your arsenal is a good thing. Getting public data is so easy that so many extensions and tools are there to do it.\n\nThe real-world web scraping is involve c...",57        "published_at": "2026-01-08T16:34:37.027000Z",58        "stats": {59          "likes": 2,60          "replies": null,61          "dislikes": null62        },63        "is_pinned": null,64        "is_by_creator": null,65        "extra": {66          "depth": 0,67          "score": 2,68          "thing_id": "t1_nyfa2v8"69        }70      }71    ],72    "cursor": null,73    "has_more": false,74    "parent": {75      "object": "post",76      "platform": "reddit",77      "id": "1q6pxwn",78      "url": "https://www.reddit.com/r/webscraping/comments/1q6pxwn/just_started_web_scraping_is_this_a_good_start/",79      "type": "text",80      "author": {81        "id": "t2_16xbknfp71",82        "handle": "franik33",83        "name": "franik33",84        "url": "https://www.reddit.com/user/franik33/",85        "avatar_url": "https://preview.redd.it/snoovatar/avatars/5c702f7f-567b-460a-8bac-c91f154da646-headshot.png?width=64&height=64&crop=smart&auto=webp&s=5bbfe08fa505dabc7fd2ede595f19cb0e5b28502",86        "verified": null87      },88      "title": "Just Started Web Scraping - Is This a Good Start?",89      "text": "Hi everyone,\n\nI started getting into web scraping about 3-4 days ago. I already have some solid experience with Python, and my first scraping project was a public website. I managed to collect around 7,000 records and everything worked as e...",90      "published_at": "2026-01-07T20:01:30.561000Z",91      "duration_seconds": null,92      "language": null,93      "hashtags": null,94      "mentions": null,95      "stats": {96        "views": null,97        "likes": 33,98        "comments": 53,99        "shares": null,100        "saves": null,101        "dislikes": null102      },103      "media": {104        "thumbnail_url": null,105        "video_url": null,106        "audio_url": null,107        "image_urls": null,108        "width": null,109        "height": null110      },111      "song": null,112      "location": null,113      "is_pinned": null,114      "is_sponsored": null,115      "extra": {116        "award_count": 0,117        "domain": "self.webscraping",118        "post_type": "text",119        "score": 33,120        "subreddit": "webscraping",121        "subreddit_id": "t5_318ly",122        "upvote_ratio": 0.9230769230769231123      }124    }125  },126  "cursor": null,127  "has_more": false128}

Response#

A list of Comment objects in data.items, with data.cursor and data.has_more.

See Data models for every field. The envelope around data is described in Responses.

Errors#

Failures are free: credits_charged is 0. Branch on error.code, never on the message.

CodeHTTPRetryMeaning
invalid_params400noA parameter is missing, unknown or has the wrong type.
unsupported_url400noThe URL is not one this endpoint accepts (wrong platform or form).
not_found404noThe platform says this profile, post or item does not exist.

Every request can also fail with the account and platform errors listed on the Errors page.