> ## 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.

# Video comments

> Scrapes the top-level comments on a public TikTok video (or photo post) by URL (`tiktok.com/@user/video/<id>`), about 40 per page in TikTok’s own (relevance) order. Each comment comes with its id, text, created date, detected language, like count, reply count, author (id, secUid, username, nickname, avatar, profile link), whether the creator liked or pinned it, TikTok’s labels (e.g. “Liked by creator”), photo attachments (original + crop, every mirror URL), the sticker (static and animated, at high / mid / low resolution), emoji tokens, the share info (a deep link to the comment, title, description, share permissions), translatable / photo-download flags, its parent and reply-to ids, and the top reply TikTok previews under it. Pass the returned `cursor` to get the next page; it is null on the last page. TikTok re-ranks comments between requests, so a comment can occasionally move across a page boundary. @mentions inside comments appear as plain text.

<Info>
  **Cost: 1 credit** per successful request. Errors and cache hits (`cache_max_age`) are free.
</Info>

<Accordion title="Copy for AI assistant" icon="sparkles">
  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/tiktok/video/comments. Here are the details:

  Endpoint: GET https://api.scraperize.com/v1/tiktok/video/comments
  Description: Scrapes the top-level comments on a public TikTok video (or photo post) by URL (`tiktok.com/@user/video/<id>`), about 40 per page in TikTok’s own (relevance) order. Each comment comes with its id, text, created date, detected language, like count, reply count, author (id, secUid, username, nickname, avatar, profile link), whether the creator liked or pinned it, TikTok’s labels (e.g. “Liked by creator”), photo attachments (original + crop, every mirror URL), the sticker (static and animated, at high / mid / low resolution), emoji tokens, the share info (a deep link to the comment, title, description, share permissions), translatable / photo-download flags, its parent and reply-to ids, and the top reply TikTok previews under it. Pass the returned `cursor` to get the next page; it is null on the last page. TikTok re-ranks comments between requests, so a comment can occasionally move across a page boundary. @mentions inside comments appear as plain text.

  Required Headers:
  - x-api-key: Your API key

  Parameters:
  - url (string) [required]: The TikTok video URL, e.g. https://www.tiktok.com/@user/video/7683891628230315295.
  - cursor (string): The `cursor` from the previous response, to get the next page. 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": {
      "video": {
        "id": "7683891628230315295",
        "url": "https://www.tiktok.com/@natgeo/video/7683891628230315295",
        "handle": "natgeo"
      },
      "comments": [
        {
          "id": "7693157583478637364",
          "videoId": "7683891628230315295",
          "parentId": null,
          "replyToId": null,
          "text": "Mam Africa",
          "createdAt": "2026-10-05T12:20:45.000Z",
          "language": "en",
          "likeCount": 0,
          "author": {
            "id": "7334262547589268485",
            "secUid": "MS4wLjABAAAAiUlmgtBZ_qAXYaaYFnpo-nJSA63KoabLC2SU3PHumW4hdy8pEG0GOVVLyiQ5nfrH",
            "handle": "948135lntd",
            "nickname": "👑Elle🫶🏻 lily👑",
            "avatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/32f51a036d96fc1ee5ac94dd0f6e81ca~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=a74c53af&x-…",
            "url": "https://www.tiktok.com/@948135lntd"
          },
          "isLikedByCreator": false,
          "labels": [],
          "images": [],
          "sticker": null,
          "emojis": [],
          "isTranslatable": true,
          "shareInfo": {
            "url": "https://m.tiktok.com/v/7683891628230315295.html?_d=f6004hkm87m931&comment_author_id=7334262547589268485&preview_pb=0&share_comment_id=7693157583478637364&share_…",
            "title": "Presented by @ROLEX. Welcome to Africa 🌍 Africa Earth's Wild Home takes you deep into the heart of our wildest continent, bringing you closer to its animals, l…",
            "description": "👑Elle🫶🏻 lily👑’s comment: Mam Africa",
            "acl": {
              "code": 0,
              "addToStoryCode": 0
            }
          },
          "replyCount": 0,
          "isPinnedByCreator": false,
          "allowsPhotoDownload": true,
          "topReply": null
        }
      ],
      "count": 42,
      "total": 314,
      "cursor": "50",
      "hasMore": true,
      "fetchedAt": "2026-10-05T14:44:51.004Z"
    },
    "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.
  ```
</Accordion>


## OpenAPI

````yaml /api-reference/openapi.json get /v1/tiktok/video/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
paths:
  /v1/tiktok/video/comments:
    get:
      tags:
        - TikTok
      summary: Video comments
      description: >-
        Scrapes the top-level comments on a public TikTok video (or photo post)
        by URL (`tiktok.com/@user/video/<id>`), about 40 per page in TikTok’s
        own (relevance) order. Each comment comes with its id, text, created
        date, detected language, like count, reply count, author (id, secUid,
        username, nickname, avatar, profile link), whether the creator liked or
        pinned it, TikTok’s labels (e.g. “Liked by creator”), photo attachments
        (original + crop, every mirror URL), the sticker (static and animated,
        at high / mid / low resolution), emoji tokens, the share info (a deep
        link to the comment, title, description, share permissions),
        translatable / photo-download flags, its parent and reply-to ids, and
        the top reply TikTok previews under it. Pass the returned `cursor` to
        get the next page; it is null on the last page. TikTok re-ranks comments
        between requests, so a comment can occasionally move across a page
        boundary. @mentions inside comments appear as plain text.
      parameters:
        - name: url
          in: query
          required: true
          description: >-
            The TikTok video URL, e.g.
            https://www.tiktok.com/@user/video/7683891628230315295.
          schema:
            type: string
          example: https://www.tiktok.com/@natgeo/video/7683891628230315295
        - name: cursor
          in: query
          required: false
          description: >-
            The `cursor` from the previous response, to get the next page. Omit
            for the first page.
          schema:
            type: string
            pattern: ^\d{1,10}$
          example: '50'
        - 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 the video’s top-level comments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      video:
                        type: object
                        properties:
                          id:
                            type: string
                          url:
                            type: string
                          handle:
                            type: string
                      comments:
                        type: array
                        items:
                          type: object
                      count:
                        type: integer
                      total:
                        type: integer
                        nullable: true
                        description: Total top-level comments TikTok reports.
                      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:
                  video:
                    id: '7683891628230315295'
                    url: https://www.tiktok.com/@natgeo/video/7683891628230315295
                    handle: natgeo
                  comments:
                    - id: '7693157583478637364'
                      videoId: '7683891628230315295'
                      parentId: null
                      replyToId: null
                      text: Mam Africa
                      createdAt: '2026-10-05T12:20:45.000Z'
                      language: en
                      likeCount: 0
                      author:
                        id: '7334262547589268485'
                        secUid: >-
                          MS4wLjABAAAAiUlmgtBZ_qAXYaaYFnpo-nJSA63KoabLC2SU3PHumW4hdy8pEG0GOVVLyiQ5nfrH
                        handle: 948135lntd
                        nickname: 👑Elle🫶🏻 lily👑
                        avatarUrl: >-
                          https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/32f51a036d96fc1ee5ac94dd0f6e81ca~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=a74c53af&x-expires=1791295200&x-signature=GQqFJRTi2pqs%2BPa4daSM0xPSe94%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=my2
                        url: https://www.tiktok.com/@948135lntd
                      isLikedByCreator: false
                      labels: []
                      images: []
                      sticker: null
                      emojis: []
                      isTranslatable: true
                      shareInfo:
                        url: >-
                          https://m.tiktok.com/v/7683891628230315295.html?_d=f6004hkm87m931&comment_author_id=7334262547589268485&preview_pb=0&share_comment_id=7693157583478637364&share_item_id=7683891628230315295&sharer_language=en&source=h5_m&u_code=0
                        title: >-
                          Presented by @ROLEX. Welcome to Africa 🌍 Africa
                          Earth's Wild Home takes you deep into the heart of our
                          wildest continent, bringing you closer to its animals,
                          landscapes, and the people watching over it than ever
                          before. Through its partnership with the National
                          Geographic Society and as part of its Perpetual Planet
                          Initiative, #Rolex supports expeditions exploring and
                          protecting remarkable places around the world, a
                          selection of which are featured in Africa Earth’s Wild
                          Home. #PerpetualPlanet Africa Earth's Wild Home,
                          narrated by Wunmi Mosaku, premieres Friday, October 2
                          at 8/7c on National Geographic. Streaming next day on
                          @Disney+ and @hulu.
                        description: '👑Elle🫶🏻 lily👑’s comment: Mam Africa'
                        acl:
                          code: 0
                          addToStoryCode: 0
                      replyCount: 0
                      isPinnedByCreator: false
                      allowsPhotoDownload: true
                      topReply: null
                    - id: '7692839615614845748'
                      videoId: '7683891628230315295'
                      parentId: null
                      replyToId: null
                      text: proud ugandan 🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬
                      createdAt: '2026-10-04T15:46:46.000Z'
                      language: en
                      likeCount: 1
                      author:
                        id: '7515677256997897233'
                        secUid: >-
                          MS4wLjABAAAAkHK4Gl1CANhtMM2LhDtYa1euu5qBpo9Yj237j1kZMOAPwwevYtV009s65-_O2YMh
                        handle: musawoshammy7
                        nickname: musawoshammy7
                        avatarUrl: >-
                          https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/24309e8fe403c4969fceb543f9b8ea57~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=6a20777b&x-expires=1791295200&x-signature=awQ5mb%2BTOy3D%2FtT7KbN9Qui8RaE%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=my2
                        url: https://www.tiktok.com/@musawoshammy7
                      isLikedByCreator: false
                      labels: []
                      images:
                        - original:
                            url: >-
                              https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-origin.image?dr=8569&refresh_token=b61868e3&x-expires=1793800800&x-signature=M99zexAZHlx5jfntWoPwaUeN70k%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                            urls:
                              - >-
                                https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-origin.image?dr=8569&refresh_token=b61868e3&x-expires=1793800800&x-signature=M99zexAZHlx5jfntWoPwaUeN70k%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                              - >-
                                https://p16-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-origin.image?dr=8569&refresh_token=21e92ad9&x-expires=1793800800&x-signature=4t905keIMHNpFjPYxAjG02y%2Bpi8%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                              - >-
                                https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-origin.jpeg?dr=8569&refresh_token=10c60bdc&x-expires=1793800800&x-signature=7eGrwv5hlsk9b7GOpmCxkk%2Fw7e8%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                            uri: >-
                              tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625
                            width: 1920
                            height: 2560
                          crop:
                            url: >-
                              https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-medium.image?dr=8569&refresh_token=59e5e939&x-expires=1793800800&x-signature=WwF%2BQF7HWpOA9ZaU%2BnqBtXQJAdA%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                            urls:
                              - >-
                                https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-medium.image?dr=8569&refresh_token=59e5e939&x-expires=1793800800&x-signature=WwF%2BQF7HWpOA9ZaU%2BnqBtXQJAdA%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                              - >-
                                https://p16-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-medium.image?dr=8569&refresh_token=7bab1a50&x-expires=1793800800&x-signature=5gukFyTR%2FIDMQrR%2BFn1NXwwQzs8%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                              - >-
                                https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625~tplv-jj85edgx6n-image-medium.jpeg?dr=8569&refresh_token=a2895cdd&x-expires=1793800800&x-signature=F3zyhGwpvJGqq2WzcNi9cNFvBGU%3D&t=67a6c45e&ps=a0626fcd&shp=ff37627b&shcp=ff37627b&idc=my2
                            uri: >-
                              tos-alisg-i-zt8igodiya-sg/30340a4f1c5543e0b3b51da194fb2625
                            width: 1920
                            height: 2560
                      sticker: null
                      emojis: []
                      isTranslatable: true
                      shareInfo:
                        url: >-
                          https://m.tiktok.com/v/7683891628230315295.html?_d=f6004hkm87m931&comment_author_id=7515677256997897233&preview_pb=0&share_comment_id=7692839615614845748&share_item_id=7683891628230315295&sharer_language=en&source=h5_m&u_code=0
                        title: >-
                          Presented by @ROLEX. Welcome to Africa 🌍 Africa
                          Earth's Wild Home takes you deep into the heart of our
                          wildest continent, bringing you closer to its animals,
                          landscapes, and the people watching over it than ever
                          before. Through its partnership with the National
                          Geographic Society and as part of its Perpetual Planet
                          Initiative, #Rolex supports expeditions exploring and
                          protecting remarkable places around the world, a
                          selection of which are featured in Africa Earth’s Wild
                          Home. #PerpetualPlanet Africa Earth's Wild Home,
                          narrated by Wunmi Mosaku, premieres Friday, October 2
                          at 8/7c on National Geographic. Streaming next day on
                          @Disney+ and @hulu.
                        description: >-
                          musawoshammy7’s comment: proud ugandan
                          🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬🇺🇬
                        acl:
                          code: 0
                          addToStoryCode: 0
                      replyCount: 0
                      isPinnedByCreator: false
                      allowsPhotoDownload: true
                      topReply: null
                    - id: '7692930736659219207'
                      videoId: '7683891628230315295'
                      parentId: null
                      replyToId: null
                      text: love this channel
                      createdAt: '2026-10-04T21:40:34.000Z'
                      language: en
                      likeCount: 0
                      author:
                        id: '7670528725390689287'
                        secUid: >-
                          MS4wLjABAAAAutaKUaK8R8kooTc2F7FOHisP0Z6I8zw5j0iSPnZ8SS61-IBohiUuZxlR8VNigXN4
                        handle: claudia.jackson8
                        nickname: Claudia Jackson
                        avatarUrl: >-
                          https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/4b5bff5d5b3ce020697d01323acb678e~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=0e386239&x-expires=1791295200&x-signature=V8InNWMQLyVm6OQVHkJSU8mgkp0%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=my2
                        url: https://www.tiktok.com/@claudia.jackson8
                      isLikedByCreator: false
                      labels: []
                      images: []
                      sticker: null
                      emojis: []
                      isTranslatable: true
                      shareInfo:
                        url: >-
                          https://m.tiktok.com/v/7683891628230315295.html?_d=f6004hkm87m931&comment_author_id=7670528725390689287&preview_pb=0&share_comment_id=7692930736659219207&share_item_id=7683891628230315295&sharer_language=en&source=h5_m&u_code=0
                        title: >-
                          Presented by @ROLEX. Welcome to Africa 🌍 Africa
                          Earth's Wild Home takes you deep into the heart of our
                          wildest continent, bringing you closer to its animals,
                          landscapes, and the people watching over it than ever
                          before. Through its partnership with the National
                          Geographic Society and as part of its Perpetual Planet
                          Initiative, #Rolex supports expeditions exploring and
                          protecting remarkable places around the world, a
                          selection of which are featured in Africa Earth’s Wild
                          Home. #PerpetualPlanet Africa Earth's Wild Home,
                          narrated by Wunmi Mosaku, premieres Friday, October 2
                          at 8/7c on National Geographic. Streaming next day on
                          @Disney+ and @hulu.
                        description: 'Claudia Jackson’s comment: love this channel'
                        acl:
                          code: 0
                          addToStoryCode: 0
                      replyCount: 0
                      isPinnedByCreator: false
                      allowsPhotoDownload: true
                      topReply: null
                  count: 42
                  total: 314
                  cursor: '50'
                  hasMore: true
                  fetchedAt: '2026-10-05T14:44:51.004Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '400':
          description: Invalid cursor.
          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
        '404':
          description: Video not found, deleted, private, or unavailable.
          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 (missing url, or not a TikTok video 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: 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.