> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scraperize.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Post comments

> Returns a Reddit post's details and its comments, in Reddit's order (best first): about 25 on the first page, then about 10 top-level comments with their replies per page. Each comment comes with its text, links and images, author (and avatar), whether the post's author wrote it, time, edit time, score, award count, depth and parent (replies follow their parent), and how many more replies it has than are shown. The first page also has the post (as `/v1/reddit/post`) and Reddit's total comment count. Pass the returned `cursor` back (with the same url) for the next page. NSFW posts return 403. Only publicly available data is returned.

> [!NOTE]
>
> **Cost: 1 credit** per successful request. Errors and cache hits (`cache_max_age`) are free.

> [accordion] Copy for AI assistant
>
> Paste this into ChatGPT, Claude or your coding assistant to generate working code for this endpoint (use the copy button).
>
> ```text Prompt
> I want to make an API call to /v1/reddit/post/comments. Here are the details:
>
> Endpoint: GET https://api.scraperize.com/v1/reddit/post/comments
> Description: Returns a Reddit post's details and its comments, in Reddit's order (best first): about 25 on the first page, then about 10 top-level comments with their replies per page. Each comment comes with its text, links and images, author (and avatar), whether the post's author wrote it, time, edit time, score, award count, depth and parent (replies follow their parent), and how many more replies it has than are shown. The first page also has the post (as `/v1/reddit/post`) and Reddit's total comment count. Pass the returned `cursor` back (with the same url) for the next page. NSFW posts return 403. Only publicly available data is returned.
>
> Required Headers:
> - x-api-key: Your API key
>
> Parameters:
> - url (string) [required]: The post's URL.
> - cursor (string): The `cursor` from the previous page, to get the next one. Omit for the first page.
> - cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
>
> Example Response:
> {
>   "data": {
>     "post": {
>       "id": "1xjye8z",
>       "url": "https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/eli5_how_does_your_body_know_when_to_stop/",
>       "title": "ELI5: how does your body know when to stop throwing up/having diarrhea?",
>       "type": "text",
>       "subreddit": "explainlikeimfive",
>       "subredditId": "t5_2sokd",
>       "author": "Bittersweet_Boii",
>       "authorId": "t2_j3ibgv8h",
>       "authorAvatarUrl": "https://styles.redditmedia.com/t5_63o4f2/styles/profileIcon_snoo12b59395-040a-42dc-acc0-a862086cba45-headshot.png?width=64&height=64&frame=1&auto=webp&crop=64%3…",
>       "createdAt": "2026-10-31T02:16:26.890Z",
>       "score": 2223,
>       "upvoteRatio": 0.9289320388349515,
>       "commentCount": 377,
>       "awardCount": 0,
>       "domain": "self.explainlikeimfive",
>       "linkUrl": null,
>       "language": "en",
>       "flair": {
>         "text": "Biology",
>         "backgroundColor": "#007373"
>       },
>       "text": "say you eat some bad gas station tuna and your body hits eject. how does it \"know\" when all the bad stuff is out and you can stop being sick? does it just flush…",
>       "links": [],
>       "imageDescription": null,
>       "thumbnailUrl": null,
>       "images": [],
>       "video": null,
>       "embed": null,
>       "crosspostParent": null,
>       "isNsfw": false,
>       "isLocked": false,
>       "isStickied": false,
>       "isArchived": false,
>       "isCrosspost": false
>     },
>     "totalComments": 377,
>     "comments": [
>       {
>         "id": "19rwq32k5fq6c",
>         "parentId": null,
>         "depth": 0,
>         "url": "https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/comment/19rwq32k5fq6c/",
>         "author": "BarbequedYeti",
>         "authorAvatarUrl": "https://cf.preview.redd.it/snoovatar/avatars/2cc12c58-5779-4904-9d88-66233aa50c8b-headshot.png?width=64&height=64&crop=smart&auto=webp&s=89efe3f804625ac8d88847d…",
>         "isOp": false,
>         "createdAt": "2026-10-31T02:21:10.843Z",
>         "editedAt": null,
>         "score": 3442,
>         "awardCount": 0,
>         "text": "When nothing is left. Thats why you dry heave or pucker.",
>         "links": [],
>         "images": [],
>         "moreReplies": 10,
>         "isDeleted": false,
>         "isHighlighted": false
>       }
>     ],
>     "count": 25,
>     "cursor": "eyJwIjoiMXhqeWU4eiIsInUiOiIvc3ZjL3NocmVkZGl0L21vcmUtY29tbWVudHMvZXhwbGFpbmxpa2VpbWZpdmUvdDNfMXhqeWU4ej90b3AtbGV2ZWw9MSZjb21tZW50cy1yZW1haW5pbmc9NzUmY29tbWVudFBv…",
>     "hasMore": true,
>     "fetchedAt": "2026-11-06T12:49:15.453Z"
>   },
>   "meta": {
>     "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
>     "creditsCharged": 1,
>     "creditsRemaining": 4999,
>     "cached": false
>   }
> }
>
> Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
> ```


