TIDAL Users API
User account management surface. Read user profile and country, manage accepted terms, list registered installations and clients, submit user reports, and request data exports for GDPR/CCPA compliance.
User account management surface. Read user profile and country, manage accepted terms, list registered installations and clients, submit user reports, and request data exports for GDPR/CCPA compliance.
openapi: 3.0.1
info:
title: TIDAL Users API
version: 1.10.14
description: 'User account management: profiles, accepted terms, installations, clients, reports, and data export requests.'
x-source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json
servers:
- url: https://openapi.tidal.com/v2
description: Production
paths:
/acceptedTerms:
get:
description: Retrieves multiple acceptedTerms by available filters, or without if applicable.
parameters:
- description: 'Allows the client to customize which related resources should be returned. Available options: owners,
terms'
example: owners
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: owners
- description: User id. Use `me` for the authenticated user
in: query
name: filter[owners.id]
required: false
schema:
type: array
items:
type: string
- description: Filter by terms.isLatestVersion
in: query
name: filter[terms.isLatestVersion]
required: false
schema:
type: array
items:
type: string
- description: 'One of: DEVELOPER, UPLOAD_MARKETPLACE (e.g. `DEVELOPER`)'
in: query
name: filter[terms.termsType]
required: false
schema:
type: array
items:
type: string
enum:
- DEVELOPER
- UPLOAD_MARKETPLACE
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AcceptedTerms_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:
- r_usr
summary: Get multiple acceptedTerms.
tags:
- acceptedTerms
x-path-item-properties:
required-access-tier: INTERNAL
post:
description: Creates a new acceptedTerm.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AcceptedTermsCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AcceptedTerms_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 acceptedTerm.
tags:
- acceptedTerms
x-path-item-properties:
required-access-tier: INTERNAL
/acceptedTerms/{id}/relationships/owners:
get:
description: Retrieves owners relationship.
parameters:
- description: Accepted terms id
example: a468bee88def
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/AcceptedTerms_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:
- r_usr
summary: Get owners relationship ("to-many").
tags:
- acceptedTerms
x-path-item-properties:
required-access-tier: INTERNAL
/acceptedTerms/{id}/relationships/terms:
get:
description: Retrieves terms relationship.
parameters:
- description: Accepted terms id
example: a468bee88def
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: terms'
example: terms
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: terms
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AcceptedTerms_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:
- r_usr
summary: Get terms relationship ("to-one").
tags:
- acceptedTerms
x-path-item-properties:
required-access-tier: INTERNAL
/clients:
get:
description: Retrieves multiple clients by available filters, or without if applicable.
parameters:
- 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: User id. Use `me` for the authenticated user
in: query
name: filter[owners.id]
required: false
schema:
type: array
items:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Clients_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:
- r_usr
summary: Get multiple clients.
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
post:
description: Creates a new client.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ClientsCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Clients_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 client.
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
/clients/{id}:
delete:
description: Deletes existing client.
parameters:
- description: OAuth client identifier
example: a468bee88def
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 client.
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
get:
description: Retrieves single client by id.
parameters:
- description: OAuth client identifier
example: a468bee88def
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
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Clients_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:
- r_usr
summary: Get single client.
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
patch:
description: Updates existing client.
parameters:
- description: OAuth client identifier
example: a468bee88def
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ClientsUpdateOperation_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 client.
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
/clients/{id}/relationships/owners:
get:
description: Retrieves owners relationship.
parameters:
- description: OAuth client identifier
example: a468bee88def
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/Clients_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:
- r_usr
summary: Get owners relationship ("to-many").
tags:
- clients
x-path-item-properties:
required-access-tier: INTERNAL
/installations:
get:
description: Retrieves multiple installations 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: 'Allows the client to customize which related resources should be returned. Available options: offlineInventory,
owners'
example: offlineInventory
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: offlineInventory
- description: Client-provided installation identifier to filter by (e.g. `a468bee88def`)
in: query
name: filter[clientProvidedInstallationId]
required: false
schema:
type: array
items:
type: string
- description: List of installation IDs (e.g. `a468bee88def`)
in: query
name: filter[id]
required: false
schema:
type: array
items:
type: string
- description: User ID to filter by. Use `me` for the authenticated user
in: query
name: filter[owners.id]
required: false
schema:
type: array
items:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Installations_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:
- r_usr
summary: Get multiple installations.
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
post:
description: Creates a new installation.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/InstallationsCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Installations_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 installation.
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
/installations/{id}:
get:
description: Retrieves single installation by id.
parameters:
- description: Installation id
example: a468bee88def
in: path
name: id
required: true
schema:
type: string
- description: 'Allows the client to customize which related resources should be returned. Available options: offlineInventory,
owners'
example: offlineInventory
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: offlineInventory
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Installations_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:
- r_usr
summary: Get single installation.
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
/installations/{id}/relationships/offlineInventory:
delete:
description: Deletes item(s) from offlineInventory relationship.
parameters:
- description: Installation id
example: a468bee88def
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/InstallationsOfflineInventoryRelationshipRemoveOperation_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: Delete from offlineInventory relationship ("to-many").
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
get:
description: Retrieves offlineInventory relationship.
parameters:
- description: Installation id
example: a468bee88def
in: path
name: id
required: true
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: offlineInventory'
example: offlineInventory
in: query
name: include
required: false
schema:
type: array
items:
type: string
example: offlineInventory
- description: Offline item id (e.g. `1234`)
in: query
name: filter[id]
required: false
schema:
type: array
items:
type: string
- description: 'One of: PENDING, STORED (e.g. `PENDING`)'
in: query
name: filter[state]
required: false
schema:
type: array
items:
type: string
enum:
- PENDING
- STORED
- description: 'One of: tracks, videos, albums, playlists, userCollectionTracks (e.g. `tracks`)'
in: query
name: filter[type]
required: false
schema:
type: array
items:
type: string
enum:
- tracks
- videos
- albums
- playlists
- userCollectionTracks
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Installations_OfflineInventory_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:
- r_usr
summary: Get offlineInventory relationship ("to-many").
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
post:
description: Adds item(s) to offlineInventory relationship.
parameters:
- description: Installation id
example: a468bee88def
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/InstallationsOfflineInventoryRelationshipAddOperation_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: Add to offlineInventory relationship ("to-many").
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
/installations/{id}/relationships/owners:
get:
description: Retrieves owners relationship.
parameters:
- description: Installation id
example: a468bee88def
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/Installations_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:
- r_usr
summary: Get owners relationship ("to-many").
tags:
- installations
x-path-item-properties:
required-access-tier: INTERNAL
/temporaryUserTokens:
post:
description: Creates a new temporaryUserToken.
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TemporaryUserTokensCreateOperation_Payload'
responses:
'201':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TemporaryUserTokens_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 temporaryUserToken.
tags:
- temporaryUserTokens
x-path-item-properties:
required-access-tier: INTERNAL
/temporaryUserTokens/{id}:
get:
description: Retrieves single temporaryUserToken by id.
parameters:
- description: Temporary user token id
example: abc123
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:
# --- truncated at 32 KB (191 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/openapi/tidal-users-api-openapi.yml