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

# Track

> Returns a SoundCloud track by link: title, description, genre and tags, full-size artwork and waveform, full-length duration, plays, likes, reposts, comments and downloads, upload, release and last-changed dates, license, label, buy link, whether only a 30-second preview plays, its stream variants (transcodings: media URL, preset, protocol, MIME type, quality, length), the release's publisher data (artist, album, ISRC, UPC, ℗ and © lines, explicit flag) and the artist (name, handle, avatar, verified badge, followers). 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/soundcloud/track. Here are the details:
>
> Endpoint: GET https://api.scraperize.com/v1/soundcloud/track
> Description: Returns a SoundCloud track by link: title, description, genre and tags, full-size artwork and waveform, full-length duration, plays, likes, reposts, comments and downloads, upload, release and last-changed dates, license, label, buy link, whether only a 30-second preview plays, its stream variants (transcodings: media URL, preset, protocol, MIME type, quality, length), the release's publisher data (artist, album, ISRC, UPC, ℗ and © lines, explicit flag) and the artist (name, handle, avatar, verified badge, followers). Only publicly available data is returned.
>
> Required Headers:
> - x-api-key: Your API key
>
> Parameters:
> - url (string) [required]: The track's link (`https://soundcloud.com/<artist>/<track>`).
> - 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": {
>     "id": "341471474",
>     "urn": "soundcloud:tracks:341471474",
>     "title": "A Moment Apart",
>     "url": "https://soundcloud.com/odesza/a-moment-apart",
>     "description": "The new album 'A Moment Apart’ out now: http://odesza.co/a-moment-apart\n \n2017 A Moment Apart Tour \nSun, Sep 3 - Seattle, WA - Bumbershoot\nThu, Sep 14 - Aucklan…",
>     "genre": "Electronic",
>     "tags": [],
>     "artworkUrl": "https://i1.sndcdn.com/artworks-nU2mhziz3vmX-0-t1080x1080.png",
>     "waveformUrl": "https://wave.sndcdn.com/rgSJlLvcKjWR_m.json",
>     "durationMs": 234292,
>     "isPreviewOnly": false,
>     "plays": 4640225,
>     "likes": 75321,
>     "reposts": 4151,
>     "comments": 1733,
>     "downloads": 0,
>     "createdAt": "2017-09-08T13:54:04Z",
>     "releaseDate": "2017-09-08T00:00:00Z",
>     "displayDate": "2017-09-08T00:00:00Z",
>     "lastModified": "2024-09-28T03:13:42Z",
>     "isDownloadable": false,
>     "isCommentable": true,
>     "isStreamable": true,
>     "isPublic": true,
>     "license": "all-rights-reserved",
>     "labelName": "Counter Records",
>     "purchase": {
>       "title": "Buy Now",
>       "url": "http://odesza.co/a-moment-apart"
>     },
>     "policy": "ALLOW",
>     "monetizationModel": "NOT_APPLICABLE",
>     "embeddableBy": "all",
>     "publisher": {
>       "artist": "ODESZA",
>       "albumTitle": "A Moment Apart",
>       "releaseTitle": "A Moment Apart",
>       "isrc": "GBCFB1700210",
>       "upc": "5054429119183",
>       "isExplicit": false,
>       "pLine": "℗ 2017 Foreign Family Collective under exclusive license to Counter Records",
>       "cLine": "© 2017 Foreign Family Collective under exclusive license to Counter Records",
>       "containsMusic": true
>     },
>     "transcodings": [
>       {
>         "url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/cbc-encrypted-hls",
>         "preset": "aac_160k",
>         "protocol": "cbc-encrypted-hls",
>         "mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
>         "quality": "sq",
>         "isSnippet": false,
>         "durationMs": 234267,
>         "isLegacy": false
>       }
>     ],
>     "artist": {
>       "id": "18604897",
>       "handle": "odesza",
>       "url": "https://soundcloud.com/odesza",
>       "name": "ODESZA",
>       "avatarUrl": "https://i1.sndcdn.com/avatars-9N0KOFupZRs2l2QQ-seYNnA-large.jpg",
>       "isVerified": true,
>       "followers": 783898
>     },
>     "fetchedAt": "2026-11-11T09:06:14.421Z"
>   },
>   "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/soundcloud/track
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: SoundCloud
    description: SoundCloud (soundcloud.com) scraping endpoints
  - name: Kwai
    description: Kwai (kwai.com) scraping endpoints
  - name: Apple Music
    description: Apple Music (music.apple.com) scraping endpoints
  - name: Truth Social
    description: Truth Social (truthsocial.com) scraping endpoints
  - name: YouTube
    description: YouTube (youtube.com) scraping endpoints
