TIDAL Recommendations API — Dynamic Pages and Modules
TIDAL Recommendations API — Dynamic Pages and Modules. 5 operations. Self-contained Naftiko capability covering one TIDAL business surface.
TIDAL Recommendations API — Dynamic Pages and Modules is a Naftiko capability published by TIDAL, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 5 operations across the GET method.
The capability includes 5 read-only operations. Lead operation: Get multiple dynamicModules. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.
Tagged areas include TIDAL, Music, dynamicPages, and dynamicModules.
What You Can Do
MCP Tools
tidal-getdynamicmodules
Get multiple dynamicModules.
tidal-getdynamicmodules
Get items relationship ("to-many").
tidal-getdynamicpages
Get multiple dynamicPages.
tidal-getdynamicpages
Get dynamicModules relationship ("to-many").
tidal-getdynamicpages
Get subject relationship ("to-one").
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: TIDAL Recommendations API — Dynamic Pages and Modules
description: TIDAL Recommendations API — Dynamic Pages and Modules. 5 operations. Self-contained Naftiko capability covering
one TIDAL business surface.
tags:
- TIDAL
- Music
- dynamicPages
- dynamicModules
created: '2026-05-25'
modified: '2026-05-25'
binds:
- namespace: env
keys:
TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN
capability:
consumes:
- type: http
namespace: recommendations-dynamic-pages
baseUri: https://openapi.tidal.com
description: TIDAL Recommendations API — Dynamic Pages and Modules business capability. Self-contained, no shared references.
resources:
- name: dynamicModules
path: /dynamicModules
operations:
- name: getdynamicmodules
method: GET
description: Get multiple dynamicModules.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: refreshId
in: query
type: string
description: ''
required: false
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: locale
in: query
type: string
description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
required: false
- name: deviceType
in: query
type: string
description: The type of device making the request
required: true
- name: systemType
in: query
type: string
description: The system type of the device making the request
required: true
- name: clientVersion
in: query
type: string
description: Client version number
required: true
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: items'
required: false
- name: filter[id]
in: query
type: array
description: DynamicModules Id (e.g. `nejMcAhh5N8S3EQ4LaqysVdI0cZZ`)
required: false
- name: dynamicModules-id-relationships-items
path: /dynamicModules/{id}/relationships/items
operations:
- name: getdynamicmodules
method: GET
description: Get items relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: DynamicModules Id
required: true
- name: refreshId
in: query
type: string
description: ''
required: false
- name: page[cursor]
in: query
type: string
description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
specified
required: false
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: locale
in: query
type: string
description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
required: false
- name: deviceType
in: query
type: string
description: The type of device making the request
required: true
- name: systemType
in: query
type: string
description: The system type of the device making the request
required: true
- name: clientVersion
in: query
type: string
description: Client version number
required: true
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: items'
required: false
- name: dynamicPages
path: /dynamicPages
operations:
- name: getdynamicpages
method: GET
description: Get multiple dynamicPages.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: refreshId
in: query
type: string
description: ''
required: false
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: locale
in: query
type: string
description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
required: false
- name: deviceType
in: query
type: string
description: The type of device making the request
required: true
- name: systemType
in: query
type: string
description: The system type of the device making the request
required: true
- name: clientVersion
in: query
type: string
description: Client version number
required: true
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: dynamicModules,
subject'
required: false
- name: filter[pageType]
in: query
type: array
description: type of the page (e.g. `ARTIST`)
required: false
- name: filter[subject.id]
in: query
type: array
description: the subject id, eg. artistId (e.g. `67890`)
required: false
- name: dynamicPages-id-relationships-dynamicModules
path: /dynamicPages/{id}/relationships/dynamicModules
operations:
- name: getdynamicpages
method: GET
description: Get dynamicModules relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: DynamicPages Id
required: true
- name: refreshId
in: query
type: string
description: ''
required: false
- name: page[cursor]
in: query
type: string
description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
specified
required: false
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: locale
in: query
type: string
description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
required: false
- name: deviceType
in: query
type: string
description: The type of device making the request
required: true
- name: systemType
in: query
type: string
description: The system type of the device making the request
required: true
- name: clientVersion
in: query
type: string
description: Client version number
required: true
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: dynamicModules'
required: false
- name: dynamicPages-id-relationships-subject
path: /dynamicPages/{id}/relationships/subject
operations:
- name: getdynamicpages
method: GET
description: Get subject relationship ("to-one").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: DynamicPages Id
required: true
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: subject'
required: false
authentication:
type: bearer
value: '{{env.TIDAL_ACCESS_TOKEN}}'
placement: header
header: Authorization
prefix: 'Bearer '
exposes:
- type: rest
namespace: recommendations-dynamic-pages-rest
port: 8080
description: REST adapter for TIDAL Recommendations API — Dynamic Pages and Modules. One Spectral-compliant resource per
consumed operation, prefixed with /v2.
resources:
- path: /v2/dynamicModules
name: dynamicModules
description: REST surface for dynamicModules.
operations:
- method: GET
name: getdynamicmodules
description: Get multiple dynamicModules.
call: recommendations-dynamic-pages.getdynamicmodules
with:
refreshId: rest.query.refreshId
countryCode: rest.query.countryCode
locale: rest.query.locale
deviceType: rest.query.deviceType
systemType: rest.query.systemType
clientVersion: rest.query.clientVersion
include: rest.query.include
filter[id]: rest.query.filter[id]
outputParameters:
- type: object
mapping: $.
- path: /v2/dynamicModules/{id}/relationships/items
name: dynamicModules-id-relationships-items
description: REST surface for dynamicModules-id-relationships-items.
operations:
- method: GET
name: getdynamicmodules
description: Get items relationship ("to-many").
call: recommendations-dynamic-pages.getdynamicmodules
with:
id: rest.path.id
refreshId: rest.query.refreshId
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
locale: rest.query.locale
deviceType: rest.query.deviceType
systemType: rest.query.systemType
clientVersion: rest.query.clientVersion
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/dynamicPages
name: dynamicPages
description: REST surface for dynamicPages.
operations:
- method: GET
name: getdynamicpages
description: Get multiple dynamicPages.
call: recommendations-dynamic-pages.getdynamicpages
with:
refreshId: rest.query.refreshId
countryCode: rest.query.countryCode
locale: rest.query.locale
deviceType: rest.query.deviceType
systemType: rest.query.systemType
clientVersion: rest.query.clientVersion
include: rest.query.include
filter[pageType]: rest.query.filter[pageType]
filter[subject.id]: rest.query.filter[subject.id]
outputParameters:
- type: object
mapping: $.
- path: /v2/dynamicPages/{id}/relationships/dynamicModules
name: dynamicPages-id-relationships-dynamicModules
description: REST surface for dynamicPages-id-relationships-dynamicModules.
operations:
- method: GET
name: getdynamicpages
description: Get dynamicModules relationship ("to-many").
call: recommendations-dynamic-pages.getdynamicpages
with:
id: rest.path.id
refreshId: rest.query.refreshId
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
locale: rest.query.locale
deviceType: rest.query.deviceType
systemType: rest.query.systemType
clientVersion: rest.query.clientVersion
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/dynamicPages/{id}/relationships/subject
name: dynamicPages-id-relationships-subject
description: REST surface for dynamicPages-id-relationships-subject.
operations:
- method: GET
name: getdynamicpages
description: Get subject relationship ("to-one").
call: recommendations-dynamic-pages.getdynamicpages
with:
id: rest.path.id
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: recommendations-dynamic-pages-mcp
port: 9090
transport: http
description: MCP adapter for TIDAL Recommendations API — Dynamic Pages and Modules. One tool per consumed operation.
tools:
- name: tidal-getdynamicmodules
description: Get multiple dynamicModules.
hints:
readOnly: true
destructive: false
idempotent: true
call: recommendations-dynamic-pages.getdynamicmodules
with:
refreshId: tools.refreshId
countryCode: tools.countryCode
locale: tools.locale
deviceType: tools.deviceType
systemType: tools.systemType
clientVersion: tools.clientVersion
include: tools.include
filter[id]: tools.filter[id]
outputParameters:
- type: object
mapping: $.
- name: tidal-getdynamicmodules
description: Get items relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: recommendations-dynamic-pages.getdynamicmodules
with:
id: tools.id
refreshId: tools.refreshId
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
locale: tools.locale
deviceType: tools.deviceType
systemType: tools.systemType
clientVersion: tools.clientVersion
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getdynamicpages
description: Get multiple dynamicPages.
hints:
readOnly: true
destructive: false
idempotent: true
call: recommendations-dynamic-pages.getdynamicpages
with:
refreshId: tools.refreshId
countryCode: tools.countryCode
locale: tools.locale
deviceType: tools.deviceType
systemType: tools.systemType
clientVersion: tools.clientVersion
include: tools.include
filter[pageType]: tools.filter[pageType]
filter[subject.id]: tools.filter[subject.id]
outputParameters:
- type: object
mapping: $.
- name: tidal-getdynamicpages
description: Get dynamicModules relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: recommendations-dynamic-pages.getdynamicpages
with:
id: tools.id
refreshId: tools.refreshId
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
locale: tools.locale
deviceType: tools.deviceType
systemType: tools.systemType
clientVersion: tools.clientVersion
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getdynamicpages
description: Get subject relationship ("to-one").
hints:
readOnly: true
destructive: false
idempotent: true
call: recommendations-dynamic-pages.getdynamicpages
with:
id: tools.id
include: tools.include
outputParameters:
- type: object
mapping: $.