---
title: "Returns a track's streamable URLs (needs to keep using authentication)"
method: GET
path: "/tracks/{track_urn}/streams"
tags: ["tracks"]
---

# Returns a track's streamable URLs (needs to keep using authentication)

`GET /tracks/{track_urn}/streams`

## Request

- Base URL: `https://api.soundcloud.com`
- URL: `https://api.soundcloud.com/tracks/{track_urn}/streams`
- Auth: one of:
  - API key in header `Authorization`
  - OAuth 2
    - Authorization code: `https://secure.soundcloud.com/authorize`
    - Client credentials
    - Token URL: `https://secure.soundcloud.com/oauth/token`
- TypeScript: <https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/docs/tracks/:track_urn/streams/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `track_urn` string, required

## Query parameters

- `secret_token` string

## Response `200`

Success

- Streams
  - `hls_aac_160_url` string
  - `hls_mp3_128_url` string
  - `preview_mp3_128_url` string

## Other responses

- `401`: Unauthorized
- `404`: Not Found

## Changes

- **2026-08-12** `60e07ee951c8`: 1 warning
  - removed the optional property `http_mp3_128_url` from the response with the `200` status
- **2026-07-17** `ab7b2ffc0193`: 1 breaking, 2 info
  - the `errors/items/` response's property type changed from `string` to `object` for status `404`
  - added the optional property `errors/items/error_message` to the response with the `401` status
  - added the optional property `errors/items/error_message` to the response with the `404` status

[Operation history](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/changes/tracks/:track_urn/streams/get.md)

---

[API](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification.md) - [All operations](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/revisions/0d057017b405?raw)
