TIDAL comments API

The comments API from TIDAL — 5 operation(s) for comments.

OpenAPI Specification

tidal-comments-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: TIDAL Catalog acceptedTerms comments 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: comments
paths:
  /comments:
    get:
      description: Retrieves multiple comments 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
            - likeCount
            - -likeCount
            - replyCount
            - -replyCount
            - startTime
            - -startTime
            default: -createdAt
            x-enum-varnames:
            - CreatedAtAsc
            - CreatedAtDesc
            - LikeCountAsc
            - LikeCountDesc
            - ReplyCountAsc
            - ReplyCountDesc
            - StartTimeAsc
            - StartTimeDesc
      - description: 'Allows the client to customize which related resources should be returned. Available options: ownerProfiles, owners, parentComment'
        example: ownerProfiles
        in: query
        name: include
        required: false
        schema:
          type: array
          items:
            type: string
            example: ownerProfiles
      - description: Filter by parent comment ID to get replies (e.g. `550e8400-e29b-41d4-a716-446655440000`)
        in: query
        name: filter[parentComment.id]
        required: false
        schema:
          type: array
          items:
            type: string
      - description: Filter by subject resource ID (e.g. `12345`)
        in: query
        name: filter[subject.id]
        required: false
        schema:
          type: array
          items:
            type: string
      - description: Filter by subject resource type (e.g. `albums`)
        in: query
        name: filter[subject.type]
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - albums
            - tracks
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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:
      - Authorization_Code_PKCE: []
      summary: Get multiple comments.
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
    post:
      description: Creates a new comment.
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CommentsCreateOperation_Payload'
      responses:
        '201':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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 comment.
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
  /comments/{id}:
    delete:
      description: Deletes existing comment.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        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 comment.
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
    get:
      description: Retrieves single comment by id.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: 'Allows the client to customize which related resources should be returned. Available options: ownerProfiles, owners, parentComment'
        example: ownerProfiles
        in: query
        name: include
        required: false
        schema:
          type: array
          items:
            type: string
            example: ownerProfiles
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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: []
      summary: Get single comment.
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
    patch:
      description: Updates existing comment.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        in: path
        name: id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CommentsUpdateOperation_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 comment.
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
  /comments/{id}/relationships/ownerProfiles:
    get:
      description: Retrieves ownerProfiles relationship.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: 'Allows the client to customize which related resources should be returned. Available options: ownerProfiles'
        example: ownerProfiles
        in: query
        name: include
        required: false
        schema:
          type: array
          items:
            type: string
            example: ownerProfiles
      - 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
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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: []
      summary: Get ownerProfiles relationship ("to-many").
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
  /comments/{id}/relationships/owners:
    get:
      description: Retrieves owners relationship.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        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
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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: []
      summary: Get owners relationship ("to-many").
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
  /comments/{id}/relationships/parentComment:
    get:
      description: Retrieves parentComment relationship.
      parameters:
      - description: Comment Id
        example: 550e8400-e29b-41d4-a716-446655440000
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: 'Allows the client to customize which related resources should be returned. Available options: parentComment'
        example: parentComment
        in: query
        name: include
        required: false
        schema:
          type: array
          items:
            type: string
            example: parentComment
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Comments_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 parentComment relationship ("to-one").
      tags:
      - comments
      x-path-item-properties:
        required-access-tier: INTERNAL
