# SoundCloud API
> Read SoundCloud in real time — no login or key needed. Full-text search across everything or specifically tracks, users and playlists; resolve any soundcloud.com URL to its object; and fetch a track's detail and comments, a user's profile, their tracks, playlists, likes, followers and following, a playlist's detail, and the trending charts by genre. Tracks, users and playlists are addressed by numeric id (from search/resolve). The public web client_id is resolved automatically and refreshed on expiry; every call is live (no cache) and returns the upstream SoundCloud shape, paginated with limit + offset. 16 endpoints. Built for music discovery, artist and audience analytics and audio content aggregation. A SoundCloud (creator audio) data API — distinct from the Music API (Deezer commercial catalog). No upstream key, no cache.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/soundcloud-api/..."
```

## Pricing
- **Free** (Free) — 3,200 calls/Mo, 2 req/s
- **Starter** ($9/Mo) — 64,000 calls/Mo, 8 req/s
- **Pro** ($28/Mo) — 320,000 calls/Mo, 20 req/s
- **Mega** ($62/Mo) — 1,580,000 calls/Mo, 50 req/s

## Endpoints

### Search

#### `GET /v1/resolve` — Resolve a soundcloud.com URL

**Parameters:**
- `url` (query, required, string) — soundcloud.com URL

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/resolve"
```

#### `GET /v1/search` — Search (all)