## OpenAPI

````yaml /api-reference/openapi.json get /v1/reddit/post/comments
openapi: 3.0.3
info:
  title: Scraperize API
  version: 1.0.0
  description: >-
    Extract public data from social media platforms as clean JSON. Endpoints are
    split by platform and by what they return, e.g. `GET /v1/twitter/tweet`.


    ## Authentication

    Send your API key in the `x-api-key` header (or `Authorization: Bearer
    <key>`). Create keys in your dashboard.


    ## Credits

    Each successful live scrape costs **1 credit**. Credits are prepaid and
    never expire.


    ## Caching

    Every endpoint accepts an optional `cache_max_age`
    (`1d`|`3d`|`7d`|`14d`|`30d`). A cache hit within that window is returned for
    **0 credits**.


    ## Responses

    Success returns `{ "data": …, "meta": { "requestId", … } }`. Errors return
    `{ "error": { "code", "message", "requestId" } }` with a matching HTTP
    status. `meta` on a scrape carries `creditsCharged`, `creditsRemaining`,
    `cached`, and (on a hit) `cachedAt`.


    ## Rate limits

    Requests are limited per team per minute; over the limit returns `429` with
    a `Retry-After` header.
servers:
  - url: https://api.scraperize.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Twitter
    description: Twitter / X scraping endpoints
  - name: Facebook
    description: Facebook scraping endpoints
  - name: Linkme
    description: Linkme (link.me) scraping endpoints
  - name: Amazon
    description: Amazon (creator shop / storefront) scraping endpoints
  - name: Linkbio
    description: Linkbio (lnk.bio) scraping endpoints
  - name: Pillar
    description: Pillar (pillar.io) scraping endpoints
  - name: Komi
    description: Komi (komi.io) scraping endpoints
  - name: Linktree
    description: Linktree (linktr.ee) scraping endpoints
  - name: Kick
    description: Kick (kick.com) scraping endpoints
  - name: Snapchat
    description: Snapchat (snapchat.com) scraping endpoints
  - name: Telegram
    description: Telegram (t.me) scraping endpoints
  - name: LinkedIn
    description: LinkedIn scraping endpoints
  - name: Twitch
    description: Twitch scraping endpoints
  - name: TikTok
    description: TikTok (tiktok.com) scraping endpoints
  - name: Instagram
    description: Instagram scraping endpoints
  - name: Lagos Life
    description: Lagos Life scraping endpoints
  - name: Bluesky
    description: Bluesky (bsky.app) scraping endpoints
  - name: Threads
    description: Threads (threads.com) scraping endpoints
  - name: Reddit
    description: Reddit (reddit.com) scraping endpoints
  - name: Rumble
    description: Rumble (rumble.com) scraping endpoints
  - name: Truth Social
    description: Truth Social (truthsocial.com) scraping endpoints
  - name: YouTube
    description: YouTube (youtube.com) scraping endpoints
