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

# Similar tracks

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

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
      - `M` string, nullable
      - `L` string, nullable
      - `S` string, nullable
      - `XS` string, nullable
    - `waveformUrl` string, required — Reference to the waveform as a json object.
    - `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.
    - `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.
    - `isExplicit` boolean, nullable
    - `isPreviewOnly` boolean
  - `pagination` Pagination, required
    - `page` integer, required
    - `limit` integer, required
    - `offset` integer
  - `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.

---

[API](https://skmtc.net/epidemicsound/apis/partner-content-api.md) · [All operations](https://skmtc.net/epidemicsound/apis/partner-content-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epidemicsound/partner-content-api/revisions/c2fa1c98dbc2/schema)
