TIDAL Social API
TIDAL's social surface — shares, saved shares, DSP sharing links (deep links to TIDAL content from other DSPs), comments, reactions, and artist appreciations across albums, artists, tracks, videos, and playlists.
TIDAL's social surface — shares, saved shares, DSP sharing links (deep links to TIDAL content from other DSPs), comments, reactions, and artist appreciations across albums, artists, tracks, videos, and playlists.
openapi: 3.0.1
info:
title: TIDAL Social API
version: 1.10.14
description: 'Social and sharing features: shares, DSP sharing links, comments, reactions, and appreciations across albums,
artists, tracks, and playlists.'
x-source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json
servers:
- url: https://openapi.tidal.com/v2
description: Production
paths:
/appreciations:
post:
description: Creates a new appreciation.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AppreciationsCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Appreciations_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 appreciation.
tags:
- appreciations
x-path-item-properties:
required-access-tier: INTERNAL
/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
/dspSharingLinks:
get:
description: Retrieves multiple dspSharingLinks by available filters, or without if applicable.
parameters:
- 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
- description: The id of the subject resource
in: query
name: filter[subject.id]
required: false
schema:
type: array
items:
type: string
- description: The type of the subject resource (e.g., albums, tracks, artists) (e.g. `tracks`)
in: query
name: filter[subject.type]
required: false
schema:
type: array
items:
type: string
enum:
- tracks
- albums
- artists
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DspSharingLinks_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 dspSharingLinks.
tags:
- dspSharingLinks
x-path-item-properties:
required-access-tier: INTERNAL
/dspSharingLinks/{id}/relationships/subject:
get:
description: Retrieves subject relationship.
parameters:
- description: DspSharingLinks Id
example: QUxCVU1TOjEyMzQ1
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/DspSharingLinks_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: []
summary: Get subject relationship ("to-one").
tags:
- dspSharingLinks
x-path-item-properties:
required-access-tier: INTERNAL
/reactions:
get:
description: Retrieves multiple reactions by available filters, or without if applicable.
parameters:
- in: query
name: stats
required: false
schema:
type: string
enum:
- ALL
- COUNTS_BY_TYPE
- TOTAL_COUNT
- in: query
name: statsOnly
required: false
schema:
type: boolean
- in: query
name: viewerContext
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: 'Allows the client to customize which related resources should be returned. Available options: ownerProfiles,
owners'
example: ownerProfiles
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: ownerProfiles
- description: "Filter by emoji (e.g. `\U0001F44D`)"
in: query
name: filter[emoji]
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
- artists
- videos
- playlists
- comments
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Reactions_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 reactions.
tags:
- reactions
x-path-item-properties:
required-access-tier: INTERNAL
post:
description: Creates a new reaction.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ReactionsCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Reactions_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 reaction.
tags:
- reactions
x-path-item-properties:
required-access-tier: INTERNAL
/reactions/{id}:
delete:
description: Deletes existing reaction.
parameters:
- description: Reaction Id
example: nejMcAhh5N8S3EQ4LaqysVdI0cZZ
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 reaction.
tags:
- reactions
x-path-item-properties:
required-access-tier: INTERNAL
/reactions/{id}/relationships/ownerProfiles:
get:
description: Retrieves ownerProfiles relationship.
parameters:
- description: Reaction 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: 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/Reactions_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:
- reactions
x-path-item-properties:
required-access-tier: INTERNAL
/reactions/{id}/relationships/owners:
get:
description: Retrieves owners relationship.
parameters:
- description: Reaction 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: 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/Reactions_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:
- reactions
x-path-item-properties:
required-access-tier: INTERNAL
/savedShares:
post:
description: Creates a new savedShare.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SavedSharesCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SavedShares_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 savedShare.
tags:
- savedShares
x-path-item-properties:
required-access-tier: INTERNAL
/shares:
get:
description: Retrieves multiple shares by available filters, or without if applicable.
parameters:
- description: 'Allows the client to customize which related resources should be returned. Available options: owners,
sharedResources'
example: owners
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: owners
- description: A share code (e.g. `xyz`)
in: query
name: filter[code]
required: false
schema:
type: array
items:
type: string
- description: List of shares IDs (e.g. `a468bee88def`)
in: query
name: filter[id]
required: false
schema:
type: array
items:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Shares_Multi_Resource_Data_Document'
description: Successful response
'400':
# --- truncated at 32 KB (188 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/openapi/tidal-social-api-openapi.yml