TIDAL Catalog API — Videos
TIDAL Catalog API — Videos. 11 operations. Self-contained Naftiko capability covering one TIDAL business surface.
TIDAL Catalog API — Videos is a Naftiko capability published by TIDAL, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 11 operations across the GET method rooted at /v2/videos.
The capability includes 11 read-only operations. Lead operation: Get multiple videos. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.
Tagged areas include TIDAL, Music, and videos.
What You Can Do
MCP Tools
tidal-getvideos
Get multiple videos.
tidal-getvideos
Get single video.
tidal-getvideos
Get albums relationship ("to-many").
tidal-getvideos
Get artists relationship ("to-many").
tidal-getvideos
Get credits relationship ("to-many").
tidal-getvideos
Get providers relationship ("to-many").
tidal-getvideos
Get replacement relationship ("to-one").
tidal-getvideos
Get similarVideos relationship ("to-many").
tidal-getvideos
Get suggestedVideos relationship ("to-many").
tidal-getvideos
Get thumbnailArt relationship ("to-many").
tidal-getvideos
Get usageRules relationship ("to-one").
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: TIDAL Catalog API — Videos
description: TIDAL Catalog API — Videos. 11 operations. Self-contained Naftiko capability covering one TIDAL business surface.
tags:
- TIDAL
- Music
- videos
created: '2026-05-25'
modified: '2026-05-25'
binds:
- namespace: env
keys:
TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN
capability:
consumes:
- type: http
namespace: catalog-videos
baseUri: https://openapi.tidal.com
description: TIDAL Catalog API — Videos business capability. Self-contained, no shared references.
resources:
- name: videos
path: /videos
operations:
- name: getvideos
method: GET
description: Get multiple videos.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: albums,
artists, credits, providers, replacement, simila'
required: false
- name: filter[id]
in: query
type: array
description: List of video IDs (e.g. `75623239`)
required: false
- name: filter[isrc]
in: query
type: array
description: List of ISRCs (e.g. `QMJMT1701237`)
required: false
- name: videos-id
path: /videos/{id}
operations:
- name: getvideos
method: GET
description: Get single video.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: albums,
artists, credits, providers, replacement, simila'
required: false
- name: videos-id-relationships-albums
path: /videos/{id}/relationships/albums
operations:
- name: getvideos
method: GET
description: Get albums relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: albums'
required: false
- name: videos-id-relationships-artists
path: /videos/{id}/relationships/artists
operations:
- name: getvideos
method: GET
description: Get artists relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: artists'
required: false
- name: videos-id-relationships-credits
path: /videos/{id}/relationships/credits
operations:
- name: getvideos
method: GET
description: Get credits relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: credits'
required: false
- name: videos-id-relationships-providers
path: /videos/{id}/relationships/providers
operations:
- name: getvideos
method: GET
description: Get providers relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: providers'
required: false
- name: videos-id-relationships-replacement
path: /videos/{id}/relationships/replacement
operations:
- name: getvideos
method: GET
description: Get replacement relationship ("to-one").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: replacement'
required: false
- name: videos-id-relationships-similarVideos
path: /videos/{id}/relationships/similarVideos
operations:
- name: getvideos
method: GET
description: Get similarVideos relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: similarVideos'
required: false
- name: videos-id-relationships-suggestedVideos
path: /videos/{id}/relationships/suggestedVideos
operations:
- name: getvideos
method: GET
description: Get suggestedVideos relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: suggestedVideos'
required: false
- name: videos-id-relationships-thumbnailArt
path: /videos/{id}/relationships/thumbnailArt
operations:
- name: getvideos
method: GET
description: Get thumbnailArt relationship ("to-many").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- 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: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: thumbnailArt'
required: false
- name: videos-id-relationships-usageRules
path: /videos/{id}/relationships/usageRules
operations:
- name: getvideos
method: GET
description: Get usageRules relationship ("to-one").
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video id
required: true
- name: countryCode
in: query
type: string
description: ISO 3166-1 alpha-2 country code
required: false
- name: include
in: query
type: array
description: 'Allows the client to customize which related resources should be returned. Available options: usageRules'
required: false
authentication:
type: bearer
value: '{{env.TIDAL_ACCESS_TOKEN}}'
placement: header
header: Authorization
prefix: 'Bearer '
exposes:
- type: rest
namespace: catalog-videos-rest
port: 8080
description: REST adapter for TIDAL Catalog API — Videos. One Spectral-compliant resource per consumed operation, prefixed
with /v2.
resources:
- path: /v2/videos
name: videos
description: REST surface for videos.
operations:
- method: GET
name: getvideos
description: Get multiple videos.
call: catalog-videos.getvideos
with:
countryCode: rest.query.countryCode
include: rest.query.include
filter[id]: rest.query.filter[id]
filter[isrc]: rest.query.filter[isrc]
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}
name: videos-id
description: REST surface for videos-id.
operations:
- method: GET
name: getvideos
description: Get single video.
call: catalog-videos.getvideos
with:
id: rest.path.id
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/albums
name: videos-id-relationships-albums
description: REST surface for videos-id-relationships-albums.
operations:
- method: GET
name: getvideos
description: Get albums relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/artists
name: videos-id-relationships-artists
description: REST surface for videos-id-relationships-artists.
operations:
- method: GET
name: getvideos
description: Get artists relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/credits
name: videos-id-relationships-credits
description: REST surface for videos-id-relationships-credits.
operations:
- method: GET
name: getvideos
description: Get credits relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/providers
name: videos-id-relationships-providers
description: REST surface for videos-id-relationships-providers.
operations:
- method: GET
name: getvideos
description: Get providers relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/replacement
name: videos-id-relationships-replacement
description: REST surface for videos-id-relationships-replacement.
operations:
- method: GET
name: getvideos
description: Get replacement relationship ("to-one").
call: catalog-videos.getvideos
with:
id: rest.path.id
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/similarVideos
name: videos-id-relationships-similarVideos
description: REST surface for videos-id-relationships-similarVideos.
operations:
- method: GET
name: getvideos
description: Get similarVideos relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/suggestedVideos
name: videos-id-relationships-suggestedVideos
description: REST surface for videos-id-relationships-suggestedVideos.
operations:
- method: GET
name: getvideos
description: Get suggestedVideos relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/thumbnailArt
name: videos-id-relationships-thumbnailArt
description: REST surface for videos-id-relationships-thumbnailArt.
operations:
- method: GET
name: getvideos
description: Get thumbnailArt relationship ("to-many").
call: catalog-videos.getvideos
with:
id: rest.path.id
page[cursor]: rest.query.page[cursor]
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- path: /v2/videos/{id}/relationships/usageRules
name: videos-id-relationships-usageRules
description: REST surface for videos-id-relationships-usageRules.
operations:
- method: GET
name: getvideos
description: Get usageRules relationship ("to-one").
call: catalog-videos.getvideos
with:
id: rest.path.id
countryCode: rest.query.countryCode
include: rest.query.include
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: catalog-videos-mcp
port: 9090
transport: http
description: MCP adapter for TIDAL Catalog API — Videos. One tool per consumed operation.
tools:
- name: tidal-getvideos
description: Get multiple videos.
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
countryCode: tools.countryCode
include: tools.include
filter[id]: tools.filter[id]
filter[isrc]: tools.filter[isrc]
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get single video.
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get albums relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get artists relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get credits relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get providers relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get replacement relationship ("to-one").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get similarVideos relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get suggestedVideos relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get thumbnailArt relationship ("to-many").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
page[cursor]: tools.page[cursor]
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: tidal-getvideos
description: Get usageRules relationship ("to-one").
hints:
readOnly: true
destructive: false
idempotent: true
call: catalog-videos.getvideos
with:
id: tools.id
countryCode: tools.countryCode
include: tools.include
outputParameters:
- type: object
mapping: $.