paths:
  /v1/reddit/post/comments:
    get:
      tags:
        - Reddit
      summary: Post comments
      description: >-
        Returns a Reddit post's details and its comments, in Reddit's order
        (best first): about 25 on the first page, then about 10 top-level
        comments with their replies per page. Each comment comes with its text,
        links and images, author (and avatar), whether the post's author wrote
        it, time, edit time, score, award count, depth and parent (replies
        follow their parent), and how many more replies it has than are shown.
        The first page also has the post (as `/v1/reddit/post`) and Reddit's
        total comment count. Pass the returned `cursor` back (with the same url)
        for the next page. NSFW posts return 403. Only publicly available data
        is returned.
      parameters:
        - name: url
          in: query
          required: true
          description: The post's URL.
          schema:
            type: string
          example: >-
            https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/eli5_how_does_your_body_know_when_to_stop/
        - name: cursor
          in: query
          required: false
          description: >-
            The `cursor` from the previous page, to get the next one. Omit for
            the first page.
          schema:
            type: string
        - name: cache_max_age
          in: query
          required: false
          description: >-
            Optional. Return a cached result if one this age or newer exists —
            served for **0 credits** with `meta.cached=true` and
            `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and
            refreshes the cache. Omit to always scrape fresh.
          schema:
            type: string
            enum:
              - 1d
              - 3d
              - 7d
              - 14d
              - 30d
          example: 7d
      responses:
        '200':
          description: One page of comments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      post:
                        type: object
                        nullable: true
                      totalComments:
                        type: integer
                        nullable: true
                      comments:
                        type: array
                        items:
                          type: object
                      count:
                        type: integer
                      cursor:
                        type: string
                        nullable: true
                      hasMore:
                        type: boolean
                      fetchedAt:
                        type: string
                        format: date-time
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  post:
                    id: 1xjye8z
                    url: >-
                      https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/eli5_how_does_your_body_know_when_to_stop/
                    title: >-
                      ELI5: how does your body know when to stop throwing
                      up/having diarrhea?
                    type: text
                    subreddit: explainlikeimfive
                    subredditId: t5_2sokd
                    author: Bittersweet_Boii
                    authorId: t2_j3ibgv8h
                    authorAvatarUrl: >-
                      https://styles.redditmedia.com/t5_63o4f2/styles/profileIcon_snoo12b59395-040a-42dc-acc0-a862086cba45-headshot.png?width=64&height=64&frame=1&auto=webp&crop=64%3A64%2Csmart&s=c2d64e6fc6d56e52050d954d848729ae53c3d216
                    createdAt: '2026-10-31T02:16:26.890Z'
                    score: 2223
                    upvoteRatio: 0.9289320388349515
                    commentCount: 377
                    awardCount: 0
                    domain: self.explainlikeimfive
                    linkUrl: null
                    language: en
                    flair:
                      text: Biology
                      backgroundColor: '#007373'
                    text: >-
                      say you eat some bad gas station tuna and your body hits
                      eject. how does it "know" when all the bad stuff is out
                      and you can stop being sick? does it just flush until
                      you're empty or is there some sort of poison sensor that
                      tells you when it's okay again?
                    links: []
                    imageDescription: null
                    thumbnailUrl: null
                    images: []
                    video: null
                    embed: null
                    crosspostParent: null
                    isNsfw: false
                    isLocked: false
                    isStickied: false
                    isArchived: false
                    isCrosspost: false
                  totalComments: 377
                  comments:
                    - id: 19rwq32k5fq6c
                      parentId: null
                      depth: 0
                      url: >-
                        https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/comment/19rwq32k5fq6c/
                      author: BarbequedYeti
                      authorAvatarUrl: >-
                        https://cf.preview.redd.it/snoovatar/avatars/2cc12c58-5779-4904-9d88-66233aa50c8b-headshot.png?width=64&height=64&crop=smart&auto=webp&s=89efe3f804625ac8d88847d774ffd56b18c485ae
                      isOp: false
                      createdAt: '2026-10-31T02:21:10.843Z'
                      editedAt: null
                      score: 3442
                      awardCount: 0
                      text: When nothing is left. Thats why you dry heave or pucker.
                      links: []
                      images: []
                      moreReplies: 10
                      isDeleted: false
                      isHighlighted: false
                    - id: 19rwrvzjkskle
                      parentId: 19rwq32k5fq6c
                      depth: 1
                      url: >-
                        https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/comment/19rwrvzjkskle/
                      author: liberal_texan
                      authorAvatarUrl: >-
                        https://styles.redditmedia.com/t5_20x53b/styles/profileIcon_snoo199e94b5-7557-418e-8e76-91f21175711a-headshot-f.png?width=64&height=64&frame=1&auto=webp&crop=64%3A64%2Csmart&s=b9bcdb448889cf114564efaedc66c84801f2af85
                      isOp: false
                      createdAt: '2026-10-31T03:01:36.565Z'
                      editedAt: null
                      score: 1662
                      awardCount: 15
                      text: >-
                        When you have nothing left you can still shit what I
                        think was my intestinal lining, then you can still shit
                        out a clear bubbly liquid for a couple of hours. This
                        unlocks. New ability, where if you eat yogurt you can
                        shit out a pure white turd which I can only assume was
                        the yogurt passing through me essentially unchanged.
                      links: []
                      images: []
                      moreReplies: 107
                      isDeleted: false
                      isHighlighted: false
                    - id: 19rwq9xqygegx
                      parentId: 19rwq32k5fq6c
                      depth: 1
                      url: >-
                        https://www.reddit.com/r/explainlikeimfive/comments/1xjye8z/comment/19rwq9xqygegx/
                      author: Shitsaurus
                      authorAvatarUrl: >-
                        https://styles.redditmedia.com/t5_ddvrx/styles/profileIcon_snooc2fdc449-6f71-44be-a9fd-c20978acc7e6-headshot.png?width=64&height=64&frame=1&auto=webp&crop=64%3A64%2Csmart&s=8beb39fb49b285a3c6b9013a4f67b294ebcf594f
                      isOp: false
                      createdAt: '2026-10-31T02:25:27.418Z'
                      editedAt: null
                      score: 325
                      awardCount: 0
                      text: >-
                        If you're still dry heaving, your body clearly doesn't
                        know yet that it's time to stop.
                      links: []
                      images: []
                      moreReplies: 14
                      isDeleted: false
                      isHighlighted: false
                  count: 25
                  cursor: >-
                    eyJwIjoiMXhqeWU4eiIsInUiOiIvc3ZjL3NocmVkZGl0L21vcmUtY29tbWVudHMvZXhwbGFpbmxpa2VpbWZpdmUvdDNfMXhqeWU4ej90b3AtbGV2ZWw9MSZjb21tZW50cy1yZW1haW5pbmc9NzUmY29tbWVudFBvc2l0aW9uT2Zmc2V0PTEyIiwiYyI6IlkyOXRiV1Z1ZEhSeVpXVTZOVFppTVRZME9EVXNPam93T21WNE9peFhZeWg0V0NNb1VWNDZMQ1ExWUhsK09pSWhURlYxTFRVbE9UZG1QMzRpU0hCY1BrSnRkR2xEUUdaYlowNW5ia0JuS1VNK05IWjRZSHRETGtZMFlFeFFUVWt4TVRVcVl6MURNV3RTSkhVMktFUmpRa3cwUnpreUtDcFMifQ
                  hasMore: true
                  fetchedAt: '2026-11-06T12:49:15.453Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '400':
          description: Invalid or expired cursor (or one for another post).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: BAD_REQUEST
                  message: The request was invalid.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '401':
          description: Missing, invalid, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UNAUTHORIZED
                  message: API key required — pass it in the `x-api-key` header.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '402':
          description: Not enough credits for this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: INSUFFICIENT_CREDITS
                  message: >-
                    This request costs 1 credit, but your balance is 0. Top up
                    to continue.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '403':
          description: An NSFW (18+) post — Reddit only shows it to signed-in adults.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such post (it may not exist, or have been removed or deleted).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: NOT_FOUND
                  message: >-
                    The requested content was not found (it may not exist, be
                    deleted, or be private).
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '422':
          description: Invalid query parameters (`url` must be a Reddit post URL).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  details:
                    - path: url
                      message: url is required
        '429':
          description: Over the per-minute rate limit — honour `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: RATE_LIMITED
                  message: >-
                    Rate limit exceeded — max 100 requests per 60s. Retry in
                    ~30s.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '503':
          description: >-
            Temporarily unavailable — retry after `Retry-After`. `error.code`
            tells you why: `UPSTREAM_BLOCKED` (the source blocked this request),
            `EXTRACTION_FAILED` (the source returned unexpected data),
            `PLATFORM_UNAVAILABLE` (the source is down), or
            `SERVICE_UNAVAILABLE` (we are at capacity).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UPSTREAM_BLOCKED
                  message: >-
                    The source is temporarily unavailable. Please try again
                    shortly.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: NOT_FOUND
            message:
              type: string
              example: The requested content was not found.
            requestId:
              type: string
              example: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
            details:
              type: array
              items:
                type: object
              description: Present on validation errors.
          required:
            - code
            - message
            - requestId
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your API key. Send it in the `x-api-key` header (or `Authorization:
        Bearer <key>`). Create and manage keys from your dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.