**Parameters:**
- `q` (query, required, string) — Query Example: `lofi`
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/search?q=lofi"
```

**Response:**
```json
{
    "data": {
        "next_href": "https://api-v2.soundcloud.com/search?query_urn=soundcloud%3Asearch%3A11144f2f03734f26b352231023e395aa&limit=20&offset=20&q=lofi",
        "query_urn": "soundcloud:search:11144f2f03734f26b352231023e395aa",
        "collection": [
            {
                "id": 173899647,
                "uri": "https://api.soundcloud.com/users/soundcloud%3Ausers%3A173899647",
                "urn": "soundcloud:users:173899647",
                "city": "Rap~~Old School~Mix Meditation",
                "kind": "user",
                "badges": {
                    "pro": false,
                    "verified": true,
                    "pro_unlimited": true,
                    "creator_mid_tier": false
                },
                "visuals": {
                    "urn": "soundcloud:users:173899647",
                    "enabled": true,
                    "visuals": [
                        {
                            "urn": "soundcloud:visuals:60877357",
                            "link": "http://www.davidsanyabeats.com/",
                            "entry_time": 0,
                            "visual_url": "https://i1.sndcdn.com/visuals-000173899647-t7oqn5-original.jpg"
                        }
                    ],
                    "tracking": null
                },
                "username": "LoFi",
                "verified": true,
                "full_name": "LoFi Chill",
                "last_name": "",
                "permal
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/playlists` — Search playlists

**Parameters:**
- `q` (query, required, string) — Query Example: `summer`
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/search/playlists?q=summer"
```

**Response:**
```json
{
    "data": {
        "next_href": "https://api-v2.soundcloud.com/search/playlists?query_urn=soundcloud%3Asearch%3A5b96fd75cd4f4c84b3c29cdd7adda943&limit=20&offset=20&q=summer",
        "query_urn": "soundcloud:search:5b96fd75cd4f4c84b3c29cdd7adda943",
        "collection": [
            {
                "id": 2220415994,
                "uri": "https://api.soundcloud.com/playlists/soundcloud%3Aplaylists%3A2220415994",
                "kind": "playlist",
                "user": {
                    "id": 1331370150,
                    "uri": "https://api.soundcloud.com/users/soundcloud%3Ausers%3A1331370150",
                    "urn": "soundcloud:users:1331370150",
                    "city": null,
                    "kind": "user",
                    "badges": {
                        "pro": false,
                        "verified": false,
                        "pro_unlimited": true,
                        "creator_mid_tier": false
                    },
                    "visuals": {
                        "urn": "soundcloud:users:1331370150",
                        "enabled": true,
                        "visuals": [
                            {
                                "urn": "soundcloud:visuals:207204150",
                                "entry_time": 0,
                                "visual_url": "https://i1.sndcdn.com/visuals-001331370150-eMVPbK-original.jpg"
                            }
                        ],
                        "tr
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/tracks` — Search tracks

**Parameters:**
- `q` (query, required, string) — Query Example: `chill`
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/search/tracks?q=chill"
```

**Response:**
```json
{
    "data": {
        "next_href": "https://api-v2.soundcloud.com/search/tracks?query_urn=soundcloud%3Asearch%3Ac5373b9e70b048a98256b7c670f2eaae&limit=20&offset=20&q=chill",
        "query_urn": "soundcloud:search:c5373b9e70b048a98256b7c670f2eaae",
        "collection": [
            {
                "id": 2048639800,
                "uri": "https://api.soundcloud.com/tracks/soundcloud%3Atracks%3A2048639800",
                "urn": "soundcloud:tracks:2048639800",
                "kind": "track",
                "user": {
                    "id": 1263049933,
                    "uri": "https://api.soundcloud.com/users/soundcloud%3Ausers%3A1263049933",
                    "urn": "soundcloud:users:1263049933",
                    "city": "SL",
                    "kind": "user",
                    "badges": {
                        "pro": false,
                        "verified": false,
                        "pro_unlimited": false,
                        "creator_mid_tier": false
                    },
                    "visuals": {
                        "urn": "soundcloud:users:1263049933",
                        "enabled": true,
                        "visuals": [
                            {
                                "urn": "soundcloud:visuals:239895135",
                                "entry_time": 0,
                                "visual_url": "https://i1.sndcdn.com/visuals-awy95yk2THvIWksN-q8dPdQ-original.jpg"
                            }
       
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/users` — Search users

**Parameters:**
- `q` (query, required, string) — Query Example: `dj`
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/search/users?q=dj"
```

**Response:**
```json
{
    "data": {
        "next_href": "https://api-v2.soundcloud.com/search/users?query_urn=soundcloud%3Asearch%3Aa4df3c719b1c451fa11925ff8cdcce89&limit=20&offset=20&q=dj",
        "query_urn": "soundcloud:search:a4df3c719b1c451fa11925ff8cdcce89",
        "collection": [
            {
                "id": 121777329,
                "uri": "https://api.soundcloud.com/users/soundcloud%3Ausers%3A121777329",
                "urn": "soundcloud:users:121777329",
                "city": "",
                "kind": "user",
                "badges": {
                    "pro": false,
                    "verified": true,
                    "pro_unlimited": false,
                    "creator_mid_tier": false
                },
                "visuals": {
                    "urn": "soundcloud:users:121777329",
                    "enabled": true,
                    "visuals": [
                        {
                            "urn": "soundcloud:visuals:241551615",
                            "entry_time": 0,
                            "visual_url": "https://i1.sndcdn.com/visuals-000121777329-P6i76O-original.jpg"
                        }
                    ],
                    "tracking": null
                },
                "username": "DJ XEXEU ( O CAMISA 10  )",
                "verified": true,
                "full_name": "BAILE DO ANAIA",
                "last_name": "",
                "permalink": "djxexeu10",
                "avatar_url": "https://i1.sndcdn.co
…(truncated, see openapi.json for full schema)
```

### Tracks

#### `GET /v1/track` — Track detail

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/track"
```

#### `GET /v1/track/comments` — Track comments

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/track/comments"
```

### Users

#### `GET /v1/user` — User detail

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user"
```

#### `GET /v1/user/followers` — User followers

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user/followers"
```

#### `GET /v1/user/following` — User following

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user/following"
```

#### `GET /v1/user/likes` — User likes

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user/likes"
```

#### `GET /v1/user/playlists` — User playlists

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user/playlists"
```

#### `GET /v1/user/tracks` — User tracks

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/user/tracks"
```

### Playlists

#### `GET /v1/playlist` — Playlist detail

**Parameters:**
- `id` (query, required, string) — Numeric id (from search/resolve)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/playlist"
```

### Discovery

#### `GET /v1/trending` — Trending charts

**Parameters:**
- `genre` (query, optional, string) — Genre (default all-music)
- `kind` (query, optional, string) — trending|top
- `limit` (query, optional, string) — Page size

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/trending"
```

**Response:**
```json
{
    "data": {
        "kind": "trending",
        "genre": "soundcloud:genres:all-music",
        "next_href": "https://api-v2.soundcloud.com/charts?genre=soundcloud%3Agenres%3Aall-music&query_urn=soundcloud%3Acharts%3A701f4733cff84c8798d2d8574ca9e2ef&offset=20&kind=trending&limit=20",
        "query_urn": "soundcloud:charts:701f4733cff84c8798d2d8574ca9e2ef",
        "collection": [
            {
                "score": 0.828671277533169,
                "track": {
                    "id": 2263160093,
                    "uri": "https://api.soundcloud.com/tracks/soundcloud%3Atracks%3A2263160093",
                    "urn": "soundcloud:tracks:2263160093",
                    "kind": "track",
                    "user": {
                        "id": 184934754,
                        "uri": "https://api.soundcloud.com/users/soundcloud%3Ausers%3A184934754",
                        "urn": "soundcloud:users:184934754",
                        "city": "SOUTH FLORIDA",
                        "kind": "user",
                        "badges": {
                            "pro": false,
                            "verified": true,
                            "pro_unlimited": true,
                            "creator_mid_tier": false
                        },
                        "username": "NJOY",
                        "verified": true,
                        "full_name": "IG: Official_NJOY",
                        "last_name": "",
                        "permalink":
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/soundcloud-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "auth": "none upstream; gateway requires x-api-key",
        "name": "SoundCloud API",
        "note": "Live, no data cache. resolve takes a soundcloud.com URL; track/user/playlist take numeric ids (from resolve/search). Pagination via limit + offset.",
        "source": "SoundCloud public api-v2 (web client_id, auto-refreshed)",
        "endpoints": 16
    },
    "meta": {
        "timestamp": "2026-06-02T16:53:27.833Z",
        "request_id": "993eeb55-4090-4773-a8c4-6a2a93bb4e50"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/soundcloud-api
OpenAPI spec: https://www.oanor.com/api/soundcloud-api/openapi.json