paths:
  /v1/soundcloud/track:
    get:
      tags:
        - SoundCloud
      summary: Track
      description: >-
        Returns a SoundCloud track by link: title, description, genre and tags,
        full-size artwork and waveform, full-length duration, plays, likes,
        reposts, comments and downloads, upload, release and last-changed dates,
        license, label, buy link, whether only a 30-second preview plays, its
        stream variants (transcodings: media URL, preset, protocol, MIME type,
        quality, length), the release's publisher data (artist, album, ISRC,
        UPC, ℗ and © lines, explicit flag) and the artist (name, handle, avatar,
        verified badge, followers). Only publicly available data is returned.
      parameters:
        - name: url
          in: query
          required: true
          description: The track's link (`https://soundcloud.com/<artist>/<track>`).
          schema:
            type: string
          example: https://soundcloud.com/odesza/a-moment-apart
        - 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: The track.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  id: '341471474'
                  urn: soundcloud:tracks:341471474
                  title: A Moment Apart
                  url: https://soundcloud.com/odesza/a-moment-apart
                  description: >-
                    The new album 'A Moment Apart’ out now:
                    http://odesza.co/a-moment-apart
                     
                    2017 A Moment Apart Tour 

                    Sun, Sep 3 - Seattle, WA - Bumbershoot

                    Thu, Sep 14 - Auckland, NZ - Great Hall@

                    Fri, Sep 15 - Melbourne, AU - Forum@

                    Sat, Sep 16 - Sydney, AU - Enmore Theatre@

                    Sun, Sep 17 - Sydney, AU - Enmore Theatre@

                    Fri, Sep 29 - London, UK - O2 Forum Kentish Town#

                    Sat, Sep 30 - Paris, FR - Élysée Montmartre#

                    Tue, Oct 3 - Brussels, BE - AB Main Hall#

                    Wed, Oct 4 - Amsterdam, NL - Paradiso#

                    Thu, Oct 5 - Amsterdam, NL - Paradiso#

                    Sat, Oct 7 - Berlin, DE - Astra Kulturhaus#

                    Thu, Oct 19 - San Diego, CA - Valley View Casino Center*+

                    Fri, Oct 20 - Los Angeles, CA - STAPLES Center*

                    Sat, Oct 21 - Las Vegas, NV - Downtown Las Vegas Events
                    Center

                    Sun, Oct 22 - Phoenix, AZ - Lost Lake Festival

                    Tue, Oct, 24 - Santa Barbara, CA - Santa Barbara Bowl*+

                    Thu, Oct 26 - Berkeley, CA - Greek Theatre*+

                    Fri, Oct 27 - Berkeley, CA - Greek Theatre*+

                    Sat, Oct 28 - Berkeley, CA - Greek Theatre*+

                    Tue, Oct 31 - Sacramento, CA - Papa Murphy's Park at Cal
                    Expo*^

                    Thu, Nov 2 - Portland, OR - Veterans Memorial Coliseum*^

                    Fri, Nov 3 - Vancouver, BC - PNE Forum*^

                    Sat, Nov 4 - Vancouver, BC - PNE Forum*^

                    Wed, Nov 8 - Minneapolis, MN - Myth*^

                    Thu, Nov 9 - Minneapolis, MN - Myth*^

                    Fri, Nov 10 - Madison, WI - Alliant Energy Center*^

                    Sat, Nov 11 - Chicago, IL - UIC Pavilion*%

                    Mon, Nov 13 - Grand Rapids, MI - 20 Monroe Live*%

                    Tue, Nov 14 - Detroit, MI - Masonic Temple*%

                    Fri, Nov 17 - Montreal, QC - Metropolis*%

                    Sat, Nov 18 - Montreal, QC - Metropolis*%

                    Mon, Nov 20 - Philadelphia, PA - Electric Factory*%

                    Tue, Nov 21 - Philadelphia, PA - Electric Factory*%

                    Wed, Nov 22 - Philadelphia, PA - Electric Factory*%

                    Fri, Nov 24 - Washington, DC - The Anthem*%

                    Mon, Dec 11 - Boston, MA - House Of Blues Boston*

                    Fri, Dec 15 - Brooklyn, NY - Barclays Center*
                     
                    *with SOFI TUKKER 

                    #with Hayden James and MUTO

                    @with The Kite String Tangle and Running Touch

                    %with Louis Futon 

                    +with Chet Porter 

                    ^with Kasbo 
                     
                    Follow ODESZA 

                    Website: http://odesza.co/official

                    Facebook: http://odesza.co/facebook

                    Twitter: http://odesza.co/twitter

                    Instagram: http://odesza.co/instagram

                    Spotify: http://odesza.co/spotify

                    Apple Music: http://odesza.co/apple-music

                    Youtube: http://odesza.co/youtube

                    Soundcloud: http://odesza.co/soundcloud

                    Snapchat: http://odesza.co/snapchat
                  genre: Electronic
                  tags: []
                  artworkUrl: https://i1.sndcdn.com/artworks-nU2mhziz3vmX-0-t1080x1080.png
                  waveformUrl: https://wave.sndcdn.com/rgSJlLvcKjWR_m.json
                  durationMs: 234292
                  isPreviewOnly: false
                  plays: 4640225
                  likes: 75321
                  reposts: 4151
                  comments: 1733
                  downloads: 0
                  createdAt: '2017-09-08T13:54:04Z'
                  releaseDate: '2017-09-08T00:00:00Z'
                  displayDate: '2017-09-08T00:00:00Z'
                  lastModified: '2024-09-28T03:13:42Z'
                  isDownloadable: false
                  isCommentable: true
                  isStreamable: true
                  isPublic: true
                  license: all-rights-reserved
                  labelName: Counter Records
                  purchase:
                    title: Buy Now
                    url: http://odesza.co/a-moment-apart
                  policy: ALLOW
                  monetizationModel: NOT_APPLICABLE
                  embeddableBy: all
                  publisher:
                    artist: ODESZA
                    albumTitle: A Moment Apart
                    releaseTitle: A Moment Apart
                    isrc: GBCFB1700210
                    upc: '5054429119183'
                    isExplicit: false
                    pLine: >-
                      ℗ 2017 Foreign Family Collective under exclusive license
                      to Counter Records
                    cLine: >-
                      © 2017 Foreign Family Collective under exclusive license
                      to Counter Records
                    containsMusic: true
                  transcodings:
                    - url: >-
                        https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/cbc-encrypted-hls
                      preset: aac_160k
                      protocol: cbc-encrypted-hls
                      mimeType: audio/mp4; codecs="mp4a.40.2"
                      quality: sq
                      isSnippet: false
                      durationMs: 234267
                      isLegacy: false
                    - url: >-
                        https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/ctr-encrypted-hls
                      preset: aac_160k
                      protocol: ctr-encrypted-hls
                      mimeType: audio/mp4; codecs="mp4a.40.2"
                      quality: sq
                      isSnippet: false
                      durationMs: 234267
                      isLegacy: false
                    - url: >-
                        https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/2798e696-9f2c-4ad6-9d93-132b834b2c92/stream/cbc-encrypted-hls
                      preset: aac_96k
                      protocol: cbc-encrypted-hls
                      mimeType: audio/mp4; codecs="mp4a.40.2"
                      quality: lq
                      isSnippet: false
                      durationMs: 234267
                      isLegacy: false
                  artist:
                    id: '18604897'
                    handle: odesza
                    url: https://soundcloud.com/odesza
                    name: ODESZA
                    avatarUrl: >-
                      https://i1.sndcdn.com/avatars-9N0KOFupZRs2l2QQ-seYNnA-large.jpg
                    isVerified: true
                    followers: 783898
                  fetchedAt: '2026-11-11T09:06:14.421Z'
                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
        '404':
          description: No such track (it may not exist, be private or have been removed).
          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 SoundCloud track 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.