openapi: 3.0.1
info:
title: TIDAL Catalog acceptedTerms tracks API
version: 1.10.14
description: 'Browse TIDAL''s high-fidelity music catalog: albums, artists, tracks, videos, genres, lyrics, credits, and artwork. JSON:API compliant with relationship traversal.'
x-source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json
servers:
- url: https://openapi.tidal.com/v2
description: Production
tags:
- name: tracks
paths:
/tracks:
get:
description: Retrieves multiple tracks by available filters, or without if applicable.
parameters:
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
in: query
name: sort
required: false
schema:
type: array
items:
type: string
example: createdAt
enum:
- createdAt
- -createdAt
- title
- -title
default: -createdAt
x-enum-varnames:
- CreatedAtAsc
- CreatedAtDesc
- TitleAsc
- TitleDesc
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: albums, artists, credits, download, genres, lyrics, metadataStatus, owners, priceConfig, providers, radio, replacement, shares, similarTracks, sourceFile, suggestedTracks, trackStatistics, usageRules'
example: albums
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: albums
- description: List of track IDs (e.g. `75413016`)
in: query
name: filter[id]
required: false
schema:
type: array
items:
type: string
- description: List of ISRCs. When a single ISRC is provided, pagination is supported and multiple tracks may be returned. When multiple ISRCs are provided, one track per ISRC is returned without pagination. (e.g. `QMJMT1701237`)
in: query
name: filter[isrc]
required: false
schema:
type: array
items:
type: string
- description: User id. Use `me` for the authenticated user
in: query
name: filter[owners.id]
required: false
schema:
type: array
items:
type: string
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Resource_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE:
- r_usr
summary: Get multiple tracks.
tags:
- tracks
x-path-item-properties:
required-access-tier: THIRD_PARTY
post:
description: Creates a new track.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TracksCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Single_Resource_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'409':
$ref: '#/components/responses/Idempotency409Response'
'415':
$ref: '#/components/responses/Default415Response'
'422':
$ref: '#/components/responses/Idempotency422Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE:
- w_usr
summary: Create single track.
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}:
delete:
description: Deletes existing track.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'409':
$ref: '#/components/responses/Idempotency409Response'
'415':
$ref: '#/components/responses/Default415Response'
'422':
$ref: '#/components/responses/Idempotency422Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE:
- w_usr
summary: Delete single track.
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
get:
description: Retrieves single track by id.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: albums, artists, credits, download, genres, lyrics, metadataStatus, owners, priceConfig, providers, radio, replacement, shares, similarTracks, sourceFile, suggestedTracks, trackStatistics, usageRules'
example: albums
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: albums
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Single_Resource_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get single track.
tags:
- tracks
x-path-item-properties:
required-access-tier: THIRD_PARTY
patch:
description: Updates existing track.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TracksUpdateOperation_Payload'
responses:
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'409':
$ref: '#/components/responses/Idempotency409Response'
'415':
$ref: '#/components/responses/Default415Response'
'422':
$ref: '#/components/responses/Idempotency422Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE:
- w_usr
summary: Update single track.
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/albums:
get:
description: Retrieves albums relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: albums'
example: albums
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: albums
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get albums relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: THIRD_PARTY
patch:
description: Updates albums relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TracksAlbumsRelationshipUpdateOperation_Payload'
responses:
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'409':
$ref: '#/components/responses/Idempotency409Response'
'415':
$ref: '#/components/responses/Default415Response'
'422':
$ref: '#/components/responses/Idempotency422Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE:
- w_usr
summary: Update albums relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/artists:
get:
description: Retrieves artists relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: artists'
example: artists
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: artists
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get artists relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: THIRD_PARTY
/tracks/{id}/relationships/credits:
get:
description: Retrieves credits relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: credits'
example: credits
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: credits
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get credits relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/download:
get:
description: Retrieves download relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: download'
example: download
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: download
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Single_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE: []
summary: Get download relationship ("to-one").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/genres:
get:
description: Retrieves genres relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: genres'
example: genres
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: genres
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get genres relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/lyrics:
get:
description: Retrieves lyrics relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: lyrics'
example: lyrics
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: lyrics
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get lyrics relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/metadataStatus:
get:
description: Retrieves metadataStatus relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: metadataStatus'
example: metadataStatus
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: metadataStatus
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Single_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Authorization_Code_PKCE: []
summary: Get metadataStatus relationship ("to-one").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/owners:
get:
description: Retrieves owners relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: owners'
example: owners
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: owners
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified
in: query
name: page[cursor]
required: false
schema:
type: string
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Multi_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get owners relationship ("to-many").
tags:
- tracks
x-path-item-properties:
required-access-tier: THIRD_PARTY
/tracks/{id}/relationships/priceConfig:
get:
description: Retrieves priceConfig relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: priceConfig'
example: priceConfig
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: priceConfig
- description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted.
in: query
name: shareCode
required: false
schema:
type: string
example: xyz
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Tracks_Single_Relationship_Data_Document'
description: Successful response
'400':
$ref: '#/components/responses/Default400Response'
'404':
$ref: '#/components/responses/Default404Response'
'405':
$ref: '#/components/responses/Default405Response'
'406':
$ref: '#/components/responses/Default406Response'
'415':
$ref: '#/components/responses/Default415Response'
'429':
$ref: '#/components/responses/Default429Response'
'500':
$ref: '#/components/responses/Default500Response'
'503':
$ref: '#/components/responses/Default503Response'
security:
- Client_Credentials: []
- Authorization_Code_PKCE: []
summary: Get priceConfig relationship ("to-one").
tags:
- tracks
x-path-item-properties:
required-access-tier: INTERNAL
/tracks/{id}/relationships/providers:
get:
description: Retrieves providers relationship.
parameters:
- description: Track id
example: '75413016'
in: path
name: id
required: true
schema:
type: string
- description: ISO 3166-1 alpha-2 country code
example: US
in: query
name: countryCode
required: false
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: providers'
example: providers
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: providers
- description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if no
# --- truncated at 32 KB (192 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/openapi/tidal-tracks-api-openapi.yml