components:
  schemas:
    TrackFiles_Attributes:
      type: object
      properties:
        albumAudioNormalizationData:
          $ref: '#/components/schemas/AudioNormalizationData'
        format:
          type: string
          description: File's audio format
          enum:
          - HEAACV1
          - AACLC
          - FLAC
          - FLAC_HIRES
          - EAC3_JOC
        trackAudioNormalizationData:
          $ref: '#/components/schemas/AudioNormalizationData'
        trackPresentation:
          type: string
          description: Track presentation
          enum:
          - FULL
          - PREVIEW
        url:
          type: string
          description: File URL
    PlayQueues_Future_Multi_Relationship_Data_Document:
      required:
      - links
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PlayQueues_Future_Resource_Identifier'
        included:
          $ref: '#/components/schemas/Included'
        links:
          $ref: '#/components/schemas/Links'
    UserCollectionArtists_Attributes:
      required:
      - numberOfItems
      type: object
      properties:
        lastModifiedAt:
          type: string
          description: When the collection was last modified
          format: date-time
        numberOfItems:
          type: integer
          description: Number of items in the collection
          format: int32
    UserCollectionAlbums_Items_Multi_Relationship_Data_Document:
      required:
      - links
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserCollectionAlbums_Items_Resource_Identifier'
        included:
          $ref: '#/components/schemas/Included'
        links:
          $ref: '#/components/schemas/Links'
    TrackSourceFiles_Relationships:
      properties:
        owners:
          $ref: '#/components/schemas/Multi_Relationship_Data_Document'
    ProviderProductInfos_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/ProviderProductInfos_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/ProviderProductInfos_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    Artists_Followers_Resource_Identifier_Meta:
      type: object
      properties:
        viewer:
          $ref: '#/components/schemas/Artists_Followers_Resource_Meta_ViewerContext'
    UserCollectionTracks_Attributes:
      required:
      - numberOfItems
      type: object
      properties:
        lastModifiedAt:
          type: string
          description: When the collection was last modified
          format: date-time
        numberOfItems:
          type: integer
          description: Number of items in the collection
          format: int32
    Terms_Attributes:
      required:
      - contentLink
      - countryCode
      - effectiveAt
      - termsType
      type: object
      properties:
        contentLink:
          $ref: '#/components/schemas/Link_Object'
        countryCode:
          type: string
        effectiveAt:
          type: string
          format: date-time
        termsType:
          type: string
          enum:
          - DEVELOPER
          - UPLOAD_MARKETPLACE
    Lyrics_Attributes:
      required:
      - technicalStatus
      type: object
      properties:
        direction:
          type: string
          enum:
          - LEFT_TO_RIGHT
          - RIGHT_TO_LEFT
        lrcText:
          type: string
        provider:
          oneOf:
          - $ref: '#/components/schemas/ThirdPartyLyricsProvider'
          - $ref: '#/components/schemas/TidalLyricsProvider'
        technicalStatus:
          type: string
          enum:
          - PENDING
          - PROCESSING
          - ERROR
          - OK
        text:
          type: string
    DynamicPages_Relationships:
      properties:
        dynamicModules:
          $ref: '#/components/schemas/Multi_Relationship_Data_Document'
        subject:
          $ref: '#/components/schemas/Single_Relationship_Data_Document'
    Albums_SuggestedCoverArts_Resource_Identifier:
      required:
      - id
      - type
      type: object
      properties:
        id:
          type: string
          description: Resource id
          example: '12345'
        meta:
          $ref: '#/components/schemas/Albums_SuggestedCoverArts_Resource_Identifier_Meta'
        type:
          type: string
          description: Resource type
          example: tracks
    Artists_Followers_Multi_Relationship_Data_Document:
      required:
      - links
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Artists_Followers_Resource_Identifier'
        included:
          $ref: '#/components/schemas/Included'
        links:
          $ref: '#/components/schemas/Links'
    AlbumStatistics_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/AlbumStatistics_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/AlbumStatistics_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    Comments_Relationships:
      properties:
        ownerProfiles:
          $ref: '#/components/schemas/Multi_Relationship_Data_Document'
        owners:
          $ref: '#/components/schemas/Multi_Relationship_Data_Document'
        parentComment:
          $ref: '#/components/schemas/Single_Relationship_Data_Document'
    UserOfflineMixes_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/UserOfflineMixes_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/UserOfflineMixes_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    SearchSuggestions_Suggestions:
      required:
      - query
      type: object
      properties:
        highlights:
          type: array
          items:
            $ref: '#/components/schemas/SearchSuggestions_Highlights'
        query:
          minLength: 1
          type: string
      description: Suggested search queries
    UserOfflineMixes_Relationships:
      properties:
        items:
          $ref: '#/components/schemas/Multi_Relationship_Data_Document'
    DspSharingLinks_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/DspSharingLinks_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/DspSharingLinks_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    ProviderProductInfos_Attributes:
      required:
      - barcodeId
      type: object
      properties:
        barcodeId:
          type: string
        broken:
          type: boolean
        brokenCode:
          type: integer
          format: int32
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/TrackInfo'
    UserCollections_Tracks_Resource_Identifier_Meta:
      required:
      - addedAt
      type: object
      properties:
        addedAt:
          type: string
          format: date-time
    Comments_Multi_Relationship_Data_Document:
      required:
      - links
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Resource_Identifier'
        included:
          $ref: '#/components/schemas/Included'
        links:
          $ref: '#/components/schemas/Links'
    UserCollections_Artists_Resource_Identifier_Meta:
      required:
      - addedAt
      type: object
      properties:
        addedAt:
          type: string
          format: date-time
    UserDailyMixes_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/UserDailyMixes_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/UserDailyMixes_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    UserCollectionVideos_Attributes:
      required:
      - numberOfItems
      type: object
      properties:
        lastModifiedAt:
          type: string
          description: When the collection was last modified
          format: date-time
        numberOfItems:
          type: integer
          description: Number of items in the collection
          format: int32
    AcceptedTerms_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/AcceptedTerms_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/AcceptedTerms_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    Videos_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/Videos_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/Videos_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    SearchResults_Attributes:
      required:
      - trackingId
      type: object
      properties:
        didYouMean:
          type: string
          description: '''did you mean'' prompt'
          example: beatles
        trackingId:
          type: string
          description: search request unique tracking number
          example: 5896e37d-e847-4ca6-9629-ef8001719f7f
    External_Link:
      required:
      - href
      - meta
      type: object
      properties:
        href:
          type: string
        meta:
          $ref: '#/components/schemas/External_Link_Meta'
    UsageRules_Attributes:
      required:
      - countryCode
      type: object
      properties:
        countryCode:
          type: string
          description: Country code (ISO 3166-1 alpha-2)
        free:
          type: array
          description: Usage types allowed for free/ad-supported model
          items:
            type: string
            description: Usage types allowed for free/ad-supported model
            enum:
            - STREAM
            - DJ
            - STEM
            - DOWNLOAD
        inherited:
          type: boolean
          description: 'Whether these usage rules are inherited from a parent (e.g. a track inheriting from its album). Tri-state: true means the rules are inherited, false means an explicit per-track override, null means the value is unknown or not applicable (albums, videos, and legacy data).'
        paid:
          type: array
          description: Usage types allowed for paid/purchase model
          items:
            type: string
            description: Usage types allowed for paid/purchase model
            enum:
            - STREAM
            - DJ
            - STEM
            - DOWNLOAD
        subscription:
          type: array
          description: Usage types allowed for subscription model
          items:
            type: string
            description: Usage types allowed for subscription model
            enum:
            - STREAM
            - DJ
            - STEM
            - DOWNLOAD
        validFrom:
          type: string
          description: Datetime from which these usage rules are valid (ISO 8601)
          format: date-time
    TemporaryUserTokens_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/TemporaryUserTokens_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/TemporaryUserTokens_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    Downloads_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/Downloads_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/Downloads_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    TrackStatistics_Resource_Object:
      required:
      - id
      - type
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/TrackStatistics_Attributes'
        id:
          type: string
          description: Resource id
          example: '12345'
        relationships:
          $ref: '#/components/schemas/TrackStatistics_Relationships'
        type:
          minLength: 1
          type: string
          description: Resource type
          example: tracks
    Artwork_File:
      required:
      - href
      type: object
      properties:
        href:
          type: string
          description: Artwork file href
        meta:
          $ref: '#/components/schemas/Artwork_File_Meta'
      description: Artwork files
    Links:
      required:
      - self
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Links_Meta'
        next:
          type: string
          description: Link to next page
          example: /artists/xyz/relationships/tracks?page[cursor]=zyx
        self:
          type: string
          description: Link to self
          example: /artists/xyz/relationships/tracks
    AudioNormalizationData:
      type: object
      properties:
        peakAmplitude:
          type: number
          format: float
        replayGain:
          type: number
          format: float
      description: Track normalization data
    UserCollectionArtists_Items_Resource_Identifier:
      required:
      - id
      - type
      type: object
      properties:
        id:
          type: string
          description: Resource id
          example: '12345'
        meta:
          $ref: '#/components/schemas/UserCollectionArtists_Items_Resource_Identifier_Meta'
        type:
          type: string
          description: Resource type
          example: tracks
    UserCollectionFolders_Attributes:
      required:
      - collectionType
      - createdAt
      - lastModifiedAt
      - name
      type: object
      properties:
        collectionType:
          type: string
          enum:
          - PLAYLISTS
        createdAt:
          type: string
          format: date-time
        lastModifiedAt:
          type: string
          format: date-time
        name:
          type: string
        numberOfItems:
          type: integer
          format: int32
    Tracks_Attributes:
      required:
      - duration
      - explicit
      - isrc
      - key
      - keyScale
      - mediaTags
      - popularity
      - title
      type: object
      properties:
        accessType:
          type: string
          description: Access type
          example: PRIVATE
          enum:
          - PUBLIC
          - UNLISTED
          - PRIVATE
        ai:
          type: boolean
          description: Whether the track is AI-generated
          example: false
        availability:
          type: array
          description: 'Available usage for this track. Deprecated: use ''usageRules'' instead. This field will be removed in a future version.'
          deprecated: true
          items:
            type: string
            deprecated: true
            enum:
            - STREAM
            - DJ
            - STEM
        bpm:
          type: number
          description: Beats per minute
          format: float
          example: 60.0
        copyright:
          $ref: '#/components/schemas/Copyright'
        createdAt:
          type: string
          description: Datetime of track creation (ISO 8601)
          format: date-time
        duration:
          type: string
          description: Duration (ISO 8601)
          example: PT2M58S
        explicit:
          type: boolean
          description: Explicit content
          example: false
        externalLinks:
          ty

# --- truncated at 32 KB (153 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/openapi/tidal-comments-api-openapi.yml