openapi: 3.0.1
info:
title: TIDAL Recommendations API
version: 1.10.14
description: Personalized recommendations including Daily Mixes, Discovery Mix, New Release Mix, Offline Mix, and dynamic
editorial pages.
x-source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json
servers:
- url: https://openapi.tidal.com/v2
description: Production
paths:
/dynamicModules:
get:
description: Retrieves multiple dynamicModules by available filters, or without if applicable.
parameters:
- in: query
name: refreshId
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: The type of device making the request
example: PHONE
in: query
name: deviceType
required: true
schema:
type: string
enum:
- BROWSER
- CAR
- DESKTOP
- PHONE
- TABLET
- TV
- description: The system type of the device making the request
example: IOS
in: query
name: systemType
required: true
schema:
type: string
enum:
- ANDROID
- DESKTOP
- TESLA
- IOS
- WEB
- description: Client version number
example: 2026.0.1
in: query
name: clientVersion
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
- description: DynamicModules Id (e.g. `nejMcAhh5N8S3EQ4LaqysVdI0cZZ`)
in: query
name: filter[id]
required: false
schema:
type: array
items:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DynamicModules_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: []
summary: Get multiple dynamicModules.
tags:
- dynamicModules
x-path-item-properties:
required-access-tier: INTERNAL
/dynamicModules/{id}/relationships/items:
get:
description: Retrieves items relationship.
parameters:
- description: DynamicModules Id
example: nejMcAhh5N8S3EQ4LaqysVdI0cZZ
in: path
name: id
required: true
schema:
type: string
- in: query
name: refreshId
required: false
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: The type of device making the request
example: PHONE
in: query
name: deviceType
required: true
schema:
type: string
enum:
- BROWSER
- CAR
- DESKTOP
- PHONE
- TABLET
- TV
- description: The system type of the device making the request
example: IOS
in: query
name: systemType
required: true
schema:
type: string
enum:
- ANDROID
- DESKTOP
- TESLA
- IOS
- WEB
- description: Client version number
example: 2026.0.1
in: query
name: clientVersion
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DynamicModules_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:
- r_usr
summary: Get items relationship ("to-many").
tags:
- dynamicModules
x-path-item-properties:
required-access-tier: INTERNAL
/dynamicPages:
get:
description: Retrieves multiple dynamicPages by available filters, or without if applicable.
parameters:
- in: query
name: refreshId
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: The type of device making the request
example: PHONE
in: query
name: deviceType
required: true
schema:
type: string
enum:
- BROWSER
- CAR
- DESKTOP
- PHONE
- TABLET
- TV
- description: The system type of the device making the request
example: IOS
in: query
name: systemType
required: true
schema:
type: string
enum:
- ANDROID
- DESKTOP
- TESLA
- IOS
- WEB
- description: Client version number
example: 2026.0.1
in: query
name: clientVersion
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: dynamicModules,
subject'
example: dynamicModules
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: dynamicModules
- description: type of the page (e.g. `ARTIST`)
in: query
name: filter[pageType]
required: false
schema:
type: array
items:
type: string
- description: the subject id, eg. artistId (e.g. `67890`)
in: query
name: filter[subject.id]
required: false
schema:
type: array
items:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DynamicPages_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: []
summary: Get multiple dynamicPages.
tags:
- dynamicPages
x-path-item-properties:
required-access-tier: INTERNAL
/dynamicPages/{id}/relationships/dynamicModules:
get:
description: Retrieves dynamicModules relationship.
parameters:
- description: DynamicPages Id
example: nejMcAhh5N8S3EQ4LaqysVdI0cZZ
in: path
name: id
required: true
schema:
type: string
- in: query
name: refreshId
required: false
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: The type of device making the request
example: PHONE
in: query
name: deviceType
required: true
schema:
type: string
enum:
- BROWSER
- CAR
- DESKTOP
- PHONE
- TABLET
- TV
- description: The system type of the device making the request
example: IOS
in: query
name: systemType
required: true
schema:
type: string
enum:
- ANDROID
- DESKTOP
- TESLA
- IOS
- WEB
- description: Client version number
example: 2026.0.1
in: query
name: clientVersion
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: dynamicModules'
example: dynamicModules
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: dynamicModules
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DynamicPages_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:
- r_usr
summary: Get dynamicModules relationship ("to-many").
tags:
- dynamicPages
x-path-item-properties:
required-access-tier: INTERNAL
/dynamicPages/{id}/relationships/subject:
get:
description: Retrieves subject relationship.
parameters:
- description: DynamicPages Id
example: nejMcAhh5N8S3EQ4LaqysVdI0cZZ
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: subject'
example: subject
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: subject
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DynamicPages_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:
- r_usr
summary: Get subject relationship ("to-one").
tags:
- dynamicPages
x-path-item-properties:
required-access-tier: INTERNAL
/userDailyMixes/{id}:
get:
description: Retrieves single userDailyMixe by id.
parameters:
- description: User daily mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserDailyMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get single userDailyMixe.
tags:
- userDailyMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userDailyMixes/{id}/relationships/items:
get:
description: Retrieves items relationship.
parameters:
- description: User daily mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserDailyMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get items relationship ("to-many").
tags:
- userDailyMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userDiscoveryMixes/{id}:
get:
description: Retrieves single userDiscoveryMixe by id.
parameters:
- description: User discovery mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserDiscoveryMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get single userDiscoveryMixe.
tags:
- userDiscoveryMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userDiscoveryMixes/{id}/relationships/items:
get:
description: Retrieves items relationship.
parameters:
- description: User discovery mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserDiscoveryMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get items relationship ("to-many").
tags:
- userDiscoveryMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userNewReleaseMixes/{id}:
get:
description: Retrieves single userNewReleaseMixe by id.
parameters:
- description: User new release mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserNewReleaseMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get single userNewReleaseMixe.
tags:
- userNewReleaseMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userNewReleaseMixes/{id}/relationships/items:
get:
description: Retrieves items relationship.
parameters:
- description: User new release mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserNewReleaseMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get items relationship ("to-many").
tags:
- userNewReleaseMixes
x-path-item-properties:
required-access-tier: THIRD_PARTY
/userOfflineMixes/{id}:
get:
description: Retrieves single userOfflineMixe by id.
parameters:
- description: User offline mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserOfflineMixes_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:
- Authorization_Code_PKCE:
- r_usr
- recommendations.read
summary: Get single userOfflineMixe.
tags:
- userOfflineMixes
x-path-item-properties:
required-access-tier: INTERNAL
/userOfflineMixes/{id}/relationships/items:
get:
description: Retrieves items relationship.
parameters:
- description: User offline mixes id. Use `me` for the authenticated user's resource
example: me
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: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
example: en-US
in: query
name: locale
required: false
schema:
type: string
default: en-US
- description: 'Allows the client to customize which related resources should be returned. Available options: items'
example: items
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: items
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserOfflineMixes_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/resp
# --- truncated at 32 KB (184 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/openapi/tidal-recommendations-api-openapi.yml