TIDAL · Capability

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.

Run with Naftiko TIDALMusicvideos

What You Can Do

GET
Getvideos — Get multiple videos.
/v2/videos
GET
Getvideos — Get single video.
/v2/videos/{id}
GET
Getvideos — Get albums relationship ("to-many").
/v2/videos/{id}/relationships/albums
GET
Getvideos — Get artists relationship ("to-many").
/v2/videos/{id}/relationships/artists
GET
Getvideos — Get credits relationship ("to-many").
/v2/videos/{id}/relationships/credits
GET
Getvideos — Get providers relationship ("to-many").
/v2/videos/{id}/relationships/providers
GET
Getvideos — Get replacement relationship ("to-one").
/v2/videos/{id}/relationships/replacement
GET
Getvideos — Get similarVideos relationship ("to-many").
/v2/videos/{id}/relationships/similarVideos
GET
Getvideos — Get suggestedVideos relationship ("to-many").
/v2/videos/{id}/relationships/suggestedVideos
GET
Getvideos — Get thumbnailArt relationship ("to-many").
/v2/videos/{id}/relationships/thumbnailArt
GET
Getvideos — Get usageRules relationship ("to-one").
/v2/videos/{id}/relationships/usageRules

MCP Tools

tidal-getvideos

Get multiple videos.

read-only idempotent
tidal-getvideos

Get single video.

read-only idempotent
tidal-getvideos

Get albums relationship ("to-many").

read-only idempotent
tidal-getvideos

Get artists relationship ("to-many").

read-only idempotent
tidal-getvideos

Get credits relationship ("to-many").

read-only idempotent
tidal-getvideos

Get providers relationship ("to-many").

read-only idempotent
tidal-getvideos

Get replacement relationship ("to-one").

read-only idempotent
tidal-getvideos

Get similarVideos relationship ("to-many").

read-only idempotent
tidal-getvideos

Get suggestedVideos relationship ("to-many").

read-only idempotent
tidal-getvideos

Get thumbnailArt relationship ("to-many").

read-only idempotent
tidal-getvideos

Get usageRules relationship ("to-one").

read-only idempotent

Capability Spec

catalog-videos.yaml Raw ↑
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: $.