---
title: "Similar tracks"
method: GET
path: "/v0/tracks/{trackId}/similar"
tags: ["Tracks"]
---

# Similar tracks

`GET /v0/tracks/{trackId}/similar`

## Request

- Base URL: `https://partner-content-api.epidemicsound.com`
- URL: `https://partner-content-api.epidemicsound.com/v0/tracks/{trackId}/similar`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://login.epidemicsound.com/auth/realms/accounts/protocol/openid-connect/auth`
    - Token URL: `https://login.epidemicsound.com/auth/realms/accounts/protocol/openid-connect/token`
  - HTTP bearer

The similar tracks endpoint allows developers to retrieve a list of tracks that are similar to a given reference track. This feature is designed to help users discover tracks that share similar characteristics, such as genre, mood, tempo, and more.
This endpoint helps your users replace tracks that don't fit perfectly or discover multiple alternatives to a track they enjoy.

## Path parameters

- `trackId` string, required

## Query parameters

- `offset` integer

## Response `200`

Paginated list of similar tracks

- TracksResponse
  - `tracks` TrackResponse[], required
    - `id` string, required: Unique ID of the track
    - `mainArtists` string[], required: The main artist that created the track.
    - `featuredArtists` string[], required: Additional artists that contributed to the track.
    - `title` string, required: Title of the track
    - `bpm` integer, required: Beats per minute for the track.
    - `length` integer, required: Track length in seconds
    - `moods` MoodResponse[], required: Lists the moods of the track.
      - `id` string, required: Unique ID of the mood
      - `name` string, required: Name of the mood
    - `genres` GenreResponse[], required: Lists the genres of the track.
      - `id` string, required
      - `name` string, required
      - `parent` ParentGenreResponse
        - `id` string, required: Unique ID of the parent genre
        - `name` string, required: Name of the parent genre
    - `images` ImagesResponse
      - `default` string, nullable
      - `XS` string, nullable
      - `S` string, nullable
      - `M` string, nullable
      - `L` string, nullable
    - `waveformUrl` string, required: Reference to the waveform as a json object.
    - `isExplicit` boolean, nullable
    - `hasVocals` boolean, nullable: Set to true if the track has vocals. Set to false for instrumental tracks.
    - `added` string, required: The date the track was released in the format YYYY-mm-dd.
    - `isPreviewOnly` boolean
    - `tierOption` 'PAID' | 'FREE', nullable
    - `isrc` string, nullable: International Standard Recording Code (ISRC) of the track, e.g. "SE5Q52401263".
    - `vocalType` 'LEAD' | 'PRESENCE' | 'NONE', nullable: Granular vocal classification: LEAD (sung lead vocals), PRESENCE (vocal chops/samples/ad-libs/textures) or NONE (instrumental). Null when unknown.
    - `availableStems` string[]: Types of the stems the track has, e.g. ["drums", "bass"]. Empty when the track has no stems. Listed even when the user can't download the track. Download them with `expand=stems` on the track download endpoint.
  - `pagination` Pagination, required
    - `limit` integer, required
    - `offset` integer
    - `page` integer, required
  - `links` PaginationLinks, required
    - `next` string, nullable
    - `prev` string, nullable
  - `aggregations` TaxonomyAggregations
    - `moods` TaxonomyAggregation[]
      - `id` string
      - `name` string
      - `count` integer
    - `genres` TaxonomyAggregation[]
      - `id` string
      - `name` string
      - `count` integer

## Other responses

- `400`: Bad request.
- `401`: Unauthorized. Most likely your access token has expired.
- `404`: Track was not found.
- `429`: Rate limit exceeded.

## Changes

- **2026-10-08** `1d7186d987dc`: 1 info
  - added the optional property `tracks/items/availableStems` to the response with the `200` status
- **2026-08-04** `6c19ee65bd42`: 1 info
  - added the optional property `tracks/items/vocalType` to the response with the `200` status
- **2026-06-12** `96bb63cfa6dc`: 2 info
  - the endpoint scheme security `ApiKeyAuth` was added to the API
  - added the optional property `tracks/items/isrc` to the response with the `200` status

[Operation history](https://skmtc.dev/epidemicsound/apis/partner-content-api/changes/v0/tracks/:trackId/similar/get.md)

---

[API](https://skmtc.dev/epidemicsound/apis/partner-content-api.md) - [All operations](https://skmtc.dev/epidemicsound/apis/partner-content-api/llms.txt) - [OpenAPI document](https://skmtc.dev/epidemicsound/apis/partner-content-api/revisions/5ef4d0e16278?raw)
