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

# Trending Shorts

> Fetches about 20 trending YouTube Shorts — what the Shorts feed (youtube.com/shorts) plays to a viewer who isn't signed in, YouTube's own pick of what's popular right now. Each Short has its id, URL, title, full description and hashtags, length, exact view and like counts, exact publish time, category, its channel (id, name, handle) and its full-size first frame and thumbnails. Every request is a fresh pick, so results change from call to call. No parameters. 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/youtube/shorts/trending. Here are the details:
>
> Endpoint: GET https://api.scraperize.com/v1/youtube/shorts/trending
> Description: Fetches about 20 trending YouTube Shorts — what the Shorts feed (youtube.com/shorts) plays to a viewer who isn't signed in, YouTube's own pick of what's popular right now. Each Short has its id, URL, title, full description and hashtags, length, exact view and like counts, exact publish time, category, its channel (id, name, handle) and its full-size first frame and thumbnails. Every request is a fresh pick, so results change from call to call. No parameters. Only publicly available data is returned.
>
> Required Headers:
> - x-api-key: Your API key
>
> Parameters:
> - 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": {
>     "shorts": [
>       {
>         "position": 1,
>         "id": "haprtYpg5Oc",
>         "url": "https://www.youtube.com/shorts/haprtYpg5Oc",
>         "title": "I hit someone while playing soccer.#sports #biography",
>         "description": "【Name】：Le ballon d'or (1994)\n【Summary】: A boy runs from his past and finds purpose in football rising from overlooked substitute to key player proving his talen…",
>         "hashtags": [
>           "sports"
>         ],
>         "keywords": [
>           "#movieclips"
>         ],
>         "durationSeconds": 177,
>         "viewCount": 6794403,
>         "likeCount": 184722,
>         "publishedAt": "2026-09-09T00:00:32.000Z",
>         "uploadedAt": "2026-09-09T00:00:32.000Z",
>         "category": "Film & Animation",
>         "isFamilySafe": true,
>         "channel": {
>           "id": "UCfyHCzLWmY3xUOiBJKWHx1Q",
>           "name": "DaVinciMovie",
>           "handle": "DaVinciMovie-rm2wv",
>           "url": "https://www.youtube.com/@DaVinciMovie-rm2wv"
>         },
>         "frameUrl": "https://i.ytimg.com/vi/haprtYpg5Oc/frame0.jpg",
>         "thumbnailUrl": "https://i.ytimg.com/vi_webp/haprtYpg5Oc/maxresdefault.webp",
>         "thumbnails": [
>           {
>             "url": "https://i.ytimg.com/vi_webp/haprtYpg5Oc/maxresdefault.webp",
>             "width": 1920,
>             "height": 1080
>           }
>         ]
>       }
>     ],
>     "count": 20,
>     "fetchedAt": "2026-11-05T15:03:45.373Z"
>   },
>   "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/youtube/shorts/trending
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/youtube/shorts/trending:
    get:
      tags:
        - YouTube
      summary: Trending Shorts
      description: >-
        Fetches about 20 trending YouTube Shorts — what the Shorts feed
        (youtube.com/shorts) plays to a viewer who isn't signed in, YouTube's
        own pick of what's popular right now. Each Short has its id, URL, title,
        full description and hashtags, length, exact view and like counts, exact
        publish time, category, its channel (id, name, handle) and its full-size
        first frame and thumbnails. Every request is a fresh pick, so results
        change from call to call. No parameters. Only publicly available data is
        returned.
      parameters:
        - 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: About 20 trending Shorts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      shorts:
                        type: array
                        items:
                          type: object
                      count:
                        type: integer
                      fetchedAt:
                        type: string
                        format: date-time
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  shorts:
                    - position: 1
                      id: haprtYpg5Oc
                      url: https://www.youtube.com/shorts/haprtYpg5Oc
                      title: 'I hit someone while playing soccer.#sports #biography'
                      description: >-
                        【Name】：Le ballon d'or (1994)

                        【Summary】: A boy runs from his past and finds purpose in
                        football rising from overlooked substitute to key player
                        proving his talent and eventually reaching the world
                        stage to begin his legend

                        【Label】#movierecap #drama

                        【This content is intended for a general audience and is
                        not made specifically for children.】

                        【All footage is used for commentary, criticism, and
                        educational purposes.】
                      hashtags:
                        - sports
                        - biography
                        - movierecap
                      keywords:
                        - '#movieclips'
                        - '#drama'
                        - '#thriller'
                      durationSeconds: 177
                      viewCount: 6794403
                      likeCount: 184722
                      publishedAt: '2026-09-09T00:00:32.000Z'
                      uploadedAt: '2026-09-09T00:00:32.000Z'
                      category: Film & Animation
                      isFamilySafe: true
                      channel:
                        id: UCfyHCzLWmY3xUOiBJKWHx1Q
                        name: DaVinciMovie
                        handle: DaVinciMovie-rm2wv
                        url: https://www.youtube.com/@DaVinciMovie-rm2wv
                      frameUrl: https://i.ytimg.com/vi/haprtYpg5Oc/frame0.jpg
                      thumbnailUrl: >-
                        https://i.ytimg.com/vi_webp/haprtYpg5Oc/maxresdefault.webp
                      thumbnails:
                        - url: >-
                            https://i.ytimg.com/vi_webp/haprtYpg5Oc/maxresdefault.webp
                          width: 1920
                          height: 1080
                        - url: https://i.ytimg.com/vi/haprtYpg5Oc/maxresdefault.jpg
                          width: 1280
                          height: 720
                        - url: >-
                            https://i.ytimg.com/vi/haprtYpg5Oc/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAkLsefhFKnfaYiKvsKIotWM8rzjQ
                          width: 336
                          height: 188
                    - position: 2
                      id: BOwUMraOqEc
                      url: https://www.youtube.com/shorts/BOwUMraOqEc
                      title: >-
                        What would you rate this concept from  1-10?🫡#fyp
                        #mainavsfood
                      description: null
                      hashtags:
                        - fyp
                        - mainavsfood
                      keywords: []
                      durationSeconds: 138
                      viewCount: 39201643
                      likeCount: 1580605
                      publishedAt: '2026-08-31T10:52:33.000Z'
                      uploadedAt: '2026-08-31T10:52:33.000Z'
                      category: People & Blogs
                      isFamilySafe: true
                      channel:
                        id: UCVKSWQv6dP-vjEUEeg0DzZA
                        name: Itsyaboymainaofficial
                        handle: itsyaboymainaofficial
                        url: https://www.youtube.com/@itsyaboymainaofficial
                      frameUrl: https://i.ytimg.com/vi/BOwUMraOqEc/frame0.jpg
                      thumbnailUrl: >-
                        https://i.ytimg.com/vi/BOwUMraOqEc/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AG2CIACgA-KAgwIABABGGUgWChQMA8=&rs=AOn4CLCWIh-oYz6HdM0Hw42tzB8E3D1oAg
                      thumbnails:
                        - url: >-
                            https://i.ytimg.com/vi/BOwUMraOqEc/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AG2CIACgA-KAgwIABABGGUgWChQMA8=&rs=AOn4CLCWIh-oYz6HdM0Hw42tzB8E3D1oAg
                          width: 1920
                          height: 1080
                        - url: >-
                            https://i.ytimg.com/vi/BOwUMraOqEc/hqdefault.jpg?sqp=-oaymwE2CNACELwBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgBtgiAAoAPigIMCAAQARhlIFgoUDAP&rs=AOn4CLDWlMLbxUtcNKY56ge3eojeslH6pw
                          width: 336
                          height: 188
                        - url: >-
                            https://i.ytimg.com/vi/BOwUMraOqEc/hqdefault.jpg?sqp=-oaymwE2CPYBEIoBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgBtgiAAoAPigIMCAAQARhlIFgoUDAP&rs=AOn4CLCg6lkE-9dtW4rdznnwOKQn2vRjLQ
                          width: 246
                          height: 138
                    - position: 3
                      id: 7J2V-np5Bks
                      url: https://www.youtube.com/shorts/7J2V-np5Bks
                      title: How a Jungle Hole Becomes the Cu Chi Tunnels
                      description: >-
                        You dig a hole in the jungle to hide from the bombs...
                        and end up building a whole city underground.

                        Trapdoors hidden under leaves, air vents inside termite
                        mounds, a smoke tunnel that turns cooking smoke into
                        morning mist, and a water trap that stops the smoke the
                        soldiers pump in.

                        The real Cu Chi tunnels in Vietnam ran for well over a
                        hundred kilometres, with kitchens, bedrooms and even
                        hospitals deep under the jungle.


                        #cuchitunnels #vietnamwar #history #engineering
                        #howitworks #shorts
                      hashtags:
                        - cuchitunnels
                        - vietnamwar
                        - history
                      keywords:
                        - cu chi tunnels
                        - vietnam war
                        - history
                      durationSeconds: 70
                      viewCount: 32355424
                      likeCount: 864308
                      publishedAt: '2026-10-24T17:20:56.000Z'
                      uploadedAt: '2026-10-24T17:20:56.000Z'
                      category: People & Blogs
                      isFamilySafe: true
                      channel:
                        id: UCo4tJKEcLh_Erm48ZRug-9w
                        name: You Made It
                        handle: youmadeit3d
                        url: https://www.youtube.com/@youmadeit3d
                      frameUrl: https://i.ytimg.com/vi/7J2V-np5Bks/frame0.jpg
                      thumbnailUrl: >-
                        https://i.ytimg.com/vi/7J2V-np5Bks/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AG2CIACgA-KAgwIABABGH8gRyguMA8=&rs=AOn4CLDXoBxwhVksu8HGdAtiX8bZTZKdew
                      thumbnails:
                        - url: >-
                            https://i.ytimg.com/vi/7J2V-np5Bks/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AG2CIACgA-KAgwIABABGH8gRyguMA8=&rs=AOn4CLDXoBxwhVksu8HGdAtiX8bZTZKdew
                          width: 1920
                          height: 1080
                        - url: >-
                            https://i.ytimg.com/vi/7J2V-np5Bks/hqdefault.jpg?sqp=-oaymwE2CNACELwBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgBtgiAAoAPigIMCAAQARh_IEcoLjAP&rs=AOn4CLBYHopGJ6mm0eg6EkjKp-5eiIpiMg
                          width: 336
                          height: 188
                        - url: >-
                            https://i.ytimg.com/vi/7J2V-np5Bks/hqdefault.jpg?sqp=-oaymwE2CPYBEIoBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgBtgiAAoAPigIMCAAQARh_IEcoLjAP&rs=AOn4CLAomKaXrcKzmfYPeypOioSup91SPA
                          width: 246
                          height: 138
                  count: 20
                  fetchedAt: '2026-11-05T15:03:45.373Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '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
        '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.