### GET /installations/{id} Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Retrieves single installation by id. ```markdown ### Parameters - **id** (string, path, required): Installation id - **include** (array (string), query, optional): Allows the client to customize which related resources should be returned. Available options: offlineInventory, owners ### Responses #### 200 - Successful response **Installations_Single_Resource_Data_Document** - **data** (object) (required) - **attributes** (object) - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name for the installation (example: "My iPhone") - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X GET "https://openapi.tidal.com/v2/installations/{id}?include=item1,item2" ``` ``` -------------------------------- ### POST /installations Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Creates a new installation. ```markdown ### Parameters - **Idempotency-Key** (string, header, optional): Unique idempotency key for safe retry of mutation requests. If a duplicate key is sent with the same payload, the original response is replayed. If the payload differs, a 422 error is returned. (example: "79e1f37e-3e84-4c51-b5e2-7d9e1a2b3c4d") ### Request Body **Content-Type:** application/vnd.api+json - **data** (object) (required) - **attributes** (object) (required) - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name (example: "My iPhone") - **type** (string (installations)) (required) ("installations") ### Responses #### 201 - Successful response **Installations_Single_Resource_Data_Document** - **data** (object) (required) - **attributes** (object) - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name for the installation (example: "My iPhone") - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 409 - response **Idempotency409ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_IN_PROGRESS)) (required) (example: "IDEMPOTENT_REQUEST_IN_PROGRESS") ("IDEMPOTENT_REQUEST_IN_PROGRESS") - **detail** (string) (example: "A request with this idempotency key is currently being processed") - **status** (string) (required) (example: "409") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 422 - response **Idempotency422ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH)) (required) (example: "IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") ("IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") - **detail** (string) (example: "Idempotency key was already used with a different request payload") - **status** (string) (required) (example: "422") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X POST "https://openapi.tidal.com/v2/installations" \ -H "Content-Type: application/json" \ -d '{ "data": "value" }' ``` ``` -------------------------------- ### GET /installations Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Retrieves multiple installations by available filters, or without if applicable. ```markdown ### Parameters - **page[cursor]** (string, query, optional): Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified - **include** (array (string), query, optional): Allows the client to customize which related resources should be returned. Available options: offlineInventory, owners - **filter[clientProvidedInstallationId]** (array (string), query, optional): Client-provided installation identifier to filter by (e.g. `a468bee88def`) - **filter[owners.id]** (array (string), query, optional): User ID to filter by. Use `me` for the authenticated user ### Responses #### 200 - Successful response **Installations_Multi_Resource_Data_Document** - **data** (array (Installations_Resource_Object)) (required) Array items: - **attributes** (object) - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name for the installation (example: "My iPhone") - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X GET "https://openapi.tidal.com/v2/installations?page[cursor]=string&include=item1,item2&filter[clientProvidedInstallationId]=item1,item2&filter[owners.id]=item1,item2" ``` ``` -------------------------------- ### Schema: Installations_Attributes Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Schema definition for Installations_Attributes ```markdown ## Schema: Installations_Attributes Schema definition for Installations_Attributes **Type:** object - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name for the installation (example: "My iPhone") ``` -------------------------------- ### GET /videos/{id}/relationships/usageRules Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Retrieves usageRules relationship. ```markdown ### Parameters - **id** (string, path, required): Video id - **countryCode** (string, query, optional): ISO 3166-1 alpha-2 country code - **include** (array (string), query, optional): Allows the client to customize which related resources should be returned. Available options: usageRules ### Responses #### 200 - Successful response **Videos_Single_Relationship_Data_Document** - **data** (object) - **id** (string) (required): Resource id (example: "12345") - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **attributes** (object) - **createdAt** (string (date-time)) (required) - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X GET "https://openapi.tidal.com/v2/videos/{id}/relationships/usageRules?countryCode=string&include=item1,item2" ``` ``` -------------------------------- ### Schema: Installations_Resource_Object Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Schema definition for Installations_Resource_Object ```markdown ## Schema: Installations_Resource_Object Schema definition for Installations_Resource_Object **Type:** object - **attributes** (object) - **clientProvidedInstallationId** (string) (required): Client provided installation identifier - **name** (string) (required): Human-readable name for the installation (example: "My iPhone") - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") ``` -------------------------------- ### GET /videos/{id}/relationships/thumbnailArt Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Retrieves thumbnailArt relationship. ```markdown ### Parameters - **id** (string, path, required): Video id - **page[cursor]** (string, query, optional): Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified - **countryCode** (string, query, optional): ISO 3166-1 alpha-2 country code - **include** (array (string), query, optional): Allows the client to customize which related resources should be returned. Available options: thumbnailArt ### Responses #### 200 - Successful response **Videos_Multi_Relationship_Data_Document** - **data** (array (Resource_Identifier)) Array items: - **id** (string) (required): Resource id (example: "12345") - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **attributes** (object) - **createdAt** (string (date-time)) (required) - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X GET "https://openapi.tidal.com/v2/videos/{id}/relationships/thumbnailArt?page[cursor]=string&countryCode=string&include=item1,item2" ``` ``` -------------------------------- ### GET /videos/{id}/relationships/suggestedVideos Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Retrieves suggestedVideos relationship. ```markdown ### Parameters - **id** (string, path, required): Video id - **page[cursor]** (string, query, optional): Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified - **countryCode** (string, query, optional): ISO 3166-1 alpha-2 country code - **include** (array (string), query, optional): Allows the client to customize which related resources should be returned. Available options: suggestedVideos ### Responses #### 200 - Successful response **Videos_Multi_Relationship_Data_Document** - **data** (array (Resource_Identifier)) Array items: - **id** (string) (required): Resource id (example: "12345") - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **attributes** (object) - **createdAt** (string (date-time)) (required) - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X GET "https://openapi.tidal.com/v2/videos/{id}/relationships/suggestedVideos?page[cursor]=string&countryCode=string&include=item1,item2" ``` ``` -------------------------------- ### POST /artists Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Creates a new artist. ```markdown ### Parameters - **Idempotency-Key** (string, header, optional): Unique idempotency key for safe retry of mutation requests. If a duplicate key is sent with the same payload, the original response is replayed. If the payload differs, a 422 error is returned. (example: "79e1f37e-3e84-4c51-b5e2-7d9e1a2b3c4d") ### Request Body **Content-Type:** application/vnd.api+json - **data** (object) (required) - **attributes** (object) (required) - **handle** (string) - **name** (string) (required) - **type** (string (artists)) (required) ("artists") - **meta** (object) - **dryRun** (boolean) ### Responses #### 201 - Successful response **Artists_Single_Resource_Data_Document** - **data** (object) (required) - **attributes** (object) - **contributionsEnabled** (boolean): Is the artist enabled for contributions? (example: true) - **contributionsSalesPitch** (string): Contributions sales pitch (example: "Help me be a full time artist") - **externalLinks** (array (External_Link)): Artist links external to TIDAL API Array items: - **href** (string) (required) - **meta** (object) (required): metadata about an external link - **type** (string (TIDAL_SHARING|TIDAL_USER_SHARING|TIDAL_AUTOPLAY_ANDROID|TIDAL_AUTOPLAY_IOS|TIDAL_AUTOPLAY_WEB|TWITTER|FACEBOOK|INSTAGRAM|TIKTOK|SNAPCHAT|OFFICIAL_HOMEPAGE|CASHAPP_CONTRIBUTIONS|ARTIST_CLAIM_PROVIDER_REDIRECT|STRIPE_AUTHORIZATION_REDIRECT|SQUARE_AUTHORIZATION_REDIRECT)) (required) ("TIDAL_SHARING"|"TIDAL_USER_SHARING"|"TIDAL_AUTOPLAY_ANDROID"|"TIDAL_AUTOPLAY_IOS"|"TIDAL_AUTOPLAY_WEB"|"TWITTER"|"FACEBOOK"|"INSTAGRAM"|"TIKTOK"|"SNAPCHAT"|"OFFICIAL_HOMEPAGE"|"CASHAPP_CONTRIBUTIONS"|"ARTIST_CLAIM_PROVIDER_REDIRECT"|"STRIPE_AUTHORIZATION_REDIRECT"|"SQUARE_AUTHORIZATION_REDIRECT") - **handle** (string): Artist handle (example: "jayz") - **name** (string) (required): Artist name (example: "JAY Z") - **ownerType** (string (LABEL|USER|MIXED)): Ownership type of the artist profile. LABEL: label-managed profile, USER: user-created profile, MIXED: claimed profile with both label and user content. May be null during rollout/backfill. ("LABEL"|"USER"|"MIXED") - **popularity** (number (double)) (required): Artist popularity (0.0 - 1.0) (example: 0.56) - **spotlighted** (boolean): Is the artist spotlighted? (example: true) - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 409 - response **Idempotency409ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_IN_PROGRESS)) (required) (example: "IDEMPOTENT_REQUEST_IN_PROGRESS") ("IDEMPOTENT_REQUEST_IN_PROGRESS") - **detail** (string) (example: "A request with this idempotency key is currently being processed") - **status** (string) (required) (example: "409") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 422 - response **Idempotency422ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH)) (required) (example: "IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") ("IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") - **detail** (string) (example: "Idempotency key was already used with a different request payload") - **status** (string) (required) (example: "422") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X POST "https://openapi.tidal.com/v2/artists" \ -H "Content-Type: application/json" \ -d '{ "data": "value", "meta": "value" }' ``` ``` -------------------------------- ### POST /clients Source: https://tidal-music.github.io/tidal-api-reference/tidal-api-oas.json Creates a new client. ```markdown ### Parameters - **Idempotency-Key** (string, header, optional): Unique idempotency key for safe retry of mutation requests. If a duplicate key is sent with the same payload, the original response is replayed. If the payload differs, a 422 error is returned. (example: "79e1f37e-3e84-4c51-b5e2-7d9e1a2b3c4d") ### Request Body **Content-Type:** application/vnd.api+json - **data** (object) (required) - **attributes** (object) (required) - **description** (string) - **name** (string) (required) - **type** (string (clients)) (required) ("clients") ### Responses #### 201 - Successful response **Clients_Single_Resource_Data_Document** - **data** (object) (required) - **attributes** (object) - **accessTier** (string (THIRD_PARTY|THIRD_PARTY_PROD|PARTNER|INTERNAL)) (required) ("THIRD_PARTY"|"THIRD_PARTY_PROD"|"PARTNER"|"INTERNAL") - **clientSecret** (string) - **createdAt** (string (date-time)) - **description** (string) - **name** (string) (required) - **redirectUris** (array (string)) - **scopes** (array (string)) - **id** (string) (required): Resource id (example: "12345") - **relationships** (object) - **type** (string) (required): Resource type (example: "tracks") - **included** (array (union)) Array items: - **links** (object) (required) - **meta** (object): Non-standard meta information for links - **nextCursor** (string) (required): Only cursor part of next link (example: "zyx") - **next** (string): Link to next page (example: "/artists/xyz/relationships/tracks?page[cursor]=zyx") - **self** (string) (required): Link to self (example: "/artists/xyz/relationships/tracks") #### 400 - response **Default400ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The request is malformed or invalid") - **status** (string) (required) (example: "400") #### 404 - response **Default404ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The requested resource was not found") - **status** (string) (required) (example: "404") #### 405 - response **Default405ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "The HTTP method is not allowed for the requested resource") - **status** (string) (required) (example: "405") #### 406 - response **Default406ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "A response that satisfies the content negotiation headers cannot be produced") - **status** (string) (required) (example: "406") #### 409 - response **Idempotency409ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_IN_PROGRESS)) (required) (example: "IDEMPOTENT_REQUEST_IN_PROGRESS") ("IDEMPOTENT_REQUEST_IN_PROGRESS") - **detail** (string) (example: "A request with this idempotency key is currently being processed") - **status** (string) (required) (example: "409") #### 415 - response **Default415ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Unsupported request payload media type or content encoding") - **status** (string) (required) (example: "415") #### 422 - response **Idempotency422ResponseBody** - **errors** (array (object)) (required) Array items: - **code** (string (IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH)) (required) (example: "IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") ("IDEMPOTENT_REQUEST_PAYLOAD_MISMATCH") - **detail** (string) (example: "Idempotency key was already used with a different request payload") - **status** (string) (required) (example: "422") #### 429 - response **Default429ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Rate limit exceeded") - **status** (string) (required) (example: "429") #### 500 - response **Default500ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "An unexpected error was encountered") - **status** (string) (required) (example: "500") #### 503 - response **Default503ResponseBody** - **errors** (array (object)) (required) Array items: - **detail** (string) (example: "Temporarily unavailable; please try again later") - **status** (string) (required) (example: "503") ### Example Usage ```bash curl -X POST "https://openapi.tidal.com/v2/clients" \ -H "Content-Type: application/json" \ -d '{ "data": "value" }' ``` ```