Skip to main content
Use POST /web/scrape with formats.parse: true and parseParams: {"type": "prebuilt", "parser": "reddit-post"}. Read the result in parsed.data, with parsed.type: "reddit-post". See the Quickstart for authentication and SDK setup. Don’t send custom rules with this parser. For CSS selectors and rules, use the Custom parser.

Request

Use a Reddit post URL:
  • reddit.com/r/{subreddit}/comments/{id}, with or without the title slug
  • reddit.com/user/{username}/comments/{id} for a post on a profile
  • reddit.com/comments/{id} or redd.it/{id}
www, old, new, np, m, and sh subdomains of reddit.com are accepted. Share links such as reddit.com/r/{subreddit}/s/{code} are not; open them first and use the post URL they redirect to. The URL’s sort query parameter orders the comments: best (default), top, new, controversial, old, or qa. The optional parseParams.limit caps the total number of comments, from 1 to 1,000, with a default of 100.
Comments are filled shallowest first: every top-level comment is read before deeper replies, so a limit keeps whole conversations instead of one long branch.

Output

When parsed.success is true, the parsed output has this shape:
comment_sort reports the order used; Reddit’s API calls best confidence. has_more_comments is true when the thread has comments beyond those returned.

Post fields

  • body is the post text as Markdown, and null for link and media posts.
  • url is the post on Reddit; link_url is the page a link post points to, and null for text posts.
  • author is null for deleted accounts. Dates are ISO 8601.
  • images lists every gallery image in order, or the preview image of other posts.
  • video.url is an MP4 without sound. Use hls_url for the stream with audio.
  • A crosspost carries the media of the original post, whose ID is in crosspost_parent_id.

Comment fields

comments holds the top-level comments, each with its replies. depth starts at 0, and parent_id is the ID of the comment replied to, or null at the top level. body is Markdown. is_submitter marks comments by the post’s author. Deleted comments keep their place in the tree with is_deleted: true and a null URL, so their replies stay attached. Illustrative parsed.data for a link post, with limit: 2 and one shortened reply:

Errors and request options

URLs that aren’t Reddit posts fail with INPUT_VALIDATION_ERROR. A post that doesn’t exist, or was removed or made private, fails with NOT_FOUND; Reddit blocks and refusals fail with WEBSITE_ACCESS_ERROR. If the post loads but its comments can’t be read in time, the post is still returned with comments: [] and has_more_comments: true. Check parsed.success before reading parsed.data. A failed parse has data: null and can coexist with successful outputs. See timeouts and errors. This parser reads public Reddit data without logging in, separately from the rendered page. Content filters and browser actions do not change its results. Browser profiles are unsupported. Caching, timeouts, and zero data retention still apply.