Tuned Global API documentation | Music Cloud Platform Explore Tuned Global API documentation, developer guides and CMS resources for building music and audio experiences across apps, services and devices on the Music Cloud Platform. ## Sections • [Tuned Global developer documentation overview](https://docs.tunedglobal.com/introduction-overview.md): Learn how Tuned Global APIs, services and CMS tools help teams build, manage and scale music and audio experiences across apps and devices. • [Music streaming service APIs | Tuned Global](https://docs.tunedglobal.com/use-cases/build-a-streaming-service.md): Learn how to build a licensed music streaming service using APIs for catalogue, playback, search, recommendations, playlists, users and reporting. • [Music streaming API quickstart | Tuned Global](https://docs.tunedglobal.com/use-cases/build-a-streaming-service/api-quick-start-guide.md): Follow a practical quickstart to authenticate, access music data and begin building a music streaming experience with Tuned Global APIs. • [Telco Music Streaming Solutions | Tuned Global](https://docs.tunedglobal.com/use-cases/music-for-telcos.md): Learn how Tuned Global helps telcos launch branded music services with flexible authentication, subscriptions, billing, playback and customer data integration. • [TConnect API Quickstart for Telco Music | Tuned Global](https://docs.tunedglobal.com/use-cases/music-for-telcos/quickstart.md): Follow the TConnect API flow to register subscribers, verify subscriptions, search music, stream tracks and log playback events. • [Airline In-Flight Entertainment Music | Tuned Global](https://docs.tunedglobal.com/use-cases/music-for-airlines.md): Learn how airlines, IFE providers and CSPs can use Tuned Global APIs to curate, schedule, manage rights and export music for airline in-flight entertainment systems. • [Airline IFE Music API Quickstart | Tuned Global](https://docs.tunedglobal.com/use-cases/music-for-airlines/quickstart.md): Follow the API workflow to curate, validate, export and report music content for offline airline in-flight entertainment systems. • [Background music service APIs | Tuned Global](https://docs.tunedglobal.com/use-cases/music-in-stores.md): Learn how to build and operate background music experiences for retail, hospitality and other commercial environments using Tuned Global technology. • [Background music API quickstart | Tuned Global](https://docs.tunedglobal.com/use-cases/music-in-stores/quickstart.md): Follow the steps to connect to Tuned Global APIs and begin building a background music service with catalogue, playback and scheduling capabilities. • [Music search and recommendation APIs | Tuned Global](https://docs.tunedglobal.com/guides/search-and-recommendations.md): Learn how to implement music search, discovery and personalised recommendations that help listeners find relevant artists, albums, tracks and playlists. • [Subscriptions and payments guide | Tuned Global](https://docs.tunedglobal.com/guides/subscriptions-and-payments.md): Understand how to configure subscription products, access tiers, packages, billing and payment-related flows for a Tuned Global-powered service. • [Family subscription plans | Tuned Global](https://docs.tunedglobal.com/guides/family-plans.md): Learn how family plans support multiple user profiles, account relationships and access rules within a Tuned Global-powered music or audio service. • [Unified Listening APIs | Tuned Global](https://docs.tunedglobal.com/guides/unified-listening-overview.md): Explore Tuned Global's Unified Listening capabilities for synchronised, shared and radio-style music experiences across users, devices and applications. • [Shadow Queue quickstart | Tuned Global](https://docs.tunedglobal.com/guides/unified-listening-overview/shadow-queue-quickstart.md): Learn how to implement Shadow Queue for synchronised music playback, keeping listeners aligned to the same track and playback position across devices. • [Radio PlaylistAPI quickstart | Tuned Global](https://docs.tunedglobal.com/guides/unified-listening-overview/plaidio-quickstart.md): Follow a practical guide to create or retrieve a radio experience, manage its content and make it available for playback through Tuned Global APIs. • [Podcast Ingestion and Delivery | Tuned Global](https://docs.tunedglobal.com/guides/podcast.md): Learn how Tuned Global ingests, hosts, updates and delivers podcasts and episodes through the CMS, APIs and other platform services. • [Podcast RSS Feed Specification | Tuned Global](https://docs.tunedglobal.com/guides/podcast/rss-feed-specification.md): Review the RSS 2.0 structure, supported namespaces and metadata requirements for podcast ingestion through the Tuned Global Platform. • [Track Disambiguation | Tuned Global](https://docs.tunedglobal.com/refrence-documents/disambiguation.md): Learn how Tuned Global groups duplicate recordings, applies confidence scores and delivers disambiguation data through the Catalogue Feed and APIs. • [Audio fingerprinting technical reference | Tuned Global](https://docs.tunedglobal.com/refrence-documents/fingerprinting.md): Review the technical concepts, integration requirements and data flows used for audio fingerprinting and music identification with Tuned Global. • [Streaming Manipulation Detection | Tuned Global](https://docs.tunedglobal.com/refrence-documents/streaming-manipulation-detection.md): Learn how Tuned Global’s SMD framework detects suspicious streaming activity, protects reporting integrity and supports evolving rights-holder requirements. • [Image resizing and handling | Tuned Global](https://docs.tunedglobal.com/refrence-documents/image-handling.md): Learn how to resize, crop, filter and watermark music artwork dynamically using Tuned Global's image engine and CDN-based image URLs. • [Music Quality Assurance | Tuned Global](https://docs.tunedglobal.com/refrence-documents/music-qa.md): Learn how Tuned Global validates metadata, rights and media assets before content is made available, helping prevent missing, broken or unplayable experiences. • [Music catalogue ingestion guide | Tuned Global](https://docs.tunedglobal.com/refrence-documents/music-ingestion.md): Understand how music catalogue files, audio, artwork and metadata are delivered, validated and ingested into the Tuned Global platform. • [Countries and territories reference | Tuned Global](https://docs.tunedglobal.com/refrence-documents/countries-territories.md): Use the supported country and territory values required for rights, availability, localisation and other territory-aware Tuned Global API requests. • [Audio Loudness Analysis and Normalisation | Tuned Global](https://docs.tunedglobal.com/refrence-documents/loudness.md): Learn how Tuned Global provides LUFS, True Peak, dB offset and normalisation data through the Catalogue Feed and APIs for consistent audio playback. • [TunedIQ music intelligence engine | Tuned Global](https://docs.tunedglobal.com/refrence-documents/tunediq-music-intelligence-engine.md): Learn how TunedIQ combines music intelligence, catalogue analysis and listener behaviour to improve search, recommendations and discovery experiences. • [Tuned Global DataLake | Music Service Data](https://docs.tunedglobal.com/refrence-documents/datalake.md): Access Tuned Global operational and usage data, combine it with customer systems, and better understand engagement, retention and product performance. • [Tuned Global CMS overview](https://docs.tunedglobal.com/autotune-cms/cms.md): Get an overview of the Tuned Global CMS and how teams use it to organise, curate, publish and surface music and audio content across digital experiences. • [CMS and API integration | Tuned Global](https://docs.tunedglobal.com/autotune-cms/cms-and-api-integration-copy.md): Learn how content configured and published in the Tuned Global CMS is retrieved and displayed in applications through the relevant Tuned Global APIs. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/playlists-creation-and-management.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/podcasts-management.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/homepage-and-content-pages-management.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/carousel-items-management.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/programmatic-radio-stations-creation.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/plaidio-stations-creation-and-management.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/radio-station-call-outs-and-identifiers.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/advanced-search-explained.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/billboard-and-itunes-charts-search.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/import-songs-by-isrc.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/easy-tagging-explained.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/clear-tag-cache-quickly.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/user-accounts-and-discovery-data.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [Tuned Global CMS training videos](https://docs.tunedglobal.com/autotune-cms/training-videos/automatic-image-generation-for-playlists-and-tags.md): Watch practical CMS tutorials covering playlists, radio, catalogue search, chart data, tags, artwork, call-outs, publishing and cache management. • [CMS developer quickstarts | Tuned Global](https://docs.tunedglobal.com/autotune-cms/overview.md): Use step-by-step quickstarts to retrieve CMS-managed homepages, carousels, system playlists and tagged content in your application. • [Build a CMS-managed homepage | Tuned Global](https://docs.tunedglobal.com/autotune-cms/overview/build-a-homepage.md): Learn how to retrieve CMS content-page configuration and render a dynamic homepage with sections, shelves and featured content in your application. • [Use featured carousels in your app | Tuned Global](https://docs.tunedglobal.com/autotune-cms/overview/use-featured-carousels.md): Learn how to retrieve CMS-managed carousel items and display featured artists, albums, playlists, stations or other content in your application. • [Use CMS playlists in your app | Tuned Global](https://docs.tunedglobal.com/autotune-cms/overview/manage-system-playlists.md): Learn how to retrieve playlists created and published in the Tuned Global CMS, then display playlist metadata, artwork and tracks in your application. • [Display tagged content in your app | Tuned Global](https://docs.tunedglobal.com/autotune-cms/overview/display-tagged-content.md): Learn how to retrieve music and audio content associated with CMS tags and use those tags to build shelves, collections and filtered experiences. • [Postman](https://docs.tunedglobal.com/tools/postman.md): Music Streaming Service (DSP) - Quick start Please click this link to try our APIs in Postman • [Overview](https://docs.tunedglobal.com/overview.md): Unless explicitly stated in either your direct licensor agreements or your Tuned Global agreements, Tuned Global catalogue, being either the assets or metadata, cannot be used to train Machine Learning or AI models. The Tuned Global platform provides two interoperable integration models for accessing music, audio, and media content: API Suite – a unified application layer combining Metadata and Services APIs Catalogue Feed (CF / CDS) – a separate data distribution and ingestion interface While these are presented within a single documentation structure, they serve different purposes and are accessed via separate API endpoints (Swagger definitions) . Plain text Tuned Global Platform │ ├── API Suite (Application Layer) │ │ │ ├── Metadata API (Swagger) │ │ └── Catalogue & Content │ │ (Search, Artists, Albums, Tracks, Playlists, │ │ Stations, Podcasts, Tags, CMS Content) │ │ │ └── Services API (Swagger) │ └── User & Playback Layer │ (Users, Authentication, Profiles, Collections, │ Playlists, Stations, Queue, Streaming, │ Billing, Subscriptions, Activity & Logging) │ └── Catalogue Feed (CDS) (Data / Ingestion Layer) │ ├── Catalogue Feed API (Swagger) │ └── Operational Access │ (Search, Catalogue Lookup, Asset Delivery, │ Stream URLs, Image URLs, Play Logging) │ └── Metadata Feed (JSON / Batch) └── Bulk Data Distribution (Full Catalogue Sync, Updates, Allow Lists) → API Suite and Catalogue Feed are independent but interoperable → Applications may use one or both depending on architecture Tuned Global Platform │ ├── API Suite (Application Layer) │ │ │ ├── Metadata API (Swagger) │ │ └── Catalogue & Content │ │ (Search, Artists, Albums, Tracks, Playlists, │ │ Stations, Podcasts, Tags, CMS Content) │ │ │ └── Services API (Swagger) │ └── User & Playback Layer │ (Users, Authentication, Profiles, Collections, │ Playlists, Stations, Queue, Streaming, │ Billing, Subscriptions, Activity & Logging) │ └── Catalogue Feed (CDS) (Data / Ingestion Layer) │ ├── Catalogue Feed API (Swagger) │ └── Operational Access │ (Search, Catalogue Lookup, Asset Delivery, │ Stream URLs, Image URLs, Play Logging) │ └── Metadata Feed (JSON / Batch) └── Bulk Data Distribution (Full Catalogue Sync, Updates, Allow Lists) → API Suite and Catalogue Feed are independent but interoperable → Applications may use one or both depending on architecture 1. API Suite The API Suite is the primary interface for building user-facing applications. It combines two complementary API layers: Metadata APIs – provide catalogue and content data without user context Services APIs – provide user-specific functionality, playback, and transactional operations Each layer is exposed via its own Swagger endpoint, but they are designed to be used together as a single logical system. Using the API Suite, you can: Search and browse the catalogue (artists, albums, tracks, playlists, stations, podcasts, etc.) Retrieve structured metadata and editorial content Manage users , authentication, and profiles Enable playback, streaming, and queue management Build playlists , stations , and personalised listening experiences Manage collections, favourites, and social features Handle subscriptions, billing, and entitlements Track playback activity and analytics In practice: Metadata APIs are used to build discovery and browsing experiences Services APIs extend those experiences with user context and interaction 2. Catalogue Feed (CF / CDS) The Catalogue Feed provides a distinct integration model focused on catalogue access, synchronisation, and controlled delivery . It is exposed via its own Swagger endpoint and operates independently from the API Suite. The Catalogue Feed is designed for: Ingesting and synchronising catalogue data into external systems Performing lightweight search and lookup operations Retrieving media assets (streams, previews, images) Supporting external or custom playback implementations Logging playback activity outside of the API Suite Unlike the API Suite, the Catalogue Feed: Does not rely on user context Is typically used in server-to-server or batch workflows Prioritises data portability and control over real-time interaction 3. Interoperability The API Suite and Catalogue Feed are fully interoperable and can be used independently or together. Common integration patterns include: API Suite only For building complete streaming or media applications with user accounts, playback, and personalisation Catalogue Feed only For ingesting and managing a local catalogue or powering external playback systems Hybrid approach Catalogue data is synchronised via the Catalogue Feed User experiences, playback control, and personalisation are handled via the API Suite This separation allows developers to choose the right model based on performance, architecture, and product requirements. 4. API Endpoints and Swagger The platform is exposed through three primary API surfaces: API Suite: Metadata API (Swagger) – A component of the API Suite, it provides catalogue and content access Services API (Swagger) – A component of the API Suite, it provides user, playback, and transactional operations Catalogue Feed API (Swagger) – Manages catalogue metadata feed, asset access, reporting and external playback support Each API has its own base URL, authentication model, and endpoint definitions. Information here. 5. Choosing the Right Approach Title Description Requirement Recommended Integration I want to build a streaming app - with minimal technical build on my side. I do not want to manage a catalog database myself. API Suite I want to sync full catalog locally and manage all requirements except Reporting and Playback which will be managed by Tuned Global Catalogue Feed I want to sync catalog so I can build my own bespoke search and discovery but want Tuned Global to manage eveything else Catalogue Feed + API Suite 6. Documentation Structure This documentation reflects the combined structure of the platform: Core API Suite domains (Search, Artists, Albums, Tracks, Stations, Playlists, Users, Billing, etc.) Unified presentation of Metadata and Services capabilities within each domain A dedicated section for Catalogue Feed (CDS) , covering ingestion, asset delivery, and logging Refer to the navigation for a full breakdown of endpoints and capabilities. • [Swagger](https://docs.tunedglobal.com/swagger.md): API Explorer Using Swagger This documentation presents the Tuned Global APIs as a single, unified API structure , combining Metadata and Services into one logical API Suite, alongside the Catalogue Feed (CDS). However, when working with the APIs in practice, you will interact with separate Swagger interfaces for each API surface. Swagger Endpoints You will be provided with environment-specific URLs during onboarding. Metadata API (Swagger) Used for catalogue and content access (no user context) https://api-metadata-connect.tunedglobal.com/swagger/ui/index#/ Services API (Swagger) Used for user, playback, and transactional functionality https://api-services-connect.tunedglobal.com/swagger/ui/index#/ Catalogue Feed API (CDS) (Swagger) Used for catalogue ingestion, asset access, and external playback https://api-delivery-connect.tunedglobal.com/swagger/ui/index#/ While these are exposed as separate Swagger endpoints, they are designed to work together and are reflected as a single structure in this documentation. Versioning Each Swagger interface may contain multiple API versions. Always use the latest available version unless advised otherwise Older versions may remain for backward compatibility but can be deprecated over time Version selection is available directly within Swagger Authentication in Swagger Authentication varies by endpoint and API. While common models include API Key or OAuth (Bearer Token), there are some specific use cases that utilise HMAC: Do not assume a single authentication method across all endpoints Always refer to the specific endpoint definition within Swagger or this documentation Required headers and authentication types are defined per endpoint Best Practice Use Swagger to: Explore endpoints and parameters Validate request/response structures Confirm authentication requirements Treat Metadata + Services APIs as a single logical API Suite , even though they are accessed via separate Swagger interfaces Use Catalogue Feed (CDS) only where your architecture requires it and it has been provisioned by Tuned Global • [Authentication & Access](https://docs.tunedglobal.com/authentication-and-access.md): Every Tuned Global API endpoint requires an authenticated request. Which authentication scheme you use depends on the API you're calling and what it accesses so it's worth understanding different security models before you integrate. There are four security models availalbe. Authentication methods Tuned Global supports four authentication methods. Most integrations only ever need the ‘API Key’ and oAuth 2.0 Authentication. API Key Authentication A static key that identifies your store on every request. Required everywhere, no matter which other security method also applies.Add description here oAuth 2.0 Authentication A short-lived access token for a signed-in user. Required for anything done on that user's behalf: their library, playback, votes, or playlists. Basic HTTP Authentication A partner access key and secret, issued directly by Tuned Global, sent as a Base64-encoded credential. Used only for a small set of partner and telco integration endpoints. This is not a user login method. HMAC Authentication A cryptographically signed request. Used only for specific integrations: device and guest registration, telco partner endpoints, and large-scale asset delivery. Choosing the right method for your API family Tuned Global provides three API families, each designed for a different integration purpose and protected by the appropriate security model: Title Description Title API family What it's for Authentication required Metadata APIs Catalogue reads: search, artists, albums, images API key (StoreId header) only. No user token needed. Services APIs Actions and data for a signed-in user: library, playback, votes, playlists API key plus an OAuth 2.0 bearer token, for standard integrations. A small number of partner endpoints use an API key plus Basic authentication instead. A few specific flows (device registration, telco integrations) require HMAC signing. Catalogue Feed APIs Large-scale catalogue metadata, asset delivery, and play event logging API key plus HMAC signing for catalogue and asset endpoints. API key plus Basic authentication for play logging endpoints. If you are building a typical web or mobile app that lets people browse the catalogue and manage their own library, you need exactly two things: an API key, and an OAuth token to sign the user in and fetch relevant metadata. All API requests require a StoreId HTTP header. The StoreId identifies the calling store (partnet) and establishes the store/tenant context for the request. Getting a user access token Services APIs act on behalf of an individual user, so most requests need an OAuth 2.0 bearer token in addition to your StoreId. There are four ways to obtain one: Email login. Authenticate with a username and password. Mobile login. Authenticate with a one-time passcode sent to a phone number. Refresh token. Exchange a previously issued refresh token for a new access token, without asking the user to sign in again. Third-party JWT. Exchange a JWT you have already issued and signed for a Tuned Global access token. Tuned Global verifies it against a public key held for your store. Access tokens are short-lived and paired with a longer-lived refresh token, so you can keep a user's session alive without repeated logins. See oAuth 2.0 Authentication for request and response examples for each method. Basic authentication and HMAC signing These two methods exist for specific integrations, not general app development. Basic HTTP authentication is for partner and telco integrations: things like managing a shared allowlist of catalogue content, or submitting play logs in bulk. The credentials are an access key and secret issued to that partner by Tuned Global, not an end user's login. HMAC request signing is required for a small number of flows: registering a device or guest session on the Services API, telco partner integrations, and asset or catalogue delivery through the Catalogue Feed API. If none of these apply to your integration, you will not need it. Integration checklist Include the StoreId header on every request, regardless of API family. Use Metadata APIs with StoreId only. No user token is required. Use Services APIs with StoreId plus a valid OAuth bearer token for anything done on behalf of a signed-in user. Treat API keys, partner credentials, and tokens as secrets. Do not commit them to source control or expose them in client-side code. A missing or invalid credential will cause the request to be rejected. • [API Key Authentication](https://docs.tunedglobal.com/authentication-and-access/api-key-authentication.md): All Tuned Global APIs require a StoreId HTTP header. The StoreId identifies the calling partner and establishes the store/tenant context for the request. Metadata APIs use StoreId-only authentication (no oAuth). For these endpoints, the StoreId acts as the API key: the caller must provide a valid store identifier in the request header, and no OAuth access token is required. This model is intended for store-scoped metadata access. Always send the assigned StoreId with every Metadata API request. Tuned Global will provide your API key once your account is registered. Your key does not expose sensitive user data, it is used to access catalogue metadata such as search results, catalogue metadata and images. ⚠️ Keep your API key private. Do not expose it public repositories. CURL curl --location 'https://api-metadata-connect.tunedglobal.com/api/v2.4/search' \ --header 'StoreId: YOUR_STORE_ID' \ --header 'Content-Type: application/json' curl --location 'https://api-delivery-connect.tunedglobal.com/api/v5/albums/{id}/tracks' \ --header 'StoreId: YOUR_STORE_ID' \ --header 'Content-Type: application/json' Postman Example • [OAuth Authentication](https://docs.tunedglobal.com/authentication-and-access/api-key-authentication-copy.md): Tuned Global uses OAuth 2.0 for user authentication. All Services API access is managed through short-lived JWTs (access tokens) and longer-lived refresh tokens. Token lifetimes are returned in each authentication response. There are four ways to obtain a Tuned Global access token using OAuth 2.0. Email Login and Mobile Login sign in a user who has already registered with Tuned Global; neither one creates an account. Refresh Token renews an existing session without asking the user to sign in again. Third-party JWT exchanges an identity token your own system already issued for one of ours, for users authenticated outside Tuned Global entirely. See detail below Email Login Authenticate with an email address and password that the user already registered with Tuned Global through email registration. This call only signs the user in, it does not create an account, so calling it with an email that was never registered fails. On success, the response includes an access token for calling Services APIs on the user's behalf, and a refresh token for renewing that access later without asking the user to sign in again. Refresh Token Exchange a refresh token for a new access token once the current one expires, without asking the user to sign in again. Access tokens are valid for 1 hour. Refresh tokens are valid for 7 days. Call this endpoint before the refresh token itself expires. Once it expires, the user has to sign in again through Email Login or Mobile Login. Mobile Login Authenticate with a mobile number using a one-time passcode (OTP). Like Email Login, this call only signs the user in: the number must already be registered with Tuned Global. The flow has two steps: Request a code for the number by calling Request OTP. Tuned Global sends it by SMS, either through Firebase (the default, capped at 10,000 verifications a month) or through the store's own telco or SMS vendor if one is configured instead. Call Mobile Login with the same msisdn and the code the user received, to exchange it for an access token. Third-party JWT validation Validate a JWT that a third party already issued and signed, using the asymmetric RS256 algorithm. The client generates its own key pair, signs the token with the private key, and Tuned Global validates it with the matching public key to extract the user's claims. This only works once Tuned Global holds that client's public key. Share your public key with your Tuned Global integration contact first. Once it is installed for your store, calls to this endpoint succeed. There is no self-service way to register a key through the API itself. Requesting a token - code samples: Email Login - Code Samples JavaScript JavaScript const response = await fetch('https://api-authentication-connect.tunedglobal.com/oauth2/token', { method: 'POST', headers: { 'StoreId': 'TEST', 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ grant_type: 'password', username: 'xxxx', password: 'xxxxx' }) }); const data = await response.json(); console.log(data.access_toke Python import requests response = requests.post( 'https://api-authentication-connect.tunedglobal.com/oauth2/token', headers={'StoreId': 'TEST'}, data={ 'grant_type': 'password', 'username': 'xxxx', 'password': 'xxxxx' } ) data = response.json() print(data['access_token'])ema Response JSON { "access_token": "••••••••••••••••", "token_type": "bearer", "expires_in": 300, "refresh_token": "••••••••••••••••" } Refresh Token - Code samples JavaScript const response = await fetch('https://api-authentication-connect.tunedglobal.com/oauth2/token', { method: 'POST', headers: { 'StoreId': 'TEST', 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ grant_type: 'refresh_token', refresh_token: 'xxxxx' }) }); const data = await response.json(); console.log(data.access_token); Python import requests response = requests.post( 'https://api-authentication-connect.tunedglobal.com/oauth2/token', headers={'StoreId': 'TEST'}, data={ 'grant_type': 'refresh_token', 'refresh_token': 'xxxxx' } ) data = response.json() print(data['access_token']) Response JSON { "access_token": "••••••••••••••••", "token_type": "bearer", "expires_in": 300, "refresh_token": "••••••••••••••••" } Mobile Login - Code samples JavaScript const response = await fetch('https://api-authentication-connect.tunedglobal.com/oauth2/token', { method: 'POST', headers: { 'StoreId': 'TEST', 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ grant_type: 'msisdn', msisdn: '6112345678', code: '123456789' }) }); const data = await response.json(); console.log(data.access_token); Python import requests response = requests.post( 'https://api-authentication-connect.tunedglobal.com/oauth2/token', headers={'StoreId': 'TEST'}, data={ 'grant_type': 'msisdn', 'msisdn': '6112345678', 'code': '123456789' } ) data = response.json() print(data['access_token']) JSON { "access_token": "••••••••••••••••", "token_type": "bearer", "expires_in": 300, "refresh_token": "••••••••••••••••" } Third-party JWT validation - Code samples JavaScript const response = await fetch('https://api-services-connect.tunedglobal.com/api/v3/users/authenticateThirdPartyJWT', { method: 'POST', headers: { 'StoreId': 'TEST', 'Authorization': 'Bearer <Client_JWT>' } }); const data = await response.json(); console.log(data.access_token); Python import requests response = requests.post( 'https://api-services-connect.tunedglobal.com/api/v3/users/authenticateThirdPartyJWT', headers={ 'StoreId': 'TEST', 'Authorization': 'Bearer <Client_JWT>' } ) data = response.json() print(data['access_token']) JSON { "access_token": "••••••••••••••••", "token_type": "bearer", "expires_in": 300, "refresh_token": "••••••••••••••••" } • [Basic HTTP Authentication](https://docs.tunedglobal.com/authentication-and-access/basic-http-authentication.md): Authenticate by sending a Base64-encoded callerAccessKey:callerSecretKey string in the Authorization header, using the form: Basic <credentials>. This scheme is straightforward to implement and widely supported by HTTP clients. The callerAccessKey and callerSecretKey are provided by your account executive during onboarding. Always transmit over HTTPS — never send Basic credentials over plain HTTP. Basic auth is used for specific client-admin operations rather than general access. In the Services APIs it authenticates administrative endpoints used by client admins to manage content using their backend systems for example to allow or block certain artists, albums or tracks from their service, and in the Catalogue Feed (CF) APIs it is used for the logging endpoints. Credentials are issued by Tuned Global per client. Keep your credentials private. Because Basic auth transmits a Base64-encoded username and password (which is encoded, not encrypted), always send requests over HTTPS and never expose credentials in client-side code, URLs, or public repositories. CURL curl --location 'https://api-services-connect.tunedglobal.com/api/v3/catalogue/control/allowlistalbums' --header 'Authorization: Basic <base64(callerAccessKey:callerSecretKey)>' --header 'StoreId: TEST' --header ‘Content-Type: application/json’ • [HMAC Authentication](https://docs.tunedglobal.com/authentication-and-access/hmac-authentication.md): HMAC (hash-based message authentication code) signs each request with a secret key shared between you and Tuned Global. The server recomputes the same signature independently and rejects the request if it does not match, so it can verify both that the request came from you and that nothing in it changed in transit. If a request is altered in transit, whether by a malicious intermediary or a misbehaving proxy that drops headers, the signature will no longer match and Tuned Global rejects the call. Our HMAC generator tool can be used to create API calls and and generate the OAuth signature using your API key and secret. Generating the signature Generate a new GUID to use as the nonce, and take the current Unix timestamp in seconds (not milliseconds). Take the full request URI and URL-encode it using UTF-8. Match the exact casing of the URL you are calling, since the server signs whatever URI it actually receives. Lowercase is the safe default, since Tuned Global's routes are lowercase. If the request carries a JSON payload, serialize it. If it has no payload (a GET request, or a POST/PUT with an empty body), skip to step 6 and treat the payload as an empty string. Convert the serialized payload to bytes using UTF-8 encoding. Hash those bytes with MD5, then convert the resulting hash to a Base64 string. (MD5 is only used here as a content checksum folded into the final signature. The actual security guarantee comes from the HMAC-SHA256 step below, with your secret key.) Concatenate the following fields, in order, with nothing in between them, to build the raw signature string: {access-key}{HTTP-method}{request-URI}{encoded-payload, or an empty string if there is none}{nonce}{timestamp} Convert that concatenated string to bytes using UTF-8 encoding. Decode the secret key Tuned Global gave you from Base64 into a byte array. Do not UTF-8-encode the key string itself, it is already Base64. Compute the HMAC-SHA256 hash of the bytes from step 7, using the key bytes from step 8. Convert the resulting hash to a Base64 string. This is your request signature. Build the Authorization header value by joining the access key, the signature, the nonce, and the timestamp with colons: {access-key}:{request-signature}:{nonce}:{timestamp} Send it as the Authorization header, prefixed with the Tuned-HMAC scheme: Authorization: Tuned-HMAC {access-key}:{request-signature}:{nonce}:{timestamp} What gets a request rejected A stale timestamp. If Tuned Global receives the request more than 5 minutes after the timestamp you signed it with, it treats the request as expired and rejects it. Sign and send close together, do not generate a signature far ahead of when you will send it. A reused nonce. Each request needs its own fresh nonce. Sending the same nonce twice, even with a valid timestamp, gets the second request rejected as a replay. Signing different bytes than you send. The payload hash must come from the exact bytes in the request body. If your serializer produces different output (field order, spacing, new line breaks) between the copy you hash and the copy you actually send, the signature will not match. Code Samples for Generating HMAC JavaScript // ----------------------------------------------------------------------------- // SECTION 1: Credential Loading // ----------------------------------------------------------------------------- // Reads AccessKey and SecretKey from collection variables. // Never hardcode credentials here — always use collection variables. var accessKey = pm.variables.get("AccessKey") || ""; var secretKey = pm.variables.get("SecretKey") || ""; if (!accessKey || !secretKey) { throw new Error("Missing credentials. Please set AccessKey and SecretKey in your Collection Variables."); } // ----------------------------------------------------------------------------- // SECTION 2: Helper Functions // ----------------------------------------------------------------------------- /** * Encodes a URL using encodeURIComponent but with lowercase % escapes. * This matches the encoding format expected by the API signature algorithm. */ function encodeUriLowercase(url) { return encodeURIComponent(url).replace(/%\w\w/g, function (m) { return m.toLowerCase(); }); } /** * Returns the raw request body string for POST/PUT/PATCH requests. * Returns an empty string for GET requests or requests with no body. */ function getRawBody() { if (!pm.request.body) { return ""; } if (pm.request.body.mode === "raw") { return pm.request.body.raw || ""; } return ""; } /** * Computes an MD5 hash of the request body, returned as a Base64 string. * This is included in the signature for non-GET requests to ensure * the payload has not been tampered with. */ function computePayloadMd5Base64(raw) { if (!raw || !raw.trim()) { return ""; } try { var md5 = CryptoJS.MD5(CryptoJS.enc.Utf8.parse(raw)); return CryptoJS.enc.Base64.stringify(md5); } catch (e) { return ""; } } /** * Resolves the full request URL by expanding Postman variables ({{...}}) * and path variables (:param), then normalizes duplicate slashes. * Throws an error if any variables remain unresolved. */ function resolveFinalUrl() { var raw = pm.request.url.toString(); var resolved = pm.variables.replaceIn(raw); // Substitute :pathVariable style params if (pm.request.url.variable && typeof pm.request.url.variable.each === "function") { pm.request.url.variable.each(function (v) { resolved = resolved.replace(":" + v.key, v.value); }); } // Normalize accidental double slashes (preserves https://) resolved = resolved.replace(/(?<!:)\/{2,}/g, "/"); // Guard against unresolved {{variables}} if (/\{\{[^}]+\}\}/.test(resolved)) { throw new Error("Unresolved variable in URL: " + resolved + ". Check that all variables are set in Collection Variables."); } return resolved; } /** * Determines whether this request should include a nonce and timestamp. * Certain internal API paths (e.g. /api/v2/tconnect/) use a simplified * signature without a nonce. */ function useNonce() { return !resolveFinalUrl().includes("/api/v2/tconnect/"); } // ----------------------------------------------------------------------------- // SECTION 3: Build the Signature // ----------------------------------------------------------------------------- var method = (pm.request.method || "GET").toUpperCase(); var resolvedUrl = resolveFinalUrl(); var encodedUri = encodeUriLowercase(resolvedUrl); // Generate a unique nonce (UUID) and Unix timestamp for replay protection. // These are omitted for endpoints that don't require them. var nonce = useNonce() ? pm.variables.replaceIn("{{$guid}}") : ""; var timestamp = useNonce() ? String(Math.floor(Date.now() / 1000)) : ""; // Construct the raw signature string based on the HTTP method. // Format (GET): AccessKey + Method + EncodedURI [+ Nonce + Timestamp] // Format (POST): AccessKey + Method + EncodedURI + BodyMD5 [+ Nonce + Timestamp] var signatureRawData = ""; if (method === "GET") { signatureRawData = accessKey + method + encodedUri + (useNonce() ? (nonce + timestamp) : ""); } else { var rawBody = getRawBody(); var bodyMd5 = computePayloadMd5Base64(rawBody); signatureRawData = accessKey + method + encodedUri + bodyMd5 + (useNonce() ? (nonce + timestamp) : ""); } // Sign the raw data using HMAC-SHA256 with the Base64-decoded SecretKey. var signatureBytes = CryptoJS.enc.Utf8.parse(signatureRawData); var secretKeyBytes = CryptoJS.enc.Base64.parse(secretKey); var signatureHash = CryptoJS.HmacSHA256(signatureBytes, secretKeyBytes).toString(CryptoJS.enc.Base64); // ----------------------------------------------------------------------------- // SECTION 4: Inject Authorization Header // ----------------------------------------------------------------------------- // Composes and injects the Authorization header into the outgoing request. // Format: Tuned-HMAC {AccessKey}:{Signature}[:{Nonce}:{Timestamp}] var authHeaderValue = useNonce() ? "Tuned-HMAC " + accessKey + ":" + signatureHash + ":" + nonce + ":" + timestamp : "Tuned-HMAC " + accessKey + ":" + signatureHash; pm.request.headers.upsert({ key: "Authorization", value: authHeaderValue }); // ----------------------------------------------------------------------------- // SECTION 5: Debug Logging (visible in Postman Console) // ----------------------------------------------------------------------------- // Open View → Postman Console to inspect these values when troubleshooting. console.log("=== Tuned HMAC Auth Debug ==="); console.log("Method: ", method); console.log("Resolved URL: ", resolvedUrl); console.log("Encoded URI: ", encodedUri); console.log("Use Nonce: ", useNonce()); console.log("Nonce: ", nonce || "(none)"); console.log("Timestamp: ", timestamp || "(none)"); console.log("Signature Raw: ", signatureRawData); console.log("Signature Hash: ", signatureHash); console.log("Authorization: ", authHeaderValue); Python """ Tuned HMAC request signing — ported from a Postman pre-request script. Computes the "Tuned-HMAC" Authorization header used by TunedConnect APIs. """ import base64 import hashlib import hmac import re import time import uuid from urllib.parse import quote # ----------------------------------------------------------------------------- # SECTION 1: Credential Loading # ----------------------------------------------------------------------------- # Replace these with your own AccessKey and SecretKey before running this sample. access_key = "YourAccessKeyHere" secret_key = "YourSecretKeyHere" # ----------------------------------------------------------------------------- # SECTION 2: Helper Functions # ----------------------------------------------------------------------------- def encode_uri_lowercase(url): """ Encodes a URL the way JS encodeURIComponent does, but with lowercase % escapes. This matches the encoding format expected by the API signature algorithm. """ encoded = quote(url, safe="!*'()") # matches encodeURIComponent's unreserved set return re.sub(r"%[0-9A-Fa-f]{2}", lambda m: m.group(0).lower(), encoded) def get_raw_body(body): """ Returns the raw request body string for POST/PUT/PATCH requests. Returns an empty string for GET requests or requests with no body. Assumes `body` is already the raw payload string (Postman's "raw" mode). """ return body or "" def compute_payload_md5_base64(raw): """ Computes an MD5 hash of the request body, returned as a Base64 string. This is included in the signature for non-GET requests to ensure the payload has not been tampered with. """ if not raw or not raw.strip(): return "" try: digest = hashlib.md5(raw.encode("utf-8")).digest() return base64.b64encode(digest).decode("utf-8") except Exception: return "" def resolve_final_url(url): """ Normalizes accidental double slashes in the URL (preserves scheme://). Assumes {{variables}} and :pathVariables have already been substituted. """ resolved = re.sub(r"(?<!:)/{2,}", "/", url) if re.search(r"\{\{[^}]+\}\}", resolved): raise RuntimeError("Unresolved variable in URL: " + resolved + ". Check that all variables are set.") return resolved def use_nonce(url): """ Determines whether this request should include a nonce and timestamp. Certain internal API paths (e.g. /api/v2/tconnect/) use a simplified signature without a nonce. """ return "/api/v2/tconnect/" not in resolve_final_url(url) # ----------------------------------------------------------------------------- # SECTION 3: Build the Signature # ----------------------------------------------------------------------------- # `method`, `url`, and `raw_body` represent the outgoing request being signed # (Postman reads these from pm.request; wire these up to your actual request). method = "GET" url = "https://api.example.com/v2/some/endpoint" raw_body = "" method = (method or "GET").upper() resolved_url = resolve_final_url(url) encoded_uri = encode_uri_lowercase(resolved_url) nonce_needed = use_nonce(url) nonce = str(uuid.uuid4()) if nonce_needed else "" timestamp = str(int(time.time())) if nonce_needed else "" if method == "GET": signature_raw_data = access_key + method + encoded_uri + (nonce + timestamp if nonce_needed else "") else: body = get_raw_body(raw_body) body_md5 = compute_payload_md5_base64(body) signature_raw_data = access_key + method + encoded_uri + body_md5 + (nonce + timestamp if nonce_needed else "") secret_key_bytes = base64.b64decode(secret_key) signature_hash = base64.b64encode( hmac.new(secret_key_bytes, signature_raw_data.encode("utf-8"), hashlib.sha256).digest() ).decode("utf-8") # ----------------------------------------------------------------------------- # SECTION 4: Build Authorization Header # ----------------------------------------------------------------------------- # Format: Tuned-HMAC {AccessKey}:{Signature}[:{Nonce}:{Timestamp}] if nonce_needed: auth_header_value = f"Tuned-HMAC {access_key}:{signature_hash}:{nonce}:{timestamp}" else: auth_header_value = f"Tuned-HMAC {access_key}:{signature_hash}" # headers["Authorization"] = auth_header_value # attach to your outgoing request # ----------------------------------------------------------------------------- # SECTION 5: Debug Logging # ----------------------------------------------------------------------------- print("=== Tuned HMAC Auth Debug ===") print("Method: ", method) print("Resolved URL: ", resolved_url) print("Encoded URI: ", encoded_uri) print("Use Nonce: ", nonce_needed) print("Nonce: ", nonce or "(none)") print("Timestamp: ", timestamp or "(none)") print("Signature Raw: ", signature_raw_data) print("Signature Hash: ", signature_hash) print("Authorization: ", auth_header_value) C# using System; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; namespace TunedGlobal.Tools.HmacSigning { /// <summary> /// Computes the "Tuned-HMAC" Authorization header used by TunedConnect APIs. /// Ported from a Postman pre-request script. /// </summary> public static class TunedHmacRequestSigner { // ----------------------------------------------------------------------- // SECTION 1: Credential Loading // ----------------------------------------------------------------------- // Replace these with your own AccessKey and SecretKey before running this sample. private const string AccessKey = "YourAccessKeyHere"; private const string SecretKey = "YourSecretKeyHere"; // ----------------------------------------------------------------------- // SECTION 2: Helper Functions // ----------------------------------------------------------------------- /// <summary> /// Encodes a URL the way JS encodeURIComponent does, but with lowercase % escapes. /// This matches the encoding format expected by the API signature algorithm. /// </summary> public static string EncodeUriLowercase(string url) { string encoded = Uri.EscapeDataString(url); return Regex.Replace(encoded, "%[0-9A-Fa-f]{2}", m => m.Value.ToLowerInvariant()); } /// <summary> /// Returns the raw request body string for POST/PUT/PATCH requests. /// Returns an empty string for GET requests or requests with no body. /// Assumes <paramref name="body"/> is already the raw payload string. /// </summary> public static string GetRawBody(string body) { return body ?? ""; } /// <summary> /// Computes an MD5 hash of the request body, returned as a Base64 string. /// This is included in the signature for non-GET requests to ensure /// the payload has not been tampered with. /// </summary> public static string ComputePayloadMd5Base64(string raw) { if (string.IsNullOrWhiteSpace(raw)) { return ""; } try { using (var md5 = MD5.Create()) { byte[] hash = md5.ComputeHash(Encoding.UTF8.GetBytes(raw)); return Convert.ToBase64String(hash); } } catch { return ""; } } /// <summary> /// Normalizes accidental double slashes in the URL (preserves scheme://). /// Assumes {{variables}} and :pathVariables have already been substituted. /// </summary> public static string ResolveFinalUrl(string url) { string resolved = Regex.Replace(url, "(?<!:)/{2,}", "/"); if (Regex.IsMatch(resolved, @"\{\{[^}]+\}\}")) { throw new InvalidOperationException("Unresolved variable in URL: " + resolved + ". Check that all variables are set."); } return resolved; } /// <summary> /// Determines whether this request should include a nonce and timestamp. /// Certain internal API paths (e.g. /api/v2/tconnect/) use a simplified /// signature without a nonce. /// </summary> public static bool UseNonce(string url) { return !ResolveFinalUrl(url).Contains("/api/v2/tconnect/"); } // ----------------------------------------------------------------------- // SECTION 3 + 4: Build the Signature and Authorization Header // ----------------------------------------------------------------------- /// <summary> /// Builds the "Tuned-HMAC" Authorization header value for the given request. /// </summary> public static string BuildAuthorizationHeader(string method, string url, string rawBody = null) { method = (method ?? "GET").ToUpperInvariant(); string resolvedUrl = ResolveFinalUrl(url); string encodedUri = EncodeUriLowercase(resolvedUrl); bool nonceNeeded = UseNonce(url); string nonce = nonceNeeded ? Guid.NewGuid().ToString() : ""; string timestamp = nonceNeeded ? DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString() : ""; string signatureRawData; if (method == "GET") { signatureRawData = AccessKey + method + encodedUri + (nonceNeeded ? nonce + timestamp : ""); } else { string body = GetRawBody(rawBody); string bodyMd5 = ComputePayloadMd5Base64(body); signatureRawData = AccessKey + method + encodedUri + bodyMd5 + (nonceNeeded ? nonce + timestamp : ""); } byte[] secretKeyBytes = Convert.FromBase64String(SecretKey); string signatureHash; using (var hmac = new HMACSHA256(secretKeyBytes)) { byte[] hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(signatureRawData)); signatureHash = Convert.ToBase64String(hash); } string authHeaderValue = nonceNeeded ? $"Tuned-HMAC {AccessKey}:{signatureHash}:{nonce}:{timestamp}" : $"Tuned-HMAC {AccessKey}:{signatureHash}"; // ------------------------------------------------------------------- // SECTION 5: Debug Logging // ------------------------------------------------------------------- Console.WriteLine("=== Tuned HMAC Auth Debug ==="); Console.WriteLine("Method: " + method); Console.WriteLine("Resolved URL: " + resolvedUrl); Console.WriteLine("Encoded URI: " + encodedUri); Console.WriteLine("Use Nonce: " + nonceNeeded); Console.WriteLine("Nonce: " + (string.IsNullOrEmpty(nonce) ? "(none)" : nonce)); Console.WriteLine("Timestamp: " + (string.IsNullOrEmpty(timestamp) ? "(none)" : timestamp)); Console.WriteLine("Signature Raw: " + signatureRawData); Console.WriteLine("Signature Hash: " + signatureHash); Console.WriteLine("Authorization: " + authHeaderValue); return authHeaderValue; } } } • [Search](https://docs.tunedglobal.com/search.md): Search is the front door to your fully licensed catalogue in Tuned Global. One API powers everything from the primary search bar in your app to advanced editorial and production-music discovery, across every content type on the platform and the entities around it. Results come back ranked by relevance, real listening activity, and context, so the most useful matches surface first. Every search endpoint lives on the Metadata API and needs only your API key, no user sign-in. That makes search fast, cacheable, and simple to wire up: the same query works for an anonymous visitor and a signed-in listener alike. A note on relevance Results are not a flat text match. The catalogue is ranked on three signals working together: Relevance : how closely a result matches the query Popularity : how much a result is actually played and engaged within your service Context : territory, availability, and the tags in play The result is a search bar that surfaces the tracks people actually want, not just the ones whose titles happen to contain the query. Millisecond response times across tens of millions of catalogue items, so your search feels instant however large the library grows. What you can search Everything under the search umbrella falls into a handful of families. Most integrations start with music content search and grow from there. Title Description Title Search Family What it covers Typical use Music content Songs , albums , artists , videos , playlists , and radio stations The main search bar, and "search all" experiences that return mixed results Beyond music Podcasts , audiobooks , live video , and karaoke Dedicated search and browse surfaces for spoken-word and video Public profiles and tags Users and genre or mood tags Social discovery (find friends, public profiles) and tag-browsing experiences Advanced song search Songs filtered by musical attributes , not just text Production-music search, mood and tempo discovery, editorial curation Song matching Fuzzy matching on title, artist, ISRC, and duration Reconciling an external catalogue against Tuned Global's Search intelligence Trending artists , top search terms , top searched products "Trending now" rails and understanding what your audience looks for Music content search Full-text search across the core catalogue , ranked by relevance and shaped by real usage and context. Every result set can be filtered by content type, territory, and tags, and pages cleanly with an offset and count. Search all content types in a single call, optionally scoped to just the types you want (for example songs and albums only) Dedicated per-type search for songs , albums , artists , videos , playlists, and radio stations , when you want a focused result set Territory filtering so results respect what is licensed and available in the listener's country Consistent pagination across every endpoint, so one result-handling pattern works everywhere Use unified search to power a primary search bar, and per-type search for tabbed or filtered result screens. Advanced song search Go beyond keywords and search songs by their musical characteristics. Advanced song search filters the catalogue on: Tempo (BPM range), musical key , and duration range Release year , decade , and a "released in the last 90 days" flag for new music Artist , album , label , and tags Mood and thematic attributes This turns the catalogue into a discovery tool for admins, editorial teams, and production-music use cases, where " find upbeat tracks in A minor from the 1980s under three minutes " matters more than a text match. Song matching Match Songs performs a fuzzy lookup against the catalogue using a song title, artist name, duration, and ISRC. It is built for reconciliation rather than end-user search: line up an external catalogue, a fingerprint result, or a partner's metadata against Tuned Global's catalogue and resolve it to the right track in Tuned Global's database. Beyond music Spoken-word and video content each have their own search endpoints, scoped to a single content type and supporting the filters that make sense for that domain: Podcasts : search across podcast channels , episodes , and authors Audiobooks : search audiobooks , their chapters , and their authors Live video : search live channels and live shows Karaoke : search the karaoke catalogue Use these when building dedicated browse or search surfaces for a single non-music content type. Public profiles and tags User search powers social features such as finding public and verified user profiles. Tag search enables dynamic tag-browsing, letting listeners discover and apply genre or mood tags, and can be scoped to a specific tag type Search intelligence Search is also a signal. Every query your users run tells you what they want, and these endpoints turn that into insight and discovery surfaces: Log search terms as they happen, to build the picture below Top search terms : the most searched queries for your store Top searched products : the most searched items, grouped by type (songs, albums, artists) Trending artists : the artists with the most search momentum right now, ready for a "trending" rail Built on the Metadata API The entire Search surface is part of the Metadata API (version 2.4), authenticated with your API key and the StoreId header. No user token is involved, so search responses are anonymous, cacheable, and safe to serve from a CDN or an edge layer. This is the same access model as the rest of the public catalogue: you are reading the catalogue, not acting on behalf of a user. Related capabilities elsewhere in the docs Search leads into the rest of the catalogue: Artists , albums , and songs : once a search resolves to an item, fetch its full detail from the relevant catalogue section Playlists and Stations : search surfaces these too, and each has its own section for working with the result Tags : browse and apply the genre and mood tags that search can filter on ( Tags section) • [Content Search](https://docs.tunedglobal.com/search/content-search.md): This is a full-text search across the core catalogue content types (music): artists, albums, songs, videos, playlists, and radio stations Results are ranked by relevance, being usage and contextual, they and can be filtered by content type, territory, or tags Use content search to power the primary search bar in your application and to support "search all" experiences that return mixed-type result sets. • [Search All Content Types](https://docs.tunedglobal.com/search/content-search/search-all-content-types.md): The Search section allows users to search across the catalogue and retrieve all available categories such as Songs, Stations, Playlists, and Videos. Users can easily discover and access various types of content within the platform through this feature. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Artist Search](https://docs.tunedglobal.com/search/content-search/artist-search.md): Search for artists only. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication (via StoreID header) • [Album Search](https://docs.tunedglobal.com/search/content-search/album-search.md): Search for albums only. The max number of results that can be retrieved - using the combination of offset and count - is 10,000 . Security Model API Key Authentication • [Song Search](https://docs.tunedglobal.com/search/content-search/song-search.md): Search for songs across the catalog using keywords that match both song titles and artist names. This flexible search returns relevant results without requiring an exact title match, enabling broad discovery within the music metadata. For precise title-only searches, consider using the AdvancedSongSearch. Search for songs. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Note: This search API is not STRICT on song title only, it does include an Artists Name as part of the search algorithm. If you are requiring a STRICT search on title, use AdvancedSongSearch, with input only on title. Security Model API Key Authentication • [Advanced Song Search](https://docs.tunedglobal.com/search/content-search/advanced-song-search.md): Advanced song search allows ypu to have multiple input parameters. If your service has custom tag groups included, these can be exposed via this search end point. The API takes into account the popularity of songs, as well as the priority configured in Tuned Global’s system when ranking search results, which helps promote more popular and higher-priority songs in the results. The max number of results that can be retrieved, using the combination of offset and count, is 10,000 . Security Model API Key Authentication • [Video Search](https://docs.tunedglobal.com/search/content-search/video-search.md): Search for videos in your catalogue. Note these are Video on Demand, not Live Video, a separate api all is available for Live Video. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Playlist Search](https://docs.tunedglobal.com/search/content-search/playlist-search.md): Search for playlists, these are System playlists and User public playlists. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Station Search](https://docs.tunedglobal.com/search/content-search/station-search.md): Search radio stations, these are curated radio statios you have created. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Karaoke Search](https://docs.tunedglobal.com/search/content-search/station-search-copy.md): Search for karaokes in your catalouge. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Domain Search](https://docs.tunedglobal.com/search/domain-search.md): This search is for non music content. Content-type-specific search endpoints for spoken-word and video domains. Search for Live Video Podcasts, and Audiobooks Domain search returns results scoped to a single content type and supports filters specific to that domain (e.g., episode count, publication date). Use domain search when building dedicated browse or search surfaces for a single content type. • [Live Video](https://docs.tunedglobal.com/search/domain-search/live-video.md): These APIs detail how you consume live video channels. To have a live video channel configured for you, including instructions on how to publish, contact your Customer Suuccess Manager. There are Channels and Shows in a live video channel Channels You can have one or more channels configured to be available Channels are the parents to shows, they are the header unit Channels are a 24 hour wrapper to shows, think of them like a TV channel Shows Shows are children to Channels They are programmed via the Contnet Management System with start and end times, with UTC offset The are the actual content being published and then streamed These APIs provide the ability for you to search Channels and Shows • [Live Channel Search](https://docs.tunedglobal.com/search/domain-search/live-video/live-channel-search.md): Search for live video channels. Security Model API Key Authenticatio • [Live Show Search](https://docs.tunedglobal.com/search/domain-search/live-video/live-show-search.md): Search for live video shows Security Model API Key Authentication • [Podcasts](https://docs.tunedglobal.com/search/domain-search/podcasts.md): Search for elements within Podcasts here. The hiercachy of Podcasts is | - Channel: This is the Podcast itself, or the header item | - | - Episode: The individual Episodes that are in a Podcast | - | - | - Author: The podcast authors • [Channel Search](https://docs.tunedglobal.com/search/domain-search/podcasts/channel-search.md): Search for channels (podcasts). The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Episode Search](https://docs.tunedglobal.com/search/domain-search/podcasts/episode-search.md): Search for podcast episodes . The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Author Search](https://docs.tunedglobal.com/search/domain-search/podcasts/author-search.md): Search for podcast authors. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Audiobooks](https://docs.tunedglobal.com/search/domain-search/audiobooks.md): Search for elements within Audiobooks here. The hiercachy of Audiobooks is | - Audiobook: This is the Audiobook itself, or the header item | - | - Episode: The individual Chapters that are in a Audiobook | - | - | - Author: The Audiobook authors • [Audiobook Search](https://docs.tunedglobal.com/search/domain-search/audiobooks/audiobook-search.md): Search for audiobooks. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Audiobook Chapter Search](https://docs.tunedglobal.com/search/domain-search/audiobooks/audiobook-chapter-search.md): Search for audiobook chapters. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Audiobook Author Search](https://docs.tunedglobal.com/search/domain-search/audiobooks/audiobook-author-search.md): Search for audiobook authors. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Entity Search](https://docs.tunedglobal.com/search/entity-search.md): Search for non-catalogue entities: U sers: User search supports social features like finding friends or public profiles Tags: Tag search enables dynamic tag-browsing experiences where users can discover and apply genre or mood tags. • [User Search](https://docs.tunedglobal.com/search/entity-search/user-search.md): Search for user profiles. The max number of results that can be retrieved using the combination of offset and count is 10,000 . Security Model API Key Authentication • [Tag Search](https://docs.tunedglobal.com/search/entity-search/tag-search.md): Search tag by name Security Model API Key Authentication • [Search Operations](https://docs.tunedglobal.com/search/search-operations.md): Higher-level search operations for editorial and discovery surfaces: Match Songs — Fuzzy-match a song title and artist name against the catalogue (useful for fingerprint or metadata matching) Trending Terms — Currently trending search queries on the platform Top Terms — All-time or period-based top search queries Top Product Terms — Top searches scoped to a specific product or service • [Match Songs](https://docs.tunedglobal.com/search/search-operations/match-songs.md): Search for songs using isrc, song tile, artist title or song duration. The max number of results that can be retrieved using the combination of offset and count is 10,000 . • [Trending Artist Search Terms](https://docs.tunedglobal.com/search/search-operations/trending-terms.md): Coming soon. • [Top Terms](https://docs.tunedglobal.com/search/search-operations/top-terms.md): Retrieves the most frequently searched terms Security Model API Key Authentication • [Top Product Terms](https://docs.tunedglobal.com/search/search-operations/top-product-terms.md): Retrieves the most frequently searched products e.g. Songs, Albums, Arists. Security Model API Key Authentication • [Search Utilities](https://docs.tunedglobal.com/search/search-utilities.md): Helper and configuration endpoints for the search layer: Retrieve search configuration (enabled content types, result limits, feature flags) Validate search queries before submitting them Access search-specific metadata used to tune client-side search UX • [Third-Party Catalogue Status](https://docs.tunedglobal.com/search/search-utilities/third-party-catalogue-status.md): Search third party catalogue, meaning NOT the Tuned catalogue (if applicable) Security Model API Key Authentication • [Save Search Term](https://docs.tunedglobal.com/search/search-utilities/search-term.md): This logs user search terms. This endpoint enhances search analytics by offering insights into user behavior, allowing for better search relevance and improved content recommendations. Security Model API Key Authentication • [Artists](https://docs.tunedglobal.com/artists.md): The full artist data layer — from core profiles and biographies through to discographies, social context, tag management, and personalised user views. Whether you’re building an artist detail page, a discovery surface, or a social follow experience, every artist endpoint you need is here. Details Retrieve artist profiles, biographies, images, and identifying metadata. Supports single and batch lookups. Metadata & Attributes Editorial tags, play counts, popularity scores, and catalogue classification data for enriching artist profiles. Relationships Composite artist memberships, related artist links, and alias/alternate-name associations. Discover Find similar artists, trending artists, newly added artists, and browse the full catalogue with filters. Content An artist's stations, releases, albums, songs, playlists, and collaborations — everything they've contributed to the catalogue. Current User Context Artist data personalised for the authenticated user: follow state, listening history, and personalised signals. Tag Management Manage Artist Tags, create and delete Artist IDs are stable across the platform. Use them as the canonical reference when persisting artist data in your own systems. Utilise the Tuned CMS, Autotune, to manage artist alternate names, merge and/or split artists. • [Details](https://docs.tunedglobal.com/artists/details.md): Artist Details Retrieve core artist data: profiles, biographies, images, and identifying metadata. Supports single-artist lookups by ID, multi-artist batch requests, and full-biography retrieval. These endpoints are the starting point for any artist detail page or artist card in your application. • [Get Artist](https://docs.tunedglobal.com/artists/details/get-artist.md): Returns the basic public profile for a single artist: name/identity, biography, image, content info, translations, and any Music Story biography/image metadata. This is the lightweight option and it does not include stream counts, catalogue statistics, or related content (tracks, releases, similar artists). Use this when: you just need to display an artist's name, photo, and bio (e.g. a track/album detail page crediting an artist) and don't need catalogue stats or related content. It's the fastest and lowest-payload of the four. Note: API output can include 3rd party licensed data such as MusicStory . This data will only be provided to you via the APIs, where you have licensed it either directly or via Tuned Global through a sub-licence. Where you do not have a license, these nodes will be empty responses. Security Model API Key Authentication • [Get Full Artist](https://docs.tunedglobal.com/artists/details/get-full-artist.md): Returns everything in the basic artist profile plus catalogue statistics: album count, release count, song count, track count, video/karaoke track counts, label ownership, bio attribution, allowed streaming status, and content language. Use this when: you need the artist's profile and aggregate catalogue numbers (e.g. "142 songs, 12 albums") without making separate calls to songs/albums/releases endpoints. It does not include the actual tracks, releases, or similar-artist recommendations — only their counts. Security Model API Key Authentication • [Get Full Artist Profile](https://docs.tunedglobal.com/artists/details/get-full-artist-profile.md): Retrieve the complete artist profile details for theReturns a curated, ready-to-render artist profile page: name, bio, profile/cover images, genres, a list of top tracks, a list of releases, and a list of similar artists (each with their own id, name, and images). Use this when: you're building an artist landing/profile page and want one call that already aggregates top tracks, releases, and similar artists — instead of separately calling {id}/songs , {id}/releases , and {id}/similar . This is the richest, most "page-ready", but its shape is different from Artist/ArtistBase (it's a purpose-built aggregate, not an extension of the basic profile). Security Model API Key Authentication • [Get Multiple Artists](https://docs.tunedglobal.com/artists/details/get-multiple-artists.md): Accepts an array of artist ids in the request body and returns the full artist details (same shape as {id}/full, i.e. profile + catalogue counts) for all matching artists in one call. Use this when: you need full details for a batch of artists at once (e.g. rendering an artist grid, or resolving artist metadata for a playlist/album's contributor list) and want to avoid N+1 calls to {id}/full. It's a POST (not GET) because the id list is passed in the body rather than the URL. Security Model API Key Authentication • [Metadata & Attributes](https://docs.tunedglobal.com/artists/metadata-and-attributes.md): Artist Metadata & Attributes Extended metadata and derived attributes for artists — editorial tags, play counts, popularity scores, and catalogue classification data. Use these endpoints to enrich artist profiles with contextual signals beyond core biographical information. • [Get User](https://docs.tunedglobal.com/artists/metadata-and-attributes/get-user.md): Looks up the platform user account that is linked/claimed to a given artist (a "TunedUser" record associating an artist profile with a user account in your sevice). Returns the user's UserId (also exposed as AmityUserId for chat/community integration) and any CommunityIds the user belongs to. Use this when: you need to resolve an artist to their linked user account — for example, to check if an artist has claimed their profile, to get their community/chat identity for messaging features, or to link artist pages to user profiles. If no user is linked to that artist for the current group, it returns 404 Not Found Note: Community IDs are only available if you have licensed 3rd Party community networks or social platform. Security Model API Key Authentication • [Get Artist Play Counts](https://docs.tunedglobal.com/artists/metadata-and-attributes/get-artist-play-counts.md): Returns aggregate play statistics for the artist: GlobalTotal (all-time play count across all users), GlobalRecent (plays in the last 7 days), DistinctGlobalTotal (all-time count of distinct listeners/plays), and DistinctGlobalRecent (distinct listeners/plays in last 7 days). Use this when: you need play/popularity metrics for an artist — e.g. showing "X plays this week" on an artist page, or ranking/trending logic. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Security Model API Key Authentication • [Derived Tags](https://docs.tunedglobal.com/artists/metadata-and-attributes/derived-tags.md): Returns the top 50 tags associated with an artist, aggregated by relevance score. Unlike {id}/tags (which returns only tags directly assigned to the artist), this endpoint also pulls in tags from the artist's albums/releases and combines them with directly-assigned artist tags, summing occurrence counts into a single relevance score per tag. Results are ordered by score descending and capped at 50. Use this when: you want a broader, ranked view of what an artist is "about" — including genre/mood tags inherited from their catalogue — rather than just the tags an admin/system explicitly attached to the artist record. Good for recommendation surfaces, genre chips on an artist page, or "more like this" logic based on tag overlap. Security Model API Key Authentication • [Relationships](https://docs.tunedglobal.com/artists/relationships.md): Artist Relationships Retrieve relationship data between artists: composite artist memberships (e.g., a band and its individual members), related or similar artist links, and any alias or alternate-name associations. Useful for building rich "also known as" and "band members" UI components. • [Get Composites](https://docs.tunedglobal.com/artists/relationships/get-composites.md): Get Composite Artist's Main Artists For a "composite" artist entry (e.g. a collaboration credit like "Artist A & Artist B" that catalogued as its own artist record), returns the list of individual main artists that make up that composite, as ArtistIdentity objects (id + name each). Use this when: you encounter a composite/collaboration artist credit and need to resolve it into its constituent real artists — for example, to link each artist name in "Artist A & Artist B" to their own artist pages instead of treating it as one unlinkable entity. Returns 404 if the artist has no linked composite members. Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/artists/discover.md): Endpoints for artist discovery and browsing: Similar Artists — Artists with a similar sound or genre profile Trending Artists — Artists gaining momentum on the platform right now New Artists — Recently added artists in the catalogue Browse All — Paginated full-catalogue browse with sorting and filtering options • [Similar Artists](https://docs.tunedglobal.com/artists/discover/similar-artists.md): Returns the artists that have been ‘curated’ as similar to the specified artist. These associations are set by client admins in our CMS using one of three methods: Manually searching and linking an artist by name Selecting from tag-overlap/Jaccard-index suggestions Importing and using Last.fm's similar-artist metadata. Regardless of how a similar artist was added, the list returned is always sorted by Jaccard tag-similarity index in descending order. Use this when: you want a curated, editorially-controlled "similar artists" rail — the artists returned reflect deliberate curation decisions (whether manual, tag-driven, or sourced from Last.fm), not a live on-the-fly calculation. If an artist has no curated similar-artist links, this returns 404 Security Model API Key Authentication • [Similar Artists by Tags](https://docs.tunedglobal.com/artists/discover/similar-artists-by-tags.md): Returns similar artists for the given artist, but computed by tag overlap (Jaccard distance between artist tag sets) rather than the curated similarity model used by {id}/similar. Each result (SimilarArtist) includes the similar artist's id/name, a Similarity score (the tag-distance value), and the OriginalArtistId it was matched against. Use this when: you specifically want tag-driven similarity (useful when the artist is new/low-play-count and the collaborative similarity model in {id}/similar may not have enough data yet), or when you want to expose/sort by a similarity score rather than just a flat list. Security Model API Key Authentication • [Get All Artists](https://docs.tunedglobal.com/artists/discover/get-all-artists.md): Returns a paged list of artists (ArtistBase : bio, identity, image, translations) with no filtering criteria, essentially a full catalogue browse/listing endpoint. Use this when: you need to page through the entire artist catalogue for a store e.g. bulk sync, admin tooling, or an alphabetical "all artists" browse screen. For anything targeted (search, recommendations, tags), prefer the more specific endpoints; this is a blunt, unfiltered listing. A maximum of 10,000 artists can be retrieved using this endpoint. Security Model API Key Authentication • [Trending Artists](https://docs.tunedglobal.com/artists/discover/trending-artists.md): Returns a paged list of top trending artists for the service (ArtistProfile objects), ranked by popularity/play activity based on the last 30 days. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Popularity scores are refreshed once every 24 hours. Use this when: you want a "Trending Now" or "Popular Artists" discovery rail. offset defaults to 1, count defaults to 10. Security Model API Key Authentication • [New Artists](https://docs.tunedglobal.com/artists/discover/new-artists.md): Returns a paged list of artists newly added to the catalogue on or after the given date (id, name, and tag/similar-artist counts). Unlike date being optional elsewhere, here it's a required parameter with no default, as is count; offset defaults to 1. Use this when: you want a "New Artists" discovery section or need to detect/sync artists added since a given point in time. Note the response shape here (ArtistBrowseResponse) is different again from trending/similar (ArtistProfile) — it includes tag/similarity counts instead of bio/image translations. ⚠️ Note: date filters by month and year only — the day is ignored. For example: date=2026-07-05 returns all artists added anywhere in July 2026. date is a required parameter; omitting it returns 400 Bad Request. Security Model API Key Authentication • [Content](https://docs.tunedglobal.com/artists/content.md): Artist Content Retrieve the catalogue content associated with an artist: Stations curated by or featuring the artist Releases and albums Individual songs and tracks Public playlists associated with the artist Collaborations and featured appearances Use these endpoints to populate the "discography" and "related content" areas of an artist detail page. • [Get Artist Stations](https://docs.tunedglobal.com/artists/content/get-artist-stations.md): Returns the top 10 preset radio stations that feature tracks by the specified artist, ranked by how many of the artist's tracks appear in each station (most tracks first). Only ‘enabled’ preset stations are included. When to use: Use this endpoint when you want to surface "stations featuring this artist" on an artist profile page, or to power a "listen to similar stations" / cross-promotion widget. It's a good fit anywhere you need a quick, curated list of stations tied to an artist without querying tracks and stations separately. Security Model API Key Authentication • [Get Artist Releases](https://docs.tunedglobal.com/artists/content/get-artist-releases.md): Retrieve the list of releases the currently logged in user has in their collection. Make sure userId input param is null • [Get Collaboration Songs](https://docs.tunedglobal.com/artists/content/get-collaboration-songs.md): Returns a paginated list of songs where the specified artist appears as part of a joint/composite credit — i.e. tracks recorded with other artists (collabs, features, duets) — rather than the artist's solo catalogue. Results are ranked by popularity (Wilson score). Paged via offset and count. When to use it: Use this when you want to show a "Collaborations" or "Featured On" section on an artist page, separate from their own solo discography. If you want the artist's full catalogue including solo tracks (or don't need to distinguish collabs), use the regular songs-by-artist endpoint instead — this one is specifically filtered to tracks where the artist is credited alongside others. Security Model API Key Authentication • [Get Artist Albums](https://docs.tunedglobal.com/artists/content/get-artist-albums.md): Retrieve detailed listing of albums by this artist. Same as Get Artist Releases API. Security Model API Key Authentication • [Artist Appears On](https://docs.tunedglobal.com/artists/content/artist-appears-on.md): Returns a paginated list of albums where the specified artist has a track without being the primary/lead artist on the album — e.g. guest features, compilation appearances, or tracks contributed to someone else's album. Supported sort is newrelease only (default). When to use it: Use this for an "Appears On" section on an artist page, distinct from their own discography ({id}/albums) — it surfaces albums credited to other primary artists where this artist has a contributing role. If you want albums where this artist is the primary artist, use {id}/albums instead; this endpoint is specifically the inverse case. Security Model API Key Authentication • [Get Artist Songs](https://docs.tunedglobal.com/artists/content/get-artist-songs.md): Returns a detailed, paginated listing of songs by the specified artist — full song/track metadata (not user-specific context), with filtering by media type and release recency, and configurable sorting. When to use it: Use this as the primary "artist's songs" catalogue listing — e.g. an artist's full track list with sorting/filtering controls, or to surface only recent releases. Security Model API Key Authentication • [Get Artist Playlists](https://docs.tunedglobal.com/artists/content/get-artist-playlists.md): Returns the public system (editorial/curated) playlists that contain at least one track by the specified artist. This surfaces where an artist shows up across the platform's curated playlists, it's not user-created or personal playlists, only system playlists. When to use it : Use this to show "Featured In" or "Appears in Playlists" on an artist page, letting users discover curated playlists that include this artist's tracks. Security Model API Key Authentication • [Current User](https://docs.tunedglobal.com/artists/current-user.md): Artist — Current User Context Artist data contextualised for the currently authenticated user. This includes whether the user follows the artist, the user's play history for that artist, and any personalised recommendations or signals derived from the user's relationship with the artist. • [Artist Overview (User Context)](https://docs.tunedglobal.com/artists/current-user/artist-overview-user-context.md): Returns the current logged-in user's relationship to a specific artist, such as whether the user is following the artist and overall follower counts for that artist. When to use it: Call this when rendering an artist page or artist card for a signed-in user and you need to know things like "is the current user following this artist" (e.g. to toggle a Follow/Unfollow button) or show follower counts. Use the GET /api/v2.4/artists/{id} endpoint instead when you only need general artist details (name, bio, images) with no per-user state. User context includes user plays, global plays and if this artist is a favourite for the user. • [Similar Context](https://docs.tunedglobal.com/artists/current-user/similar-context.md): Returns a list of artists similar to the specified artist, each annotated with the logged-in user's relationship to that similar artist (e.g. whether the user is already following them, and their follower counts). It's the "similar artists" list combined with per-user context, rather than plain similarity data. When to use it: Use this when showing a "Similar Artists" or "You might also like" section on an artist page for a signed-in user, where you need to render follow/unfollow state for each recommended artist inline. If you just need the raw list of similar artists without any user-specific follow state, use the plain similar-artists endpoint (e.g. {id}/similarbytags in the Metadata API) instead — this one is specifically for personalized, user-aware rendering. The context here is based on the user. The API will provide information about the artist (eg. for an artist display page) but also whether the user is following the artist themselves. • [Albums Context](https://docs.tunedglobal.com/artists/current-user/albums-context.md): Returns per-user context for each album by the specified artist: whether the album is in the logged-in user's collection, their play counts, and their last played time for that album. This gives album-level user state scoped to one artist, rather than general album metadata. When to use it: Use this when rendering an artist's discography for a signed-in user and you need per-album personalization, like showing "in your collection" badges, last-played timestamps, or play counts next to each album. If you just need the artist's album list without any user-specific data, use a plain albums-by-artist endpoint instead. An artists albums are defined where they are the main artist. • [Releases Context](https://docs.tunedglobal.com/artists/current-user/releases-context.md): Get specific context info about the releases attributed to the given artist for the logged in user The context here is based on the user. The API will provide information about the artist (eg. for an artist display page) but also whether the user is following the artist themselves. Context is based on user. This API will display information about an Albums playcounts, including whether it has been marked as a favourite (In Collection) by the user. • [Songs Context](https://docs.tunedglobal.com/artists/current-user/songs-context.md): Returns a paginated list of per-user context for songs attributed to the specified artist: whether each song is in the user's collection, their play counts, last played time, and the song's overall favourite count. When to use it: Use this when rendering an artist's track listing for a signed-in user and you need per-song personalization (collection status, play history, favourite counts) with pagination, since an artist can have many songs. If you only need general song metadata without user-specific state, use the plain songs-by-artist endpoint instead. • [Tag Management](https://docs.tunedglobal.com/artists/tag-management.md): Artist Tag Management Add and remove tags on artists. Tags applied here appear in faceted search and browse surfaces. Supports both editorial (operator-managed) and user-defined tag operations depending on the caller's permission scope. • [Get Tags](https://docs.tunedglobal.com/artists/tag-management/get-tags.md): Get all ‘general’ tags assigned to this artist. General tags are assigned using the Tuned Global CMS - AutoTune Security Model API Key Authentication • [Add Tags](https://docs.tunedglobal.com/artists/tag-management/add-tags.md): Assigns one or more ‘general’ tags to an artist. Tags already assigned to the artist are silently skipped rather than duplicated. When to use it: When you need to add new tags to an artist to categorize or label that artist for curation. This is an additive operation — it never removes existing tags. Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. Security Model API Key Authentication • [Delete Tags](https://docs.tunedglobal.com/artists/tag-management/delete-tags.md): Removes one or more specific tags from an artist by tag name. When to use it: Use this to clean up incorrect, outdated, or unwanted tags without touching any other tags assigned to the artist. Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. Security Model API Key Authentication • [Albums & Releases](https://docs.tunedglobal.com/albums-and-releases.md): Albums and releases are how a catalogue is browsed rather than how it is played. These endpoints resolve an album to its editions, an edition to its track listing, and either to the credits and artwork behind it. The Metadata versions return catalogue facts; the Services versions on the same paths return the signed-in listener's history with them, so most screens call one of each. What's the difference between these two. Albums and Releases are the same, except Albums provide disambiguated information. Currently this detail is scheduled for Q4 and both will return identical data at this time, Albums Retrieve album details, track listings, contributor credits, and related metadata. Supports single and batch lookups. Releases Access release-level records including release date, territories, formats, and digital distribution metadata. • [Albums](https://docs.tunedglobal.com/albums-and-releases/albums.md): Retrieve album data including details, track listings, discovery signals, user context, and editorial tags. Supports single and batch album lookups, related album discovery, and user-specific views (saved, played, recommended). • [Details](https://docs.tunedglobal.com/albums-and-releases/albums/details.md): Get all the necessary details for an album, such as release dates, copyright information, and streaming permissions. Use this section to pull both the core metadata and the associated contributor credits for any specific album ID. • [Get Album](https://docs.tunedglobal.com/albums-and-releases/albums/details/get-album.md): Retrieve full catalogue detail for one album by id — artists, UPC, album type, translations, and the primary release with its own track ids, label and artwork. This is the general-purpose album lookup; get an id first from search, an artist's album list, or a tag browse. Use this when : you already have an album id and need its full catalogue detail. To find an id in the first place, use Content Search, Get Artist Albums, or Get Albums by Tag. Security Model API Key Authentication • [Get Contributor by Album ID](https://docs.tunedglobal.com/albums-and-releases/albums/details/get-contributor-by-album-id.md): Returns a list of the people behind the music - including songwriters, producers, featured artists, and engineers, associated with the album ID, mapped to their specific roles. Security Model API Key Authentication • [Get Album Tags](https://docs.tunedglobal.com/albums-and-releases/albums/details/get-contributor-by-album-id-copy.md): List the tags associated with an album — genre, mood and similar descriptors used elsewhere for browse-by-tag and recommendations. Use this when : you have an album and want to know its tags. To go the other direction — find every album carrying a given tag — use Get Albums by Tag instead. Security Model API Key Authentication • [Current User](https://docs.tunedglobal.com/albums-and-releases/albums/current-user.md): Retrieve a list of every release currently saved to the logged-in user's personal collection. Get all the necessary details for these releases within the user's library. • [Get Releases Context](https://docs.tunedglobal.com/albums-and-releases/albums/current-user/get-releases-context.md): Retrieve per-listener engagement — saved state, play counts, last-played time — for every release of an album, for the signed-in listener. This is engagement data only; for the releases themselves (editions, track ids, artwork) use Get Album Releases. Use this when : you're rendering an edition picker on an album page and want to badge each edition with the listener's own saved/played state. This is the Services (per-listener) sibling of Get Album Releases on the Metadata API — they share a path shape but return completely different models. Security Model oAuth • [Get Album User Context](https://docs.tunedglobal.com/albums-and-releases/albums/current-user/get-album-user-context.md): Show a listener how they personally relate to an album before they open it — whether it's already saved to their collection, how many times they and everyone else have played it, and when they last played it. Use this when : you need a signed-in listener's saved state and play counts for one album that's already on screen. It requires an access token, so skip it for anonymous browsing and render the album from Get Album alone in that case. Security Model oAuth • [Discover](https://docs.tunedglobal.com/albums-and-releases/albums/discover.md): Explore the latest music and emerging trends across the music catalogue. Get all the necessary details for discovery, such as the newest releases, trending albums, and specifically dated arrivals to help users find fresh content. • [New Releases](https://docs.tunedglobal.com/albums-and-releases/albums/discover/new-releases.md): Surface newly delivered release editions — specific pressings such as a deluxe edition or a territory variant — trending over the last 30 days, for a New Releases shelf. Use this when : you want editions specifically. For newly added albums at the parent-work level regardless of edition, use New Albums — the two return different item shapes even though both are "what's new". Security Model API Key Authentication • [Get Album Releases](https://docs.tunedglobal.com/albums-and-releases/albums/discover/new-releases-copy-10.md): Surface newly delivered release editions — specific pressings such as a deluxe edition or a territory variant — trending over the last 30 days, for a New Releases shelf. Use this when : you want editions specifically. For newly added albums at the parent-work level regardless of edition, use New Albums — the two return different item shapes even though both are "what's new". Security Model API Key Authentication • [New Albums](https://docs.tunedglobal.com/albums-and-releases/albums/discover/new-albums.md): Page through newly delivered albums at the parent-work level, ordered by priority, for a straightforward New Albums shelf. Use this when : you want newly added albums regardless of which edition they carry. For the specific editions/pressings behind those albums, use New Releases. Security Model API Key Authentication • [Trending Albums](https://docs.tunedglobal.com/albums-and-releases/albums/discover/trending-albums.md): Surface top albums gaining the most popularity across your service over the last 30 days. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Popularity scores are refreshed once every 24 hours. Use this when : you want a "what's hot right now" shelf. For albums ordered strictly by release date instead, use New by Date; for newly added albums ordered by priority regardless of popularity, use New Albums. Security Model API Key Authentication • [New by Date](https://docs.tunedglobal.com/albums-and-releases/albums/discover/new-by-date.md): Page through albums ordered strictly by release date — the chronological counterpart to New Albums (priority-ordered) and Trending Albums (popularity-ordered). Use this when : you need a strict "most recent first" sort by actual release date. For a popularity-ranked view of what's currently trending, use Trending Albums; for a priority-ordered new-arrivals shelf, use New Albums. Security Model API Key Authentication • [Releases](https://docs.tunedglobal.com/albums-and-releases/releases.md): Per-listener context for releases: whether each is saved, how often the listener and the wider audience have played it, and when they last did. Use POST ‘api/v3/releases/get’ to resolve a whole shelf in one call rather than looping the single-release endpoint. Nothing here returns catalogue metadata, so pair it with the Metadata release endpoints. • [Get Release User Context](https://docs.tunedglobal.com/albums-and-releases/releases/current-user/get-release-user-context.md): Show a listener how they personally relate to one specific release — saved state, their own play count against the store-wide count, and when they last played it. Use this when : you need a signed-in listener's saved state for one release that's already on screen. For every release of an album at once, use Get Releases Context on the album endpoint instead of calling this per release. Security Model oAuth • [Get Multiple Releases User Context](https://docs.tunedglobal.com/albums-and-releases/releases/current-user/get-multiple-releases-user-context.md): Decorates a whole shelf of releases with the signed-in listener's own history in one call — saved state, their play counts against the store's, and when they last listened. Use it instead of looping the single-release endpoint per tile. Use this when : you are rendering several releases and need the listener's engagement with each. The Metadata API's `POST api/v2.4/releases/get` returns catalogue metadata for the same ids, so most screens call both and merge the results. Security Model oAuth • [Get Release Tracks User Context](https://docs.tunedglobal.com/albums-and-releases/releases/current-user/get-release-tracks-user-context.md): Return per-track saved state and play counts for every track on a release, so a track list can show which tracks the listener has saved and how often each has been played. Use this when : you need per-track engagement across a whole release. For the tracks themselves — titles, ISRCs, stream URLs — call the Metadata endpoint at the same-looking path ('api/v2.4/releases/{id}/tracks'), which is a different host and a different response. Security Model oAuth • [Details](https://docs.tunedglobal.com/albums-and-releases/releases/details.md): Get detailed information about the Releases, including metadata. • [Get Release](https://docs.tunedglobal.com/albums-and-releases/releases/details/get-release.md): Retrieve comprehensive information about a specific release, including artist details, track ids, artwork, label data and release dates. Use it to render a release page or to resolve the streaming and download permissions that apply before you attempt playback. The response carries track ids only, not track detail — call Get Release Tracks when you need titles, ISRCs or stream URLs. Use this when : you already have one release id and need its full detail — artists, track ids, artwork, release dates. For several release ids at once, use Get Multiple Releases instead of calling this in a loop. Security Model API Key Authentication • [Get by UPC](https://docs.tunedglobal.com/albums-and-releases/releases/details/get-by-upc.md): Look up every release carrying a given UPC, so a barcode scan, a retail feed, or a distributor's catalogue reference can be resolved to release ids without already knowing them. Use this when : you're matching against an external UPC. If you already hold a release id, Get Release is the more direct call. Security Model API Key Authentication • [Get Multiple Releases](https://docs.tunedglobal.com/albums-and-releases/releases/details/get-multiple-releases.md): Retrieve full detail for many releases in a single request by posting their release ids. Use it to hydrate a grid, a carousel or a saved-items list without one call per tile. Use this when : you already hold release ids. If you have album ids instead, call Get Album Releases first to resolve them — this endpoint does not accept album ids. Security Model API Key Authentication • [Tracks, Songs & Voice](https://docs.tunedglobal.com/tracks-songs-and-voice.md): Access individual audio content at the track and song level, along with voice story content and the editorial controls that govern what a client can play. This section is the foundation of any playback integration. What's the difference between these tracks and songs?. Tracks and Songs are the same, except Tracks provide disambiguated information. Currently this detail is scheduled for Q4 and both will return identical data at this time, Content Control Service-level rules that govern which tracks a client is permitted to play, skip, or download based on subscription and territory. Tracks Core track-level metadata and audio delivery. The foundation of any playback integration. Songs Song-level entities that may span multiple track recordings — use for catalogue deduplication and canonical track resolution. Voice Stories Short-form spoken audio content. Retrieve voice story metadata and delivery URLs for playback. • [Content Control](https://docs.tunedglobal.com/tracks-songs-and-voice/content-control.md): Flags and access-control metadata that govern whether specific tracks or songs can be played in a given context. Content control data includes parental advisory flags, territory restrictions, explicit content markers, and operator-level overrides. Check content control data before initiating playback to ensure compliance with service policies and regional restrictions. • [Validate Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/content-control/validate-tracks.md): Retrieve the list of invalid trackIds for offline mode, meaning no longer available. Use this API if you are enabling offline play to check that a track still has rights to be used.This check should be at least once per day unless your licensing requires more. Security Model API Key Authentication • [Validate Products](https://docs.tunedglobal.com/tracks-songs-and-voice/content-control/validate-products.md): Allows users to verify the status of products within the catalogue. This API would return a list of product IDs that are disabled or no longer available. • [Get Catalogue Counts](https://docs.tunedglobal.com/tracks-songs-and-voice/content-control/get-catalogue-counts.md): Retrieves the total number of songs, artists, and albums available in the catalogue for the current store. • [Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks.md): Core track retrieval endpoints. Fetch individual tracks or batches of tracks by ID, with full playback metadata including duration, ISRC, codec information, and stream URLs. Tracks are the atomic unit of audio in the Tuned Global catalogue. • [Content](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/content.md): Get additional information relating to tracks, including detailed metadata • [Get Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/content/get-tracks.md): Retrieve the list of tracks the currently logged in user has in their collection Security Model API Key Authentication • [Details](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/details.md): Get detailed information about the Tracks, including metadata. • [Get Track](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/details/get-track.md): Retrieve detail about a specific track Security Model API Key Authentication • [Get Multiple Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/details/get-multiple-tracks.md): Retrieve track details for multiple tracks Security Model API Key Authentication • [Get Tracks by ISRC](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/details/get-tracks-by-isrc.md): Get a list of tracks by isrc codes Returns all tracks that are available in the catalogue and have the same ISRC code. Note you can also use Search>SongSearchMatching for more options. • [Get track disambiguation](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/details/get-track-disambiguation.md): Tells you where the same recording turns up more than once in the catalogue, so you can collapse the duplicates before a listener sees them. Look up by track id and you get the other tracks identified as that same recording, each with a confidence score; look up by ISRC and you get just the rows carrying that code. Everything is limited to the rights holders your store is licensed for, so a track outside them returns nothing at all. Use this when : you are de-duplicating a list a listener will see. The Delivery API exposes the same lookup at Retrieve track disambiguation for ingestion pipelines. The logic is identical, but each resolves the rights holders from your own identity — the store here, delivery credentials there — so the two can return different rows for the same recording. Look up by trackId or isrc . If you send both, trackId wins. Sending neither returns 400 rather than an empty list. Security Model API Key Authentication • [Metrics & Counts](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/metrics-and-counts.md): Get metrics of tracks, such as playcounts, favouriting and more. • [Get Multiple Track Play Counts](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/metrics-and-counts/get-multiple-track-play-counts.md): Returns aggregate play statistics for multiple Tracks in a single request: GlobalTotal (all-time play count across all users), GlobalRecent (plays in the last 7 days), DistinctGlobalTotal (all-time count of distinct listeners/plays), and DistinctGlobalRecent (distinct listeners/plays in last 7 days). Use this when: you need play/popularity metrics for a track— e.g. showing "X plays this week" on a track page, or ranking/trending logic. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. • [Get Track Play Counts](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/metrics-and-counts/get-track-play-counts.md): Returns aggregate play statistics for the Track: GlobalTotal (all-time play count across all users), GlobalRecent (plays in the last 7 days), DistinctGlobalTotal (all-time count of distinct listeners/plays), and DistinctGlobalRecent (distinct listeners/plays in last 7 days). Use this when: you need play/popularity metrics for a track— e.g. showing "X plays this week" on a track page, or ranking/trending logic. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Security Model API Key Authentication • [Get Favourite Count](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/metrics-and-counts/get-favourite-count.md): Get the favourite count of a single track • [Get Favourite Counts (Multiple)](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/metrics-and-counts/get-favourite-counts-multiple.md): Get the favourite counts for multiple tracks • [Relationships](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/relationships.md): Get further information derived from relationships on the Tracks, such as contributors and their roles • [Get Contributor by Track ID](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/relationships/get-contributor-by-track-id.md): Retrieve a list of contributors base on track id Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/discover.md): Use these APIs to enhance discovery in regards to tracks. Get similar tracks, recommended tracks via tags or rev]commended tracks by Tuned IQ • [Similar Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/discover/similar-tracks.md): Retrieve a list of similar tracks. Security Model API Key Authentication • [Get Recommended](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/discover/get-recommended.md): Retrieve a list of recommended tracks. Uses tags associated to tracks or derived from Albums and/or Artists to determine similarity Security Model API Key Authentication • [Get IQ Recommendations](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/discover/get-iq-recommendations.md): Allows users to retrieve a list of recommended tracks based on specified track IDs. This functionality enables users to enhance their music discovery experience and explore new content tailored to their preferences. • [Extras](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/extras.md): Get additional track information and metadata, where available. Such as closed caption (CC) • [Get Closed Caption](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/extras/get-closed-caption.md) • [Current User](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/current-user.md): Explore information about the current user in context with Tracks • [Get User Context](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/current-user/get-user-context.md): Compares logged in user to a user id input and provides information on following and followed Use case: You can set users to be verified profiles on Autotune. You can then compare the verified user with the logged in user to display if you are following and who they are following Dave - more input • [Get Multiple](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/current-user/get-multiple.md): Get specific context info for the given songs for the logged in user • [Tag Management](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/tag-management.md): Add and remove tags on tracks and songs. These tags can be; genre, mood, editorial, this means a general tag custom tags, this means custom tags groups that you have created or have been created for you, e.g. Region for Regional Music segmentation. Tags feed into faceted search and browse surfaces. • [Add Tags](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/tag-management/add-tags.md): Adds a set of tags to the track Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. • [Delete Tags](https://docs.tunedglobal.com/tracks-songs-and-voice/tracks/tag-management/delete-tags.md): Deletes tag names from a specific track Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. • [Songs](https://docs.tunedglobal.com/tracks-songs-and-voice/songs.md): Song-level data that sits above individual track variants. A song groups one or more tracks (e.g., different bitrate or format versions) under a single musical work identifier. Use song endpoints to retrieve the canonical metadata for a musical work and to resolve its available playback variants. • [Details](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/details.md): Get detailed information about the Songs, including metadata and more. • [Get Free Song](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/details/get-free-song.md): Retrieve free song id for the service (if activated). Not active by default • [Get Song](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/details/get-song.md): Retrieve detail for an individual song within the catalogue • [Get Multiple Songs](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/details/get-multiple-songs.md): Retrieve details for multiple songs within the catalogue Security Model API Key Authentication • [Content](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/content.md): Get additional information relating to songs, such as Lyrics and Chord Charts • [Get Song Lyrics](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/content/get-song-lyrics.md) • [Get Chord Chart](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/content/get-chord-chart.md): Retrieve chord chart for the specified song Note: This data is only available if Chord Charts are enabled for your service and you or a third party are providing chord charts Security Model API Key Authentication • [Relationships](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/relationships.md): Explore relationships between artists and songs, such as multiple main artists assigned to a song. • [Get Artists](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/relationships/get-artists.md): Retrieve detailed collection of artists for the specified song. Use this where multiple artists are attributed to a song and then allow users to see more from that artist using Artist API endpoints Security Model API Key Authentication • [Current User](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/current-user.md): Get artist • [Get Artists Context](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/current-user/get-artists-context.md): Retrieve detailed user-specific context for the artists of the specified song • [Get User Context](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/current-user/get-user-context.md): Compares logged in user to a user id input and provides information on following and followed Use case: You can set users to be verified profiles on Autotune. You can then compare the verified user with the logged in user to display if you are following and who they are following Dave - more input • [Get Multiple](https://docs.tunedglobal.com/tracks-songs-and-voice/songs/current-user/get-multiple.md): Get specific context info for the given songs for the logged in user • [Voice Stories](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories.md): Voice Stories let listeners take on a character's role inside an audio story — blending their own recorded voice with a character's part from a story album to create something personal and shareable. This section covers everything needed to power that experience: previewing how a character's part and a recorded voice sound together before committing, creating and managing a listener's saved voice stories, and checking usage limits and remaining quota for their current subscription tier. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. • [Create & Preview](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/create-and-preview.md): Every voice story starts here. Browse the characters a story album offers, hear a sample of each part, then render a short preview of the listener's own voice in the role before they commit to it. When they are happy, the same character and voice are used to create the full story. Preview and creation both run in the background and hand back a job ID to poll. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. • [Get Character Stems](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/create-and-preview/get-character-stems-1.md): Returns the characters a listener can step into for a given story album, each with a short sample clip of that character's part so they can hear who they would be playing before committing. This is the entry point to the whole voice-story flow - a listener picks a character here, previews themselves in the role, and only then creates a story. Use this when: you are building the character-selection screen. The CharacterStemId returned here is required by both Create Character Preview and Create Voice Story . Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Create Character Preview](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/create-and-preview/create-character-preview.md): Starts generating a short preview of how a listener's own voice sounds in a chosen character's part, so they can hear the result before spending one of their story credits. Rendering happens in the background and this call returns a job identifier immediately rather than audio. Use this when: the listener has picked a character and a voice and wants to try it out. Poll Get Character Preview with the returned job ID to collect the audio once it is ready. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. A preview consumes the listener's character-preview allowance, not their story allowance. Check Get Remaining Usage before offering the button so you can disable it rather than failing the call. Security Model oAuth • [Get Character Preview](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/create-and-preview/get-character-preview-1.md): Collects a finished character preview by job ID, returning both the full mix - the listener's voice over the music and effects - and, where available, their voice on its own. Rendering takes time, so this is a polling endpoint: a preview that is still processing answers 404 rather than blocking. Treat 404 as "not ready yet, poll again" and 400 as a genuine failure that will not resolve. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Create Voice Story](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/create-and-preview/create-voice-story-1.md): Creates a full voice story: the listener's chosen voice rendered into a character's part across the whole album, saved to their library under a name they choose. Like previews this runs in the background and returns a job identifier straight away, because rendering a complete story takes considerably longer than a single preview clip. Use this when: the listener has previewed a character and wants to commit. Poll Get Latest Voice Story with the returned job ID to watch it complete, then read it back with Get Voice Story . Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Each story consumes one of the listener's story credits for their subscription tier. Check Get Remaining Usage first so you can disable the button rather than failing the call. Security Model oAuth • [My Stories](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories.md): A listener's own library of finished and in-progress voice stories. List everything they have made, open one for its artwork, running time and rendering status, pull the rendered audio files for playback, poll a story that is still being generated, and delete the ones they no longer want. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. • [Get My Voice Stories](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories/get-my-voice-stories.md): Returns every voice story the signed-in listener has created, with enough detail to render a library grid without a follow-up call per row: the story name, the album it came from, its artwork, track count, total running time and current rendering status. Stories still being generated are included, so the list doubles as a progress view. Use this when: you are building the listener's voice-story library. For one story's full detail, including its rendered track, use Get Voice Story . Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Voice Story Get Tracks](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories/voice-story-get-tracks.md): Returns the rendered audio files that make up a finished voice story, one entry per track, each pairing the original catalogue track ID with the URL of the personalised version. This is what a player queues up to play a listener's story end to end. Use this when: you need every rendered file for playback or download. For the story's metadata - name, artwork, status, running time - use Get Voice Story, which returns only a single track. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Delete Voice Story](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories/delete-voice-story.md): Deletes one of the listener's voice stories, removing it from their library along with its rendered audio. There is no undo and the story cannot be re-rendered without spending another credit, so confirm with the listener before calling. Use this when: the listener is clearing something out of their library. Deleting a story does not free up a used story credit, and it does not remove the voice it was made with - use Delete Voice for that. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get Latest Voice Story](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories/get-latest-voice-story.md): Returns the listener's most recent voice story, or - when a job ID is supplied - the story produced by that specific rendering job. This is the endpoint you poll after Create Voice Story to watch a story move from queued to finished. Use this when: you are tracking a story that is still rendering. Once it is complete, read it back with Get Voice Story using its Id rather than continuing to poll here. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get Voice Story](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-stories/get-voice-story.md): Returns one voice story in full - its name, source album and artwork, the character and voice used, rendering status, and the rendered audio itself. Passing a track ID narrows the embedded Track to that specific track, which is how you resolve a playable file for one part of a multi-track story. Use this when: you are opening a story's detail or player screen. For every rendered file at once rather than a single track, use Get Voice Story Tracks . Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [My Voices](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices.md): Before a listener can appear in a story they need a registered voice. These endpoints save a trained voice against their account with a name and picture, list what they have available for a picker, update a voice, and remove one they no longer want. Voices are personal to the listener and count against their plan's allowance. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. • [Register Voice](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices/register-voice.md): Registers a voice the listener has trained, giving it a display name and a profile image so it can be picked from a list when they create a story. The voice model itself is trained with the third-party voice provider first; this call records it against the listener's account and returns the internal ID the voice-story endpoints use. The request is multipart/form-data, not JSON. Registering a voice consumes the listener's voice allowance. Check Get Remaining Usage before offering the option. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get My Voices](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices/get-my-voices.md): Returns the voices the signed-in listener has registered, each with its display name and profile image, ready to render as a picker when they start a new story. Deleted voices are excluded, so the list is always what the listener can actually use right now. Use this when: you are showing a voice picker or a manage-voices screen. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get Voice](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices/get-voice.md): Returns a single registered voice - its display name, profile image and provider ID - for a voice-detail or edit screen. It only ever resolves voices belonging to the signed-in listener, so it cannot be used to look up someone else's. Use this when: you already hold a TunedVoiceId and need just that one voice. To render a picker, use Get My Voices rather than calling this per row. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Update Voice](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices/update-voice.md): Updates a registered voice's display name, profile image, or the underlying provider voice ID. It is a genuine partial update - send only the parts you are changing and the rest are left alone - but at least one must be present or the call is rejected. Use it to rename a voice, change its picture, or repoint it at a retrained model. The request is multipart/form-data, not JSON. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Delete Voice](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/my-voices/delete-voice.md): Removes a voice from the listener's account so it no longer appears in pickers. The removal is a soft delete - stories already created with that voice keep working and their rendered audio is untouched. It does not delete the voice model held by the third-party provider, and it does not give back a used voice credit. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get Remaining Usage](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/usage-and-limits/get-remaining-usage.md): Returns how much of the listener's voice-story allowance is actually left - stories, character previews and voices - after what they have already used. Read it before offering any action that spends a credit so you can disable the button rather than letting the call fail. Use this when: you are gating the create, preview or register-voice buttons. For the plan's total entitlement rather than the remainder, use Get Usage Limit . Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Get Usage Limit](https://docs.tunedglobal.com/tracks-songs-and-voice/voice-stories/usage-and-limits/get-usage-limit.md): Returns the ceilings that the listener's subscription tier allows: how many voice stories, character previews and registered voices they may have in total. These are the plan's entitlements, not what the listener has left. Use this when : you are showing a plan comparison or an upgrade prompt - "your plan includes 5 stories". To decide whether a button should be enabled right now, use Get Remaining Usage instead. Want to hear this in action? You'll just need the ID of an album with voice-story character stems configured. Reach out to your Tuned Global contact — we're happy to get you a sample album to play with, or help set one up in your own catalogue. Security Model oAuth • [Stations & Radio](https://docs.tunedglobal.com/stations-and-radio.md): A station is a radio stream, not a fixed list. Unlike a playlist, a station has no set running order and does not expose a full tracklist up front. Instead it delivers a short batch of tracks at a time, tuned to the individual listener, and hands out more as they play. What each listener hears is shaped by their likes and dislikes, by licensing rules, and by DMCA compliance logic, so the same station can sound different for two different users. Stations can be built in the Tuned CMS (AutoTune) or created on the fly through the API from a seed such as an artist. Either way, the platform handles the personalisation and the compliant sequencing for you. How a station is produced Every station is produced in one of two ways. This determines who builds it and how its tracks are chosen. Title Description Title Curated Programmatic Built by Your editorial team, in the CMS or via the API Generated by the platform from one or more seeds Based on A hand-selected pool of tracks A seed value such as an artist, expanded to similar content Personalised per user No Yes, built around the user's listening history or artist selection and refined by feedback (likes / dislikes) DMCA compliant Yes (optionally) Yes (optionally) Typical use Editorial "preset" stations: genre, mood, and featured radio on your home screen "Start a station from this artist" and similar in-app actions Station types at a glance The concepts below are the ones you will surface most often. The first three are about what a station is ; the last two are about how listeners find one . Title Description Title Concept What it is What it's for Preset station A ready-made station curated in the CMS, the backbone of your radio catalogue Genre, mood, and featured radio you feature on browse and home surfaces Artist station A station seeded from one artist and expanded with similar artists "Play a station based on this artist" from an artist page Programmatic station A station generated on demand from one or more seeds (a single artist, or up to six artists blended together) Letting listeners spin up their own radio from artists they pick Trending stations The preset stations with the most listener momentum right now, ranked by recent activity A "Trending now" or "Popular radio" discovery rail Similar stations Other stations closely related to a given one "More like this" recommendations next to the station a user is playing Under the hood, every station carries a Type . The table above maps to these values, with a few additional specialised types available: Title Description Type Meaning Preset CMS-curated preset radio station Artist An artist plus similar artists SingleArtist A single artist only, no expansion MultiArtist A blend of several artists (2 to 6 seeds) Tag Driven by a genre or mood tag User A station an end user created and owns External A station sourced from an external radio feed Plaidio , ShadowQueue Specialised station types used by advanced listening features (each has its own guide) Discovering the station catalogue These reads come from the Metadata API and need no user sign-in, so they are ideal for browse screens, home rails, and anything you cache. List preset stations across the catalogue to populate a station browse surface Trending presets , ranked by recent listener activity, for a "popular right now" rail Similar stations to a given station, for "more like this" recommendations Station details : name, description, cover and banner artwork, theme, and genre tags for a single station Station identifiers : the short intro and callout branding clips ("idents") that play as a station's audio branding Trending artists across all your stations, ranked by recent likes, and the standout trending artists within a single station The personalised radio session Once a logged in user starts a station, these Services API endpoints are used to power the experience. Get tracks : fetch the next batch of tracks for a station. Stations hand out a limited number at a time and you request more as playback continues, rather than loading a whole tracklist Vote : submit a thumbs up or down on the current track. This feedback personalises what the station plays next Read a user's votes : retrieve the tracks a listener has liked or disliked in a station Clear votes : remove a user's track votes, or clear their artist-level votes Skips remaining : check how many skips a listener has left, so you can enforce skip limits per the station's licensing rules Next station : move the listener on to a suggested follow-on station when the current one ends Track extras : returns audio ads for stations when server to server ad partner is licencsed (Triton or similar). User cover : pull user-specific cover artwork for the session Sync tracks and log offline plays : download a batch for offline listening, then report those plays back when the device reconnects User context and last played : read a listener's relationship to a station and the stations they most recently played Creating stations from seeds Listeners can generate their own programmatic stations through the Services API: Add by seed : create a station from a single seed. The seed can be an artist (expanded with similar artists), a single artist, a tag, or a user Add by multiple seeds : blend 2 to 6 artists into one station, for a "mix of these artists" experience Signals that shape a station A station is more than a list of tracks. The platform tracks several signals that drive ranking and delivery: Likes and dislikes feed back into what each listener hears next Trending score and boost rank stations for discovery rails Content tier ( Tier0 / Tier1 / Tier2 ) aligns station access with your subscription and package entitlements Auto-refresh keeps a station's content current without manual rebuilds Draft state lets a station be prepared before it goes live DMCA compliance, built in For stores with DMCA compliance enabled, the platform sequences every station to satisfy the sound-recording performance complement automatically. Within any 3-hour window: No more than 4 tracks by the same artist (or from a single compilation), and no more than 3 of them consecutively No more than 3 tracks from the same album , and no more than 2 of them consecutively Programs run as at least 3 hours of continuous audio Tracks that cannot be placed compliantly are dropped from the sequence, so you never have to enforce these rules yourself. Built on two purpose-built APIs Station functionality is split across two APIs by access pattern, not by feature: Metadata API (version 2.4): anonymous, public catalogue reads using the store and country only, no user token. This is the station catalogue: presets, trending, similar, details, identifiers, and trending artists. Use it for discovery surfaces and anything you want to cache or serve from a CDN. Services API (version 3): authenticated and OAuth-scoped. Use it for everything tied to a specific signed-in listener: starting a station, fetching tracks, voting, skipping, and their station history. A station browse screen and a live listening session call the same underlying station model. You are choosing the API that matches who is asking. Related capabilities elsewhere in the docs Stations connect into several other parts of the API: Artist stations : the stations associated with a specific artist ( Artists section) Station search : find stations by keyword ( Search section) Stations by tag : browse stations under a genre or mood tag ( Tags section) Saved stations : add and remove stations in a listener's personal collection ( User Library & Collection section) Recommended stations : personalised station recommendations for a user ( Users section) • [Station Catalogue](https://docs.tunedglobal.com/stations-and-radio/station-catalogue.md): Browse, search, and discover the full catalogue of available stations. Retrieve station details, artwork, associated genre tags, and metadata needed to populate a station browse or discovery surface. Supports filtering by genre, mood, and featured status. • [Details](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/details.md): Everything about a single station in the catalogue. Fetch a station's core metadata and artwork with Get Station, and its intro/callout branding clips with Get Identifiers. • [Get Station](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/details/get-station.md): Security Model API Key Authentication etrieves the full details of a system station by its ID. • [Get Identifiers](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/details/get-identifiers.md): Retrieve all identifiers of a station. This means the station ids, being audio that calls out the station. Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/discover.md): Browse the station catalogue and find stations to surface to your users. List all available stations with Get Presets, see what's trending with Get Trending Presets, and find stations like a given one with Get Similar. • [Get Trending Presets](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/discover/get-trending-presets.md): Surface top Preset stations that are gaining the most popularity across your service over the last 30 days. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Popularity scores are refreshed once every 24 hours. Security Model API Key Authentication • [Get Similar](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/discover/get-similar.md): Retrieves stations that are similar to a given station. Similar stations are those that share the most tracks by the same artists.. Use this to increase engagement and discovery. Security Model API Key Authentication • [Get Presets](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/discover/get-presets.md): Retrieves a paged list of system stations. Use this to browse or list the available system stations for your store. Security Model API Key Authentication • [Artists](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/artists.md): Surface the artists resonating with listeners across your stations, ranked by recent likes. Get the overall top trending artists with Get Trending Artists, or the standout artists within a single station with Get Station Trending Artists. • [Get Trending Artists](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/artists/get-trending-artists.md): Retrieves the top trending artists across all active stations in your service — a list of up to 20 artists, ranked by how many songs users have liked in any station over the past rolling month. Useful for showing "trending artists" on a discovery or home screen. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Popularity scores are refreshed once every 24 hours. Security Model API Key Authentication • [Get Station Trending Artists](https://docs.tunedglobal.com/stations-and-radio/station-catalogue/artists/get-station-trending-artists.md): Retrieves the top trending artists for a specific station — a list of up to 10 artists, ranked by how many songs users have liked in that station over the past rolling month. It's scoped per client, so counts reflect activity within your service only, not global across all TunedGlobal partners. Popularity scores are refreshed once every 24 hours. Security Model API Key Authentication • [Station Experience (Current User)](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user.md): Personalised radio playback endpoints for the authenticated user. Start a station session, retrieve the next track, submit feedback (thumbs up/down), track skip usage against rate limits, and manage the user's station history and preferences. • [Discovery & Access](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access.md): Station discovery features for the authenticated user, including personalised recommendations, recently played, and unlocked stations. • [Get User Suggested](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-user-suggested.md): Retrieve a list of stations suggested for the logged-in user. The suggestions are personalized to the user identified by the access token. • [Get User Context](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-user-context.md): Retrieve user-specific context about a station for the logged-in user — for example, whether the station is in the user's collection. • [Get My Last Played](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-my-last-played.md): Retrieve the stations the logged-in user played most recently — up to 20, most recent first. Deprecated . This endpoint is deprecated and should not be used by new integrations. It may be removed in a future version. • [Get Suggested Station by Track IDs](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-suggested-station-by-track-ids.md): Return a single station suggested for the logged-in user, based on a set of seed track IDs. Deprecated . This endpoint is deprecated and should not be used by new integrations. It may be removed in a future version. • [Add by Seed](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/add-by-seed.md): Creates a new station for the logged-in user from a single seed — for example an artist or tag. The station is generated from the seed and returned. • [Add a station from multiple seeds](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/add-a-station-from-multiple-seeds.md): Creates a personalised station from several seed ids at once — tracks, artists or a mix — so the result blends all of them rather than radiating from a single seed. Use this when : you want a station built from a set, such as a listener's recent favourites. For a station from one seed, use the single-seed station endpoints. • [Get Tracks](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-tracks.md): Returns the next tracks to play for a radio station, personalized for the logged-in user. Call this to fetch the upcoming tracks for a station. • [Get Sync Tracks](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/discovery-and-access/get-sync-tracks.md): Returns a set of tracks for offline listening for a station — approximately two hours of music. Use this to download tracks so a station can be played offline. • [Interaction & Playback](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback.md): Everything a user does while listening to a station in a live session. Fetch playback extras and cover artwork, check remaining skips, cast and read likes/dislikes with Vote and Get User Votes, advance to the next station, and record plays that happened offline. • [Get User Cover](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/get-user-cover.md): Retrieves the cover image for a station. The image is returned as a localized value (a language paired with the image URL). • [Get Skips Remaining](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/get-skips-remaining.md): Return the number of track skips the logged-in user has left for a station on a given device. • [Get User Votes](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/get-user-votes.md): Retrieve the tracks the current user has liked or disliked in a station. • [Get Track Extras](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/get-track-extras.md): Returns updated user play data, and non track media to be inserted into the play stream for a user radio station session • [Vote](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/vote.md): Submit a like or dislike from the logged-in user on a track or artist in a station. • [Get Next Station](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/get-next-station.md): Return the next station for the logged-in user, used for continuous play. Deprecated . This endpoint is deprecated and should not be used by new integrations. It may be removed in a future version. • [Log Offline Plays](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/log-offline-plays.md): Log plays that happened while the user was offline. This API is used for reporting plays for licensing reporting and analytics. Consult with Tuned Global to ensure you are logging the correct actions for your Rights Holder Agreements. This API is for logging multiple plays (a batch of plays) and most often used when plays have occurred when the user is offline and then logged when the user is back online. Use Logofflineplays for logging multiple actions and tracks. Note: This creates a log for reporting or analytical purposes • [Delete Artist Votes](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/delete-artist-votes.md): Delete Artist Votes for the logged in user. Delete Artist Votes (likes/dislikes) for the logged in user. • [Delete Votes](https://docs.tunedglobal.com/stations-and-radio/station-experience-current-user/interaction-and-playback/delete-votes.md): Delete all of the logged-in user's votes (likes/dislikes) on a station. • [Get Live Station Items](https://docs.tunedglobal.com/stations-and-radio/live-stations/get-live-station-items.md): Returns the complete running order of a published live station - every track and podcast episode in the sequence a listener will hear it, with the metadata needed to render each row. Unlike a personalised radio station, a live station has a fixed, fully visible item list, and this endpoint returns all of it in one call rather than paging. Use this when: you are showing a live station's schedule or upcoming items. For a seed-based radio station, which hands out a short batch at a time and has no fixed order, use Get Tracks instead. A live station mixes catalogue types in a single running order, so Items can contain both tracks and podcast episodes. Branch on ItemType before reading the type-specific fields - several are null for episodes. Security Model API Key Authentication • [Get Live Station Stream Context](https://docs.tunedglobal.com/stations-and-radio/live-stations/get-live-station-stream-context.md): Returns how a live station is performing across your whole audience - total plays, plays in the rolling seven-day window, and how many distinct listeners it reached in that window. These are aggregate figures for everyone in the store, not the signed-in listener's own history. Use this when: you are building a station performance or reporting view. Despite the matching path shape, Get User Context returns the caller's own play counts and collection state for a seed-based station - the two endpoints are not equivalents of each other. Security Model oAuth All-time distinct listener counts are not stored, so only the seven-day distinct figure is available. Do not derive an all-time unique-listener number from these fields. • [Unified Listening](https://docs.tunedglobal.com/unified-listening.md): This section details the APIs for building a continuous music stream for your app or service. Unified Listening has two different executions - bith create a single unified listening experience. They are Plaidio and ShadowQ - get all the detail here. A ShadowQ is a managed and shared queued system, meaning a ashared group of tracks. The ShadowQ can be populated from a Radio Experience, a playlist or user's Queue. The APIs provide timing data for the tracks so that tracks can be syncronized to the second on many user's applications. Check out all the details here. Plaidio is effectively a linear radio station where people can join and listen to the same tracks together. A quickstart guide and explanantion is here. Get Tracks Resolve a unified queue of tracks from multiple content types for continuous cross-format playback. Get Play History Retrieve the user's recent cross-format listening history across the unified queue. Create Shadow Queue Initialise a shadow queue for prefetching and gapless playback across content boundaries. Add Tracks Append tracks to an active unified listening session queue. • [Get Tracks](https://docs.tunedglobal.com/unified-listening/get-tracks.md): Returns the next up to two tracks scheduled to play in a queue, together with the queue's current di splay status. Security Model API Key Authentication • [Get Play History](https://docs.tunedglobal.com/unified-listening/get-play-history.md): Returns the tracks recently played from a shadow queue (last ~3 hours), each with its album and artist identity. Useful for surfacing a "recently played" list for a station or other shadow-queue-backed playout. Security Model API Key Authentication • [Create Shadow Queue](https://docs.tunedglobal.com/unified-listening/create-shadow-queue.md): Creates a new shadow queue for the calling store, seeds it with an initial set of tracks, and returns the new queue's identifier. Security Model API Key Authentication • [Add Tracks](https://docs.tunedglobal.com/unified-listening/add-tracks.md): Adds tracks to an existing shadow queue. Security Model API Key Authentication • [Playlists](https://docs.tunedglobal.com/playlists.md): Playlists are an ordered collection of tracks, unlike Radio Stations, which have no fixed order and don't expose their full tracklist. Tuned Global's playlist APIs cover the complete spectrum: from editorially curated collections your team builds in the CMS, to fully user-authored playlists your listeners create, reorder, and share from directly inside your app. Two ways a playlist comes to life Every playlist on the platform falls into one of two models. The table below explains these and their use cases. Title Description Title System playlists User playlists Created by Your editorial / content team Any authenticated end user Created via The Tuned CMS (Autotune) Directly through the Services API ( Create Playlist ) Consumed via Read-only, through the APIs Read/write, through the API Ownership The platform / store The individual creator Typical use Homepage features, mood & genre hubs, "official" editorial collections Personal libraries, user-generated playlists, sharing Only User and Verified playlists are writable through the API. System playlists are authored and maintained in the Tuned CMS. Both playlist types share the same read endpoints ( get details , list tracks , check favourite counts ), so a single integration handles editorial and user-generated content side by side without any special-casing. Under the hood there's more nuance than a strict binary, which shows up as a Type on every playlist: Title Description Type What it means System Standard CMS-curated playlist, managed by your team SystemDailyDiscovery Auto-generated, algorithmically personalized per user (a "daily mix"-style feed) Verified Made the same way as a User playlist, via the API — but its creator's account is separately flagged as verified, so it surfaces through verified-only discovery endpoints User Created directly by an end user through the API Platform capabilities at a glance Full lifecycle for user-authored playlists: step-by-step Step 1 : Create a playlist . Call Create Playlist to make a new empty playlist for the authenticated user, setting the title, description, and public/private visibility. The response returns the new playlist ID you'll use in every step that follows. Step 2 : Add tracks . Use Add Tracks to append one or more track IDs to the playlist, or Replace Track List to set the entire tracklist in a single call. Tracks are stored in order, so the sequence you send is the sequence listeners will hear. Step 3 : Update the playlist image and description. Call Edit Playlist Metadata to update the title, description, and visibility, then Upload Playlist Cover to set custom cover art (supported per language). Use Delete Playlist Cover if you need to remove artwork and fall back to the default. Step 4 : Reorder tracks. Call Move a Track to change a track's position within the playlist, adjusting the listening flow without rebuilding the whole list. Step 5 : Delete tracks or the playlist. Use Remove a Track to take an individual track out, or Clear Track List to empty it while keeping the playlist intact. To remove the playlist altogether, call Delete Playlist . Precise track & tracklist control Add one or more tracks in a single call Remove an individual track Replace the entire tracklist in one call Clear every track while keeping the playlist itself Move a track to a new position (reorder without rebuilding the list) Every track carries its own position, added-date, and updated-date, so clients can build drag-and-drop reordering and "recently added" views without extra bookkeeping Rich, localized media Name, description, and cover art all support per-language values out of the box — one playlist, many locales Upload or remove custom cover art independently of the default artwork Native support for both audio and video playlists Discovery & personalization Browse all published playlists for a store , or just what's trending Look up playlists by track (“what playlists contain this song?”), by verified user , or by tag Personalized feeds driven by a listener's onboarding tag preferences , including a trending view scoped to a specific tag type Full-text playlist search and artist-linked playlists (surfaced via the Search and Artists APIs) Personalized playlist recommendations for the current user Quick discovery signals — explicit-content flag and favourite count — without fetching the full object User context & personal library A dedicated per-user context endpoint returns play count, last-played time, and whether the playlist is already saved to the listener's collection — kept separate from the shared playlist resource itself Listeners can favourite and collect playlists they didn't create, building a personal library out of both System and User playlists Content governance Explicit-content flagging Content tiering ( Tier0 / Tier1 / Tier2 ) to align playlist access with your subscription/package entitlements Language-restricted playlists, for catalogues that need to scope content by market. Distribution Download a playlist to cloud storage — useful for offline distribution (background music and airline use cases) or downstream processing pipelines Admin & curation tooling (CMS) Look up any playlist by ID as an admin , independent of its normal visibility rules — built for internal curation review Add or remove tags on a playlist administratively, which is what powers tag-based browsing and personalized "for you" surfaces for listeners Built on two purpose-built APIs Playlist data is split across two APIs by access pattern, not by feature: Metadata API - anonymous, public catalogue reads (store + country only, no user token). Use it for discovery surfaces, editorial features, and anything you'd like to cache or serve from a CDN. Services API - authenticated, OAuth-scoped. Use it for anything that belongs to a specific logged-in user: their own playlists, their library, their personalized feeds. A public playlist page and a "my playlists" screen call the same underlying playlist model — you're simply choosing the API that matches who's asking. Related capabilities elsewhere in the docs Playlists connect into several other parts of the API: Favouriting & library - save a playlist to a user's collection ( User Library & Collection section) Personalized recommendations - algorithmic playlist suggestions for a user ( Users → Personalisation and Recommendations ) Tag-based browsing - discover playlists by tag ( Tags section) Artist-linked playlists - playlists associated with a specific artist ( Artists section) Full-text search - find playlists by keyword ( Search section) • [Browse Playlists](https://docs.tunedglobal.com/playlists/browse-playlists.md): This is the public side of the playlist experience. This means that you can view or get details on Public Playlists, these are either curated playlists by the account owner (system) or they are user playlists that have been made public. This could be a regular user or a verified user. View full playlist details and track lists, and check quick signals like explicit content or favourite counts. Use these endpoints to power discovery, and public playlist pages for listeners. You can access a logged in users Playlists via the My Playlists and Actions section. • [Details](https://docs.tunedglobal.com/playlists/browse-playlists/details.md): This is what a listener sees the moment they tap into a playlist someone else made — full playlist details, the tracks inside it, and quick signals like whether it contains explicit content and how many people have favourited it. Use these to power a public playlist's detail page. • [Get Playlist](https://docs.tunedglobal.com/playlists/browse-playlists/details/get-playlist.md): Returns the header a listener sees the moment they open a public playlist: its localised name and description, cover art per language, creator, track count, total running time, explicit flag and content tier. The tracklist is deliberately left out so a 500-track playlist loads as fast as a 10-track one - fetch it separately with Get Tracks . Use this when : you only need public data. For a playlist the signed-in listener owns, or any private or draft playlist, call Get Playlist on the Services API instead - this endpoint returns 404 for anything not marked public. Security Model API Key Authentication • [Get Tracks](https://docs.tunedglobal.com/playlists/browse-playlists/details/get-tracks.md): Returns the tracks inside a playlist in playing order, one page at a time, with everything a row needs to render and start playing: title, artists, artwork, duration, ISRC, explicit flag and the per-market stream and download entitlements. Fixed and dynamic playlists come back through the same shape, so a client never has to branch on playlist type. Use this when: you are rendering the tracklist itself. Get Playlist returns the header only and will not give you tracks. Security Model API Key Authentication • [Get Playlist Explicit Status](https://docs.tunedglobal.com/playlists/browse-playlists/details/get-playlist-explicit-status.md): Returns a single boolean telling you whether a playlist contains any explicit track, so you can show a parental-advisory badge or hide the playlist under a restricted profile without downloading its tracklist first. The flag covers the playlist as a whole - it will not tell you which tracks are explicit. Use this when: the badge is all you need. The same value already sits on the IsExplicit field of Get Playlist , so skip this call whenever you are loading the full header anyway. Security Model API Key Authentication • [Get Playlist Favourite Count](https://docs.tunedglobal.com/playlists/browse-playlists/details/get-playlist-favourite-count.md): Returns how many listeners have saved this playlist to their collection, as a single number. Use it for social proof on a playlist tile, or to rank an editorial shelf by popularity without pulling every playlist's full detail. Use this when: you need the count on its own. The browse endpoint Get Playlists already returns FavouriteCount on every row, so use that when you are rendering a list. Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/playlists/browse-playlists/discover.md): Most listeners don't come looking for a specific playlist — they browse until something catches their eye. These endpoints power that experience: what's trending right now, playlists built around a track or tag a listener loves, hand-picked collections from verified creators, and general browsing with sorting and filters by genre, mood, or editorial category. Use these to power discovery and recommendation surfaces for anyone, signed in or not. • [Trending Playlists](https://docs.tunedglobal.com/playlists/browse-playlists/discover/trending-playlists.md): Returns the playlists listeners are actually gravitating towards right now, ranked over the last 30 days rather than all time, so a shelf built on it keeps moving instead of ossifying around the same evergreen collections. Curated and public listener playlists are ranked together. Use this when: you want a what's-hot shelf for everyone, signed in or not. For trending scoped to a genre or mood a listener already follows, use Get Trending Playlists By Tag Type on the Services API, which needs an authenticated listener. Security Model API Key Authentication • [Get Playlists](https://docs.tunedglobal.com/playlists/browse-playlists/discover/get-playlists.md): Returns the store's published playlists as a browsable shelf - newest first by default, or ordered A-Z, by popularity, or by favourite count. Filter to audio or video, and to editorially curated (System) playlists, listener-made (User) ones, or both. Use this when: you are building a general browse or "all playlists" surface. For a ranked what's-hot view use Trending Playlists ; for mood- and genre-driven shelves use Playlists By Tags . Security Model API Key Authentication • [Get Playlists by Track ID](https://docs.tunedglobal.com/playlists/browse-playlists/discover/get-playlists-by-track-id.md): Answers "what else is this song on?" - returns the public playlists that contain a given track, so a now-playing or track detail screen can offer a natural next hop into related listening. Private playlists that contain the track are never exposed, and neither is the track's position inside each playlist. Security Model API Key Authentication • [Get Playlists by Verified User](https://docs.tunedglobal.com/playlists/browse-playlists/discover/get-playlists-by-verified-user.md): Returns the public playlists published by one verified creator, so you can build a creator profile page without the caller signing in. Only playlists the creator has made public are returned - their private and draft work never appears here. Use this when: the creator is verified and you want their curated shelf. For any ordinary listener's public playlists, use Get User Public Playlists , which takes the same userId but does not require verification. Security Model API Key Authentication • [Get Playlists by Verified Users](https://docs.tunedglobal.com/playlists/browse-playlists/discover/get-playlists-by-verified-users.md): Returns public playlists from every verified creator in your service in one shelf, each row carrying the tags it was matched on so you can group or badge them without a second call. Narrow it by tag, by tag type, or by a tag on the creator themselves. Use this when: you are building a "from our creators" shelf across everyone. To show one creator's own catalogue, use Get Playlists By Verified User , which takes a userId. Security Model API Key Authentication • [User Views](https://docs.tunedglobal.com/playlists/browse-playlists/user-views.md): Sometimes a listener wants to see everything a specific creator has put together, not just one playlist. These endpoints return the full set of public playlists a given user has published. Use these to power a creator's public profile page. • [Get User Public Playlists](https://docs.tunedglobal.com/playlists/browse-playlists/user-views/get-user-public-playlists.md): Returns the playlists a given listener has chosen to make public, so anyone - signed in or not - can browse someone else's shelf from a profile or a shared link. Audio and video playlists come back together, and anything the user kept private or left as a draft is excluded. Use this when: you are looking at somebody else's profile. For the signed-in listener's own playlists, including private ones, call Get My Playlists on the Services API instead. Security Model API Key Authentication • [My Playlists & Actions](https://docs.tunedglobal.com/playlists/my-playlists-and-actions.md): This is the user authenticated side of the playlist experience - that means the playlists that belong to the single authenticated user. Look up a user's playlists and personal listening context, create and edit new playlists, manage covers and metadata, and add, remove, or reorder the tracks inside playlists. Use these endpoints to power the parts of your app where a listener is actively building and managing their own collection. You can manage public playlists in the Browse Playlists section • [Details](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/details.md): When a listener opens their own library, this is what powers it. Pull full details for a specific playlist, see how much they've personally played it and whether it's already in their collection, or list out every playlist they've built. Use these to power a listener's personal library and playlist detail views. • [Get Playlist](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/details/get-playlist-1.md): Returns the full header for a playlist the signed-in listener is allowed to see - their own playlists whether public or private, plus any public playlist in the store. As with the public endpoint the tracklist is not included; fetch it from the Metadata API's Get Tracks . Use this when: the listener owns the playlist or it may be private. For anonymous browsing of public playlists use Get Playlist , which needs no access token. Security Model oAuth • [Get User Context](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/details/get-user-context.md): Returns the signed-in listener's personal relationship with one playlist - how often they have played it, when they last did, and whether it is already saved to their collection - alongside the global play counts for the same playlist. Keeping this apart from the playlist resource means the shared playlist object stays cacheable while the personal part stays live. It is what a playlist detail screen reads to decide between a "Save" and a "Saved" button, or to show "you have played this 37 times". Use case: You can set users to be verified profiles on Autotune. You can then compare the verified user with the logged in user to display if you are following and who they are following Security Model oAuth • [Get My Playlists](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/details/get-my-playlists.md): Returns the playlists the signed-in listener created, private and draft ones included, which is what a " My Playlists " screen is built from. It covers only what they made themselves - playlists they merely favourited live in their collection, not here. Use this when: you are rendering the listener's own library. To see somebody else's public shelf, use Get User Public Playlists on the Metadata API, and for saved-but-not-created playlists use the User Library & Collection endpoints. Security Model oAuth • [Discover](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/discover.md): Not every listener wants to build a playlist from scratch — sometimes they just want something good, right now. These endpoints surface playlists tailored to a signed-in listener: picks based on the tags they chose during onboarding, or what's trending within a genre, mood, or tag type they already care about. Use these to power personalized discovery and recommendation surfaces inside the app. • [Get Playlists by Onboarding Tags](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/discover/get-playlists-by-onboarding-tags.md): Returns playlists matched to the genres and moods the listener picked during onboarding, which is what makes a brand-new account's home screen feel personal before there is any listening history to learn from. Selections are made through the onboarding tag endpoints in the Users section; this endpoint only reads them. Use this when: the listener is new or has little history. Once they have been listening for a while, the TunedIQ recommendation endpoints give better results, and Get Trending Playlists By Tag Type blends preference with what is popular right now. Security Model oAuth • [Get Trending Playlists by Tag Type](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/discover/get-trending-playlists-by-tag-type.md): Returns what is trending inside the categories a listener already cares about - so a jazz listener sees the jazz playlists climbing this week rather than the global chart. It combines the listener's saved tag preferences with current popularity, narrowed to one kind of tag at a time. Use this when: you want a personalised what's-hot row. For store-wide trending with no listener involved, use Trending Playlists on the Metadata API; for preference-matched playlists with no popularity weighting, use Get Playlists By Onboarding Tags . Security Model oAuth • [Playlist Management](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management.md): The core toolkit for a listener who wants to curate their own space. Create a new playlist, rename it, rewrite its description, flip it between public and private, or give it custom cover art per language. Use these to power playlist creation and editing flows end-to-end. • [Create Playlist](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management/create-playlist.md): Creates a playlist owned by the signed-in listener, with a localised name and description and a choice of audio or video, ready to be filled with tracks. The response carries the new PlaylistId , which every later call - adding tracks, uploading a cover, editing metadata - is keyed on. Only listener-owned playlists are created this way; editorial playlists for the whole store are authored in the Tuned CMS, not through this API. Security Model oAuth • [Edit Playlist Metadata](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management/edit-playlist-metadata.md): Updates the parts of a playlist a listener can change without touching its tracks: name, description, whether it is public, whether other listeners may suggest tracks, and whether it is still a draft. Flipping a playlist to private also pulls it straight out of search and browse, so the change is visible to other listeners immediately. Use this when: you are renaming a playlist or changing its visibility. For cover art use Upload Playlist Cover , and for the tracks themselves use the tracklist endpoints. Only the creator can edit a playlist. Admin tokens can read and delete other people's playlists but cannot edit their metadata through this endpoint. Security Model oAuth • [Delete Playlist](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management/delete-playlist.md): Deletes a playlist the signed-in listener created, removing it from their library and from public browse and search at once. The tracks themselves are untouched - only the collection is removed - and there is no undo, so confirm with the listener before calling. Use this when: the listener wants the playlist gone. To empty a playlist but keep it, use Clear Track List instead. Security Model oAuth • [Upload Playlist Cover](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management/upload-playlist-cover.md): Uploads a cover image for a playlist. Only the playlist creator or an admin can upload a cover. If the playlist belongs to a verified user and already has a custom admin-uploaded image for the specified language, the upload is skipped and the existing image is returned. The request must be sent as multipart/form-data with a single image file. The supported file types are JPEG, PNG, GIF, BMP, and TIFF. Security Model oAuth • [Delete Playlist Cover](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/playlist-management/delete-playlist-cover.md): Removes the custom cover art a listener uploaded for one language, so the playlist falls back to the artwork the platform generates from its tracks. Covers are stored per language, so this only clears the language you name - other locales keep whatever they had. Use this when: the listener wants the default artwork back. To replace the image rather than remove it, call Upload Playlist Cover again - you do not need to delete first. Security Model oAuth • [Tracklist Management](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management.md): Once a playlist exists, this is how a listener shapes what's actually in it. Add new tracks, remove ones that don't fit, reorder them to get the flow right, replace the whole list at once, or clear it out and start over. Use these to power track-level editing inside a playlist. • [Add Tracks](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management/add-tracks.md): Appends one or more tracks to the end of a playlist in the order you send them, which is the call behind every "add to playlist" button. It can optionally warn you when a listener is re-adding a track they previously removed, so you can ask "you deleted this before - add it again?" instead of silently duplicating it. Use this when: you are adding to an existing tracklist. To overwrite the whole list in one call, use Replace Track List . Security Model oAuth • [Remove a Track](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management/remove-a-track.md): Removes one or more specific rows from a playlist, identified by their PlaylistTrackId rather than their track ID - which is what lets a listener delete the second copy of a song they added twice while keeping the first. The remaining tracks close up automatically, so positions stay contiguous. Use this when: the listener is deleting individual rows. To empty the playlist entirely, use Clear Track List . Security Model oAuth • [Move a Track](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management/move-a-track.md): Moves a single row to a new position and shuffles everything between it and the destination to close the gap - the call behind drag-and-drop reordering. It changes one row at a time, so a listener dragging one track does not cost you a full tracklist rewrite. Use this when: one track is moving. For a wholesale reorder, send the finished order to Replace Track List in a single call instead of issuing many moves. Security Model oAuth • [Clear Track List](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management/clear-track-list.md): Empties a playlist in one call while keeping the playlist itself - its name, description, cover art and ID all survive, so any link or share already out in the world still resolves. Use it when a listener wants to start the tracklist over rather than delete the playlist. Use this when: everything goes. To remove specific rows use Remove a Track , and to delete the playlist outright use Delete Playlist . Security Model oAuth • [Replace Track List](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/tracklist-management/replace-track-list.md): Replaces everything in a playlist with the tracks you send, in the order you send them - the one-call way to save a whole reordered or rebuilt tracklist from a drag-and-drop editor. The existing tracks are cleared first, so every row gets a new PlaylistTrackId. Use this when: you are saving a wholesale edit. To append without disturbing what is there, use Add Tracks ; to move a single row, use Move a Track , which is far cheaper. Security Model oAuth • [Distribution & Admin](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/distribution-and-admin.md): A mix of listener-facing and internal tooling. Listeners can export a playlist's tracks to cloud storage for offline listening; behind the scenes, admins manage Tuned Global's own editorial playlists and the tags attached to them. Use these to power offline export and editorial content management. • [Download to Cloud](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/distribution-and-admin/download-to-cloud.md): Packages a playlist's audio assets and metadata and emails a download link to the requesting listener's registered address - built for customers who need the files themselves for offline distribution or downstream production, rather than for streaming playback. The work runs in the background, so this call returns as soon as the job is accepted, not when the package is ready. Use this when: the assets have to leave the platform. For ordinary offline listening inside your app, use the standard download and streaming endpoints - this is not a substitute for them. This feature must be enabled and be part of your service, otherwise you will get a 404 response. This API packages a playlist's assets and its metadata and returns a download link to a user's registered email address. It's use case is for users that require the assets for further processing or compositing within another system. It requires both approval from Tuned Global and Rights Holders before it can become available. Security Model oAuth • [Admin Get](https://docs.tunedglobal.com/playlists/my-playlists-and-actions/distribution-and-admin/admin-get.md): Returns any curated System playlist by ID for your own operations team, including drafts and playlists that are not yet published - so a curator can review a playlist before it goes live without publishing it first. Listener-created playlists are deliberately out of reach: this endpoint returns 404 for anything that is not a System playlist. Use this when: you are building internal curation or review tooling. For anything a listener sees, use Get Playlist (Metadata API) or Get Playlist (Services API) Note: This API is accessible only via a special admin user account created and managed by Tuned Global. Credentials for this account will be provided separately. Use these credentials to obtain a JWT (Bearer token), which must be included in the authorization header of all API requests. Security Model oAuth • [Tag Management](https://docs.tunedglobal.com/playlists/tag-management.md): Tags are what make your playlists easy to find. They power tag-based browsing, search, and the personalized "for you" recommendations that help listeners land on the right playlist at the right moment. These admin tools let your team tag a curated playlist and update those tags as it evolves — so it always shows up under the moods, genres, and themes that fit it. • [Add Tags](https://docs.tunedglobal.com/playlists/tag-management/add-tags.md): Attaches tags to a curated playlist so it starts appearing in tag-based browse, search results and the personalised shelves built from a listener's onboarding preferences. Tagging is how an editorial playlist reaches listeners who were never going to go looking for it by name. Up to 50 tags can be sent in one request. Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. Security Model oAuth • [Delete Tags](https://docs.tunedglobal.com/playlists/tag-management/delete-tags.md): Removes tags from a curated playlist by name, taking it out of the tag-based browse rows, search filters and personalised shelves those tags feed. Use it when a seasonal or campaign tag has run its course and the playlist should stop surfacing under it. The playlist itself and its tracks are untouched - only its discoverability changes. Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. Security Model oAuth • [Podcasts, Audiobooks & Authors](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors.md): Provides access to spoken-word content including podcast channels, episodes, audiobooks, chapters, and author profiles. Supports browsing, discovery, similarity matching, and user-specific listening context tracking across all spoken-word content types. Authors Retrieve author profiles, biographies, and the catalogue of works associated with a podcast host or audiobook narrator. Podcasts Browse podcast series, retrieve episodes, and access show-level metadata for display and playback. Audiobooks Add description here • [Authors](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors.md): Retrieve author profiles and browse their associated podcast channels and episodes. Each author includes identity information, images, and country availability. • [Details](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/details.md): Get detailed information about the Authors, including metadata. • [Get Author](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/details/get-author.md): Retrieve a single audiobook author's identity — id, display name, role and image — so an author byline or avatar can be rendered from an id you already hold. Use this when : you are inside an audiobook flow and want a flat author record. ‘GET api/v2.4/authors/{id}’ returns the podcast-oriented ‘Author’ model instead, which nests the same fields under an ‘Identity’ object — the two are not interchangeable in a client. Security Model API Key Authentication • [Get Podcast Authors](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/details/get-podcast-authors.md): List the podcast authors and presenters available in your store, paginated, so you can build an author directory or a "browse by presenter" shelf without walking every channel first. Use this when : you want podcast authors specifically. The near-identical `GET api/v2.4/audiobooks/authors` returns audiobook authors, and an author who has published both appears in both lists — pick the endpoint that matches the shelf you are filling rather than merging them. Security Model API Key Authentication • [Get Podcast Channel Tags](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/details/get-podcast-channel-tags.md): List the podcast authors and presenters available in your store, paginated, so you can build an author directory or a "browse by presenter" shelf without walking every channel first. Use this when : you want podcast authors specifically. The near-identical `GET api/v2.4/audiobooks/authors` returns audiobook authors, and an author who has published both appears in both lists — pick the endpoint that matches the shelf you are filling rather than merging them. Security Model API Key Authentication • [Content](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/content.md): Get additional information in regards to Authors in relation to Podcasts and Audiobooks • [Get Podcast Channel by Author ID](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/content/get-podcast-channel-by-author-id.md): Retrieve comprehensive information about podcast channel including details such as title, description, language, episode count, and associated authors. Use this when : you want the shows themselves. For individual episodes credited to the author across all their shows, use Get Podcast Episodes by Author ID. Note: A podcast channel is the podcast itself, not the episodes that are part of the podcast Security Model API Key Authentication • [Get Podcast Episodes by Author ID](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/authors/content/get-podcast-episodes-by-author-id.md): List every podcast episode credited to an author, across all of the channels they appear on, so a presenter page can show their full body of work rather than one show at a time. Use this when : you are building an author or presenter page. To list the shows themselves rather than individual episodes, use Get Podcast Channels by Author. Security Model API Key Authentication • [Podcasts](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts.md): Access podcast channel details, individual episodes, discover new and similar podcasts, view channel-author relationships, and retrieve user-specific listening context such as play counts and collection status. • [Details](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/details.md): Get detailed information about the Podcasts, including metadata. • [Get Podcast](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/details/get-podcast.md): Retrieve a podcast channel together with its full episode list in one call, so a show page can render header and episodes without a second request. Use this when : you are opening a show page and need the episodes immediately. For just the channel header — title, artwork, counts — call Get Channel, which returns the same fields without the `Episodes` array and is much smaller. For a paged or sorted episode list, call Get Episodes. Security Model API Key Authentication • [Get Channel](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/details/get-channel.md): Retrieve comprehensive information about a specific podcast channel, including its title, description, language, and content details. Use this when : you need the show header only, for example a compact card in a browse grid. For the episodes too, use Get Podcast; for a paged or sorted episode list on its own, use Get Episodes. Security Model API Key Authentication • [Get Episode](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/details/get-episode.md): Retrieve comprehensive information about a specific podcast episode, including its title, description, duration, release date, and explicit content indicator. Use this when : Access detailed metadata such as series affiliation, episode number, cover image, and contributing authors to effectively manage and display episode content within your application. Security Model API Key Authentication • [Get Podcast Channel Tags](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/details/get-episode-copy.md): Return the tags attached to a podcast channel — genre, topic and any custom tag types — together with the confidence score, language and source for each. Use it to label a channel page or to seed "more like this" browsing from the same vocabulary the rest of the catalogue uses. Unlike the album tag endpoint this returns full tag assignments rather than name/type pairs, so you also get how strongly each tag applies and where it came from. Use this when : you need a specific podcast channel’s own tags, with confidence, language and source per assignment. To go the other way and list channels for a tag, use the tag browse endpoints under Tags — those return the lighter name/type pairs this endpoint does not. Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/discover.md): Use these endpoints for optomizing Podcast discovery. Explore All, Similar and New podcasts. • [Similar Podcasts](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/discover/similar-podcasts.md): Return podcast channels similar to a given show, so a listener who finishes one series has somewhere to go next. Similarity is derived from the seed channel's tags within your store and the caller's territory. A channel with no tags, or one only just delivered, will often return nothing — fall back to an editorial shelf rather than leaving the row empty. Use this when : you want a plain "more like this" row for a podcast, with nothing listener-specific in the response. If you also need Following or resume state on each result, call Get Podcast Channel User Context per channel — this endpoint doesn’t annotate results with anything user-aware. Security Model API Key Authentication • [Get All Podcasts](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/discover/get-all-podcasts.md): Retrieve a comprehensive list of all podcasts available within the service, including detailed information about each podcast channel and its episodes. Use this when : you want the whole catalogue. For only what's new, use New Podcast instead — the two are companion endpoints and New Podcast already points back here. Security Model API Key Authentication • [New Podcast](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/discover/new-podcast.md): Fetch the most recent podcast episodes and their associated channel details available on the platform. This section enables users to access up-to-date podcast content, including metadata such as episode titles, descriptions, release dates, authors, and explicit content indicators, helping to integrate fresh audio content seamlessly. Use this when : you want recent additions. Pass 'from' with your last sync timestamp to poll; omit it for the newest shows overall. For every podcast in the store, use Get All Podcasts. Security Model API Key Authentication • [Content](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/content.md): Get specific content information relating to podcasts, including the Episodes within a Podcast • [Get Episodes](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/content/get-episodes.md): Page through a podcast channel's episodes, sortable by release date — the paged, sortable counterpart to the Episodes array embedded on Get Podcast. Use this when : you need a paged or sorted episode list for a channel — for example an infinite-scroll episode feed. If you're opening a show page and want the channel header plus every episode in one call, use Get Podcast instead; that embeds the full list unpaged and doesn't support sortBy. Security Model API Key Authentication • [Current User](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/current-user.md): Explore information about the current user in context with Podcasts • [Podcast Get User Context](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/podcasts/current-user/podcast-get-user-context.md): Show a listener how they relate to a podcast channel before they open it — whether it is already in their library, how many times they and everyone else have played it, and when they last listened. Use it to drive a Following state and a resume prompt on a show page. This carries engagement data only — no title, artwork or episode list — so pair it with Get Podcast or Get Channel when rendering a full show screen. Use this when : you need a signed-in listener’s Following state and resume point for one show that’s already on screen. It requires an access token, so skip it for anonymous browsing and render the channel from Get Podcast or Get Channel alone in that case. Security Model oAuth • [Audiobooks](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks.md): Retrieve audiobook metadata, chapters, and author details. Supports lookup by ID or UPC code, discovering new titles, browsing by author, and tracking user-specific listening progress. • [Details](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details.md): Get detailed information about the Audiobooks, including metadata. • [Get Audiobook](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details/get-audiobook-1.md): Retrieve comprehensive information about a specific audiobook, including its title, description, release details, and associated authors. Use this when : you need the audiobook's own metadata only, for example a compact card. For the chapter breakdown alongside it, use Get Full Audiobook instead — same audiobook, more payload. Security Model API Key Authentication • [Get Audiobooks by UPC](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details/get-audiobooks-by-upc.md): Look up audiobooks by their UPC, so a barcode, a retail feed or a publisher's catalogue reference can be resolved to the audiobook in your store without knowing its internal id. Use this when : you are matching against external identifiers. If you already hold an audiobook id, call Get Audiobook or Get Full Audiobook directly. Security Model API Key Authentication • [Get Full Audiobook](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details/get-full-audiobook.md): Retrieve comprehensive information about a specific audiobook, including its metadata and detailed chapter breakdown. Use this when : you're opening a title page and need chapters immediately. For just the audiobook's own metadata without the chapter list, use Get Audiobook, which is smaller. Security Model API Key Authentication • [Get Audiobook Chapter](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details/get-audiobook-chapter.md): Retrieve detailed information about a specific audiobook chapter, including its title, description, release date, duration, and associated author details. Use this when : you have one chapter id and need its detail. For every chapter of an audiobook at once, use Get Audiobook Chapters. Security Model API Key Authentication • [Get Audiobook Chapters](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/details/get-audiobook-chapters.md): Retrieve comprehensive details about the chapters within a specific audiobook, including titles, descriptions, authors, duration, and release dates. Use this when : you're rendering a full chapter list for one audiobook. For a single chapter you already have the id for, use Get Audiobook Chapter instead. Security Model API Key Authentication • [Authors](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/authors.md): Get detailed information about the Audiobook Authors, including metadata. • [Get Author by Author ID](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/authors/get-author-by-author-id.md): Use this section to access comprehensive details about a specific author by providing their unique identifier. Retrieve key information such as the author's name, role, and associated image to support content personalization and display within your application. Use this when : you are inside an audiobook flow and want a flat author record Security Model API Key Authentication • [Get Authors](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/authors/get-authors.md): List the audiobook authors and narrators available in your store, paginated, so you can build an author directory or a browse-by-author shelf without walking every title first. Use this when : you want audiobook authors. ‘GET api/v2.4/podcasts/authors’ returns podcast authors using the same model; someone who has published in both appears in both lists, so pick the endpoint that matches the shelf you are filling rather than merging the two. Security Model API Key Authentication • [Get Audiobooks by Author ID](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/authors/get-audiobooks-by-author-id.md): List the audiobooks written or narrated by an author, paginated, so an author page can show their catalogue in one call. Use this when : you want whole titles. For chapter-level credits — for instance a multi-narrator title — use Get Audiobook Chapters by Author instead. Security Model API Key Authentication • [Get Audiobook Chapters by Author ID](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/authors/get-audiobook-chapters-by-author-id.md): List the individual audiobook chapters credited to an author, so a narrator or contributor page can surface their work at chapter level — useful where several narrators split one title. Use this when : you need chapters. To list whole audiobooks by the same author, use Get Audiobooks by Author; this endpoint returns chapters, which is a different granularity and a different model. Security Model API Key Authentication • [Discover](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/discover.md): Use these endpoints for optomizing Audiobook discovery. Explore All and New audiobooks. • [Get All Audiobooks](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/discover/get-all-audiobooks.md): Page through every audiobook in your store's catalogue, regardless of when it was added. Use this when : you want the whole catalogue regardless of when titles were added. For only what's new, use Get New Audiobooks instead — the same All/New split used for podcasts. Security Model API Key Authentication • [Get New Audiobooks](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/discover/get-new-audiobooks.md): Surface the audiobooks most recently added to your store, optionally only those added since a date you supply, so a New Releases shelf stays current and an incremental sync can pull just the additions. Use this when : you want recent arrivals. Pass `from` with your last sync timestamp to poll for changes; omit it to fill a New shelf with the newest titles overall. For the whole catalogue regardless of date, use Get All Audiobooks. Security Model API Key Authentication • [Current User](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/current-user.md): Explore information about the current user in context with Audiobooks • [Audiobook Get User Context](https://docs.tunedglobal.com/podcasts-audiobooks-and-authors/audiobooks/current-user/audiobook-get-user-context.md): Show a listener how they relate to an audiobook — whether it is saved to their library, how often they and everyone else have played it, and when they last listened — so a title page can show a saved state and a Continue Listening prompt. This returns engagement only. There is no title, cover or chapter list in the body, and no per-chapter progress; pair it with Get Full Audiobook for the content itself. Use this when : you need a signed-in listener’s saved state and play counts for one audiobook that’s already on screen. It requires an access token, so skip it for anonymous browsing and pair it with Get Full Audiobook once the listener is signed in. Security Model oAuth • [Live Video](https://docs.tunedglobal.com/live-video.md): Live and scheduled video streaming. Surface what is currently airing, what is coming up next, and the full Electronic Programme Guide (EPG) for any channel — everything you need to build a live TV or live events experience on top of the Tuned Global platform. Live Channel Header-level containers for live video streaming. A channel holds the streaming configuration, branding (name, description, cover image), and lifecycle dates. Use these endpoints to look up a channel by id, fetch multiple channels in one request, or search the catalogue. Live Shows Individual live events scheduled within a channel. A show has a start/end time (epoch), optional participants, and its own metadata and images. Use these endpoints to retrieve shows by id, list shows for a channel, filter shows by time range, search the catalogue, or log a play for analytics. • [Live Channels](https://docs.tunedglobal.com/live-video/live-channels.md): Header-level containers for live video streaming. A channel holds the streaming configuration, branding (name, description, cover image), and lifecycle dates. Use these endpoints to look up a channel by id, fetch multiple channels in one request, or search the catalogue. Card Title Add description here Card Title Add description here • [Get Live Channel](https://docs.tunedglobal.com/live-video/live-channels/get-by-name-copy.md): Returns header-level metadata for one live channel identified in the path. The response includes localized channel names and descriptions, cover images, AWS channel id, RTMP ingest and media playback URLs, when the channel went live and offline, and total show count on the channel. Use this when: loading a channel landing page or player shell before loading that channel's show list. Render the hero, description, and playback entry point from this call. Follow with Get Live Shows using the same channel id for upcoming and past shows. Prefer Get Live Channels by Ids when loading details for many channels at once from search or favourites; use Live Channel Search when the user is still finding channels by name. Security Model API Key Authentication • [Get Live Channels by Ids](https://docs.tunedglobal.com/live-video/live-channels/get-live-channels-by-ids.md): Loads header-level details for multiple live channels in one POST request. Each returned channel includes localized names and descriptions, cover images, streaming identifiers and URLs, live/offline timestamps, and total show count. The shape matches Get Live Channel but is batched for many ids. Use this when: a screen already holds channel ids (from search results, favourites, recommendations, or a carousel) and you need names, artwork, and playback metadata without one GET per channel. Prefer Get Live Channel for a single channel landing page. Follow with Get Live Shows on a channel id when the user opens a channel and needs its show lineup. Security Model API Key Authentication • [Live Shows](https://docs.tunedglobal.com/live-video/live-shows.md): Retrieve metadata for an individual live show: title, description, presenter, start/end time, associated channel, and artwork. Live shows are the scheduled programme entries within a channel. • [Get Live Show](https://docs.tunedglobal.com/live-video/live-shows/live-channel-search-copy.md): Loads full metadata for one live show using its show id in the path. The response includes localized names and descriptions, cover and banner images, epoch start and end times, location UTC offset, linked participants, and parent channel id with localized channel name. That is everything needed to render a show detail or player screen for a single selection. Use this when: navigating to a show detail or player from search hits, a channel lineup, calendar cell, or deep link once you have the show id. Prefer list endpoints such as Get Live Shows or Get Live Shows By Epoch to populate browse or schedule UI; call this endpoint only for the selected show. Use ParentId with Get Live Channel if the screen also needs channel-level streaming URLs or show count. Security Model API Key Authentication • [Get Live Shows](https://docs.tunedglobal.com/live-video/live-shows/get-live-shows.md): Returns every live show scheduled on a single live channel identified in the path. The full channel lineup is returned in one call. Each item includes show id, localized names and descriptions, cover and banner images, epoch start and end, parent channel id, channel name, linked participants, and location UTC offset. Use this when: rendering upcoming and past shows on a channel detail page after you have the channel id, for example from Live Channel Search or Get Live Channel . Pair with Get Live Channel for the channel header, artwork, and streaming URLs. Prefer Get Live Shows By Epoch when building cross-channel schedule views; use Get Live Show when the user opens one show from the list. Security Model API Key Authentication • [Get Live Shows by Epoch](https://docs.tunedglobal.com/live-video/live-shows/get-live-shows-by-epoch.md): Returns live shows whose start time falls within a requested Unix epoch window across the store catalogue. Required query parameters start and end (epoch seconds) define the range. Each show includes localized names, descriptions, and artwork, epoch start and end times, parent channel id and channel name, linked participants, and location UTC offset. That is enough to plot entries on a timeline or calendar without loading every channel separately. Use this when: populating calendar grids, TV guide timelines, or "what's on today" screens that span a date range. Refresh start and end when the user changes day or week. Prefer Get Live Shows when you only need the lineup for one known channel id. After the user picks a show, call Get Live Show with that show id for full detail or playback context. Security Model API Key Authentication • [Tags](https://docs.tunedglobal.com/tags.md): Genre, mood, and editorial tags are the primary faceting mechanism for content discovery across the Tuned Global catalogue. Use tags to build browse surfaces, drive recommendation logic, power filter UIs, and map content to editorial categories. Tag Lookup Retrieve the full tag taxonomy — IDs, names, and hierarchies for genre, mood, and editorial categories. Browse by Tag Fetch curated content collections for a given tag — the tracks, artists, albums, and playlists associated with it. • [Tag Lookup](https://docs.tunedglobal.com/tags/tag-lookup.md): Retrieve individual tags, tag groups, and the full tag taxonomy. Tags are organised into a hierarchy (e.g., Genre > Electronic > Techno). Use these endpoints to build tag pickers, navigation trees, and faceted filter UIs. • [Get by Name](https://docs.tunedglobal.com/tags/tag-lookup/get-by-name.md): Looks up one tag in the store catalogue by its unique tag name (for example rock ). The response is a single tag record with display names and artwork for each supported language, plus flags for whether the tag is active, public, and system-managed. Use this when: a screen knows exactly one tag name (from a deep link, breadcrumb, or configured content) and needs its metadata before rendering a tag landing page or calling a related content endpoint. If you already have several names (filter buttons, multi-tag homepage sections), use Get Multiple Tags By Name instead to avoid extra API calls. Security Model API Key Authentication • [Get Multiple by Name](https://docs.tunedglobal.com/tags/tag-lookup/get-multiple-by-name.md): Fetches metadata for many tags in one request from a list of tag names. It returns an array of tag objects, each with display names for each supported language, images, and active/public/system flags. The response includes an entry for every name that exists in the catalogue. Use this when: a UI renders multiple tag labels at once, such as genre buttons on a detail page, selected filters on a browse screen, or a curated homepage section whose configuration lists several tag names. Prefer it over repeated Get Tag By Name calls to reduce latency and keep label text in sync across the screen. Security Model API Key Authentication • [Get Tags by Tag Type](https://docs.tunedglobal.com/tags/tag-lookup/get-tags-by-tag-type.md): Returns a paged catalogue of tags filtered to one tag type (for example Genre or Mood) within the store catalogue. Each result includes the usual tag metadata plus TagType and TagTypePrefix so clients can label the category correctly. Use this when: building browse grids, dropdowns, or onboarding pickers that list every tag in a single category. For looking up one known tag name, use Get Tag By Name; for batch lookups of named tags across types, use Get Multiple Tags By Name instead. Security Model API Key Authentication • [Browse by Tag](https://docs.tunedglobal.com/tags/browse-by-tag.md): Retrieve catalogue content — artists, albums, songs, playlists — filtered by one or more tags. Use these endpoints to power genre/mood browse pages and tag-driven discovery surfaces. • [Get Artists by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-artists-by-tag.md): Returns artists linked to one tag name in the store catalogue. Each artist includes profile image, translations, and a score indicating fit to the tag. Use this when: building single-tag artist browse, such as genre pages, mood recommendation rows, or "artists in {tag}" sections on a tag landing page. When filters combine multiple tags with AND/OR rules, switch to Get Artists By Tag Groups instead of chaining several single-tag calls. Security Model API Key Authentication • [Get Podcast Channel by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-podcast-channel-by-tag.md): Returns podcast channels associated with a single tag name in the store catalogue. Each channel includes title, description, artwork, episode counts, authors, explicit flag, and a relevance score. Priority channels may appear higher in the list. Use this when: building tag landing pages and browse sections where users browse shows by topic or category, for example a "technology" or "comedy" page. Pair with Get Tag By Name first if you need the tag's display name and artwork for the page header. Security Model API Key Authentication • [Get Albums by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-albums-by-tag.md): Returns albums tagged with a single tag name in the store catalogue. Each album includes artists, primary release artwork and dates, translations, and popularity signals. Use this when: building tag landing pages, genre album grids, or homepage sections that showcase releases under one label such as rock or jazz. Order by popularity for charts, by release date for freshness, or alphabetically for A-Z browse. For filters that combine multiple tags with AND/OR rules, use Get Albums By Tag Groups instead. Security Model API Key Authentication • [Get Stations by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-stations-by-tag.md): Get a list of stations by tag • [Get Audiobooks by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-audiobooks-by-tag.md): Retrieve Audiobooks that have been assigned to this tag • [Get Albums by Tag Groups](https://docs.tunedglobal.com/tags/browse-by-tag/get-albums-by-tag-groups.md): Finds albums whose tags satisfy grouped criteria: comma-separated tags in a group must all match (AND), and colon-separated groups are OR-ed together. Results include album, artist, primary release, and the tags that matched the query. Use this when: building advanced album browsing, such as curated collections, combined genre and mood filters, or screens where users combine multiple tag requirements. For a simple single-tag album grid with sort options, use Get Albums By Tag instead; this endpoint is for AND/OR tag rules and includes which tags matched on each album. Security Model API Key Authentication • [Get Artists by Tag Groups](https://docs.tunedglobal.com/tags/browse-by-tag/get-artists-by-tag-groups.md): Finds artists whose tags satisfy grouped criteria: tags within a comma-separated group must all match (AND), and colon-separated groups are combined with OR (for example rock,pop:indie ). Results include bio, identity, image, translations, and TypedTags showing which tags matched. Use this when: building advanced browsing and curated filters that cannot be expressed with a single tag, such as combined genre and mood rules or "must have all of these tags" pickers. Prefer Get Artists By Tag when the screen only needs one label; this endpoint is for filters that combine multiple tags with AND/OR rules and includes which tags matched on each row. Security Model API Key Authentication • [Get Playlists by Tag](https://docs.tunedglobal.com/tags/browse-by-tag/get-playlists-by-tag.md): Returns public playlists tagged with one tag name in the store catalogue. Each playlist includes localized name and cover, creator details, track count, duration, and tag relevance score. Use this when: building single-tag playlist browse, such as genre or mood pages and curated recommendation rows under one label. For playlists that must match several tags at once, use Get Playlists By Tags on the playlists route instead. Security Model API Key Authentication • [Get Playlists by Tags](https://docs.tunedglobal.com/tags/browse-by-tag/get-playlists-by-tags.md): Returns public playlists that match one or more tags by repeating the Tags query parameter. Each result includes localized name, cover, creator, and playlist stats. Use this when: you are building browse screens that need playlists matching several tags at once (for example genre plus mood). For a general newest-first or A-Z listing with no tag involved, use Get Playlists . Security Model API Key Authentication • [Content Pages & CMS Content](https://docs.tunedglobal.com/content-pages-and-cms-content.md): CMS-managed editorial content that operators use to customise the browse and discovery experience. Content pages and carousels let your editorial team control what appears on home screens, category pages, and promotional surfaces — without a code deployment. Pages & Carousel Retrieve CMS-managed home screen and category pages including shelf configurations and promotional banners. Content Pages Fetch structured editorial content pages built in the CMS — used for campaign landing pages and featured content hubs. • [Pages & Carousel](https://docs.tunedglobal.com/content-pages-and-cms-content/pages-and-carousel.md): Retrieve CMS-configured hero banners for the top of home screens and landing pages. Get all the necessary details for these auto-playing, swipeable carousels, which operators use to feature promotional artwork, spotlight key releases, and drive immediate user engagement. • [Get Items](https://docs.tunedglobal.com/content-pages-and-cms-content/pages-and-carousel/get-items.md): Returns the full internal item list for a named carousel page, display ordering, and ad-unit metadata. Intended for admin/CMS tooling rather than end-user apps — see Get Public Page Items for the storefront-facing equivalent. Security Model API Key Authentication • [Get Public Items](https://docs.tunedglobal.com/content-pages-and-cms-content/pages-and-carousel/get-public-items.md): Returns a paginated, storefront-facing projection of a carousel's items, localized to the caller's country. Security Model API Key Authentication • [Carousel by Language](https://docs.tunedglobal.com/content-pages-and-cms-content/pages-and-carousel/carousel-by-language.md): Returns carousel items relevant to the caller's current country/language (from the Country header, or the store's default country if omitted). Security Model API Key Authentication • [Carousel by Country](https://docs.tunedglobal.com/content-pages-and-cms-content/pages-and-carousel/carousel-by-country.md): Returns carousel items relevant to the caller's current country (from the Country header, or the store's default country if omitted). Security Model API Key Authentication • [Content Pages](https://docs.tunedglobal.com/content-pages-and-cms-content/content-pages.md): Retrieve dynamic pages built within the CMS. Get all the necessary details for these custom-ordered views, allowing you to fetch curated product blocks and layouts designed for user discovery. • [Content Get](https://docs.tunedglobal.com/content-pages-and-cms-content/content-pages/content-get.md): Retrieve a dynamic, CMS-managed page layout by its unique identifier key. Get all the necessary details for these customizable views, which act as architectural templates for Turnkey applications. Rather than returning heavy catalogue items directly, this endpoint returns a structural configuration map (found in the Value node). Client applications use this configuration to identify layout components—such as headers, spacing, and content widgets—and systematically invoke the secondary APIs required to render the user-discovery experience. Example Flow: If a promotional homepage banner links to the key new_albums , calling this API with that key retrieves the page blueprint containing its specific layout blocks, component sorting order, and necessary query arguments. Content Component Types The CMS handles distinct layout, media, and dynamic data-driven content blocks. Components fall into three structural behaviors: Layout & Static Components ( N/A API): Handled entirely client-side to manage page UI styling (e.g., headers, vertical spacing, paragraphs, or dividers). Dynamic Catalogue Feeds ( Metadata / Services APIs): Require immediate, sequential API calls using the mapped parameters to hydrate dynamic shelves, grids, or lists with live music catalogue data. User-Contextual Feeds (e.g., User Albums , User Artists ): Explicitly pull personalized client data (such as the logged-in user's collection or followed items). Title Description Title Description Title Description Title Header h N/A N/A None N/A N Spacing spacing N/A N/A None N/A N Paragraph p N/A N/A None N/A N Image img N/A N/A None N/A N Image by Subpackage img_bysubpackage N/A N/A None N/A N Advertisement ad_banner N/A N/A None N/A N Separator separator N/A N/A None N/A N Tagged Playlists playlists_bytag Metadata tags/playlists tags, offset, count, type shelf, grid, verticallist Y Tagged Albums albums_bytag Metadata tags/groups/albums groups, types, offset, count shelf, grid, list, verticallist Y Trending Mixes stations_trending Metadata stations/trending None shelf, grid, verticallist Y Trending Artists artists_trending Metadata artists/trending None shelf, grid, list, verticallist Y Recommended Artists artists_recommended Services users/me/recommendedartist offset, count shelf, grid, list, verticallist Y Recommended Stations stations_recommended Services users/me/recommendedstations offset, count shelf, grid, verticallist Y Tagged Mixes stations_bytag Metadata tags/stations tag, offset, count shelf, grid, verticallist Y Tagged Artists artists_bytag Metadata tags/artists tag, offset, count shelf, grid, list, verticallist Y Suggested Mixes stations_suggested Services stations/suggested None shelf, grid, verticallist N Trending Albums albums_trending Metadata albums/trending offset, count shelf, grid, list, verticallist Y Album New Releases albums_newreleases Metadata albums/newbydate offset, count shelf, grid, list, verticallist N Songs New Releases songs_newreleases Metadata songs/new offset, count shelf, grid, verticallist Y Trending Songs songs_trending Metadata songs/trending offset, count shelf, grid, verticallist Y Tagged Songs songs_bytag Metadata tags/songs sortType, offset, count shelf, grid, verticallist Y Trending Playlists playlists_trending Metadata playlists/trending type, offset, count shelf, grid, verticallist N Recommended Playlists playlists_recommended Services users/me/recommendedplaylists offset, count shelf, grid, verticallist Y Tagged Discover discover_bytag Metadata tags/multiple names shelf, grid N Tagged Podcasts podcasts_bytag Metadata tags/podcasts tag, offset, count shelf, grid, verticallist Y Tagged Audiobooks audiobooks_bytag Metadata tags/audiobooks tag, offset, count shelf, grid, verticallist Y Tagged Users users_bytag Services users/verified tags shelf N Podcast New podcasts_new Metadata podcasts/new from, offset, count shelf, grid, verticallist Y Podcasts Hosts podcasts_authors Metadata podcasts/authors offset, count shelf, grid, list, verticallist Y Audiobooks New audiobooks_new Metadata audiobooks/new offset, count shelf, grid, verticallist Y Audiobooks Authors audiobooks_authors Metadata podcasts/authors offset, count shelf, grid, list, verticallist Y User Artists user_artists Services collection/followedartists offset, count, userId shelf, grid, list, verticallist N User Albums user_albums Services collection/releases offset, count, userId shelf, grid, verticallist N User Mixes user_mixes Services collection/stations offset, count, userId shelf N User Podcasts user_podcasts Services collection/fav-podcasts offset, count, userId shelf N User Audiobooks user_audiobooks Services collections/audiobooks offset, count, userId shelf N Playlist Onboarding playlists_onboardingtags Services playlists/onboarding-tag-preferences offset, count shelf, grid, verticallist Y Trending Tagged Playlists playlists_bytagtype Services playlists/trending-by-tagType offset, count, tagType shelf, grid, verticallist Y Live Broadcast Live livebroadcast_live Metadata live-channels/%@/shows channelId shelf, verticallist Y Live Broadcast Upcoming livebroadcast_upcoming Metadata live-channels/%@/shows channelId shelf Security Model API Key Authentication • [Application, Settings & Service Configuration](https://docs.tunedglobal.com/application-settings-and-service-configuration.md): Platform-level configuration for your client application. Load app-specific settings at startup, resolve image delivery parameters, and retrieve group-level service configuration that governs how your client instance behaves across all users. Group(Client) / Service Settings Load group and client-level configuration that governs feature flags, content policies, and service behaviour for your application instance. Images Resolve image delivery parameters including base URLs, resize templates, and format options for artwork and thumbnails • [Group(Client) / Service Settings](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings.md): Service-level configuration scoped to an operator group or client deployment. These settings control platform-level behaviour such as enabled authentication schemes, content policies, and service feature flags that apply across all users of a given client. • [Get Terms](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/get-terms.md): Retrieve localized terms and conditions associated with a specific group, tailored to the requested language or culture. This section enables users to access the precise wording of terms for integration into their applications or platforms, ensuring compliance and clarity across different regions. Use this when: Building a language selection screen (StoreId: DEMO) and you need the exact set of UI languages available for this particular service. Security Model API Key Authentication • [Get Languages](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/get-languages.md): Retrieve a complete list of all languages supported by the Tuned Global platform, including key details such as each language's unique identifier, description, and its base language reference. This enables users to efficiently manage localization and tailor content to diverse linguistic preferences. Use this when : Building a language selection screen (StoreId: DEMO) and you need the exact set of UI languages available for this particular service. Security Model API Key Authentication • [Get OTP Provider](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/get-otp-provider.md): Retrieve the configured mobile OTP provider associated with a specific group, enabling you to identify the service responsible for delivering one-time passwords. This allows seamless integration with providers such as Firebase, Twilio, or a designated Telco API to support authentication workflows. Examples are GBilling, Twilio, Firebase, Email, AwsSns, Infobip, EtLocal, Gabb, Sonsy and GatewayApi. Use this when: Wiring up mobile number verification (StoreId: DEMO) and you need to know which OTP provider (Firebase, Twilio, AwsSns, etc.) to call before sending or verifying a one-time password — a 'None' response means OTP isn't configured for this store. Security Model API Key Authentication • [Ad Banner Sizes](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/ad-banner-sizes.md): Retrieve a comprehensive list of available ad banner sizes supported by Tuned Global, including their dimensions and activation status. This allows you to identify and select appropriate banner sizes for your campaigns, ensuring compatibility and optimal display across platforms. Use this when : Building an ad-serving integration and you need to know which banner dimensions are configured and active for the store (StoreId: DEMO) before requesting or rendering an ad. Pairs with Ad Banner Size once you need a single size's exact dimensions. Security Model API Key Authentication • [Get Content Languages](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/get-content-languages.md): Retrieve a comprehensive list of supported content languages available within the Tuned Global platform. This allows users to access language codes and their corresponding display names, facilitating localization and content customization across different regions. Use this when: Building an ad-serving integration and you need to know which banner dimensions are active for the store, before requesting or rendering an ad. Returns the full list of enabled ad banner sizes (Id, Width, Height, IsEnabled), not a single size by Id. Security Model API Key Authentication • [Ad Banner Size](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/ad-banner-size.md): Retrieve detailed information about a specific ad banner size, including its dimensions and current status. This allows users to access precise size definitions to manage and optimize ad placements effectively. Security Model API Key Authentication • [Get Webhook Count](https://docs.tunedglobal.com/application-settings-and-service-configuration/group-client-service-settings/get-webhook-count.md): Retrieve the total number of webhooks recorded for a specified month and year within your store’s account. This allows you to monitor webhook activity over time, enabling better tracking and analysis of event notifications processed by the system. Use this when: Auditing CleverTap webhook usage for a specific month and year, to reconcile or forecast billing. Pass monthCount and yearCount as query params; returns a single count of webhook calls for that period, not a breakdown or list of individual events. Security Model API Key Authentication • [Images](https://docs.tunedglobal.com/application-settings-and-service-configuration/images.md): Tuned Global only stores full size images, usually at the same size as delivered by rights holders. These images are not suitable to use in applications, as their size and resolution is not optimzed. The best practice is to utilise our Image Engine to request an image in anysize you require. This ensures that the correct image size is available for each application and optimises performance and bandwidth. This section details the use of the Tuned Global Image Engine, the process is: Retrieve your Thumbor URL - you will use this in all your requests Build your URL based on your requirements • [Image Engine](https://docs.tunedglobal.com/application-settings-and-service-configuration/images/image-engine.md): Resize / Apply Filters / Watermark / Crop / More You can use Tuned Global’s automatic image resizing end-point in order to generate images in the size you wish. The system will resize from the original image automatically. In order to use and access these images, you will need to first get the Thumbor settings from the TUNED APIs or TUNED directly. The standard URL for Thumbor is provided below in the example, if you have custom URLs configured this may change. In order to get an image., you can then add the Thumbor URL ahead of the image URL (available from the APIs) along with the parameters to resize the image. An image example is here: HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/1000x1000/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Yellow = Thumbor URL Fixed URL - this is provided to you by Tuned Global Use this for all your thumbor requests Orange = request parameters Detailed below Green = image information returned in the GetImageURL Note that the API will return the full URL to the image. In the example above this would be: http://d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg This image will be the full sized image delivered by the label (format may be converted) Exclude the https:// component and use the remainder in your Thumbor request. Image Request You must build your URL to request an image suitable for your application. Below is a Basic model, for a quick start. There is also an Advanced section if you want to customise and optimise the images being retrieved To simply ask for a resized image, specify the size of the image as follows; [Thumbor URL] / unsafe/[image size] / [image URL returned in API] Image size is defines in pixels width x height Example: [Thumbor URL]: https://dxfve6m7pg0pq.cloudfront.net / unsafe/[image size]: unsafe/ [image URL returned in API]: d16npyvi7pcxgr.cloudfront.net/images1004/100/4 _0/060/252/790/910/3/104_1004_00602527909103_20220222_1307.jpg Full URL HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/1000x1000/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Note: This example is the same as Crop in Advanced below. It is NOT a proportional resize but will crop the image as defined below. If you wish to proportionally resize you should use Fit ADVANCED Resize Specify the width and height you want the image to be resized to. Crop If you do not specify fit-in , the image will be resized to the largest requested dimension (width or height) and then cropped to the smaller dimension. For example, the image below is resized to 420 × 1420 : HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/420x1420/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Notes The image retains its original proportions. The entire image remains visible (no cropping). The image is resized to fit within the requested dimensions. If either dimension is specified as a negative value, the image will be flipped horizontally or vertically. Filters You can specify multiple filters within a single request by separating them with a colon ( : ). Quality Quality is measured from 1–100 , with higher values producing better image quality. You may want to experiment with different quality settings to achieve the best balance between image quality and download size. We recommend a quality setting of 70 as a good compromise between quality and file size. Example: HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/420x420/filters:quality(70)/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Brightness and Contrast Adjust the brightness and contrast of an image for a specific visual effect. Both values range from -100 to 100 . Example: HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/420x420/filters:quality(70):brightness(-10):contrast(100)/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Format Specify the output image format if required. By default, the system usually returns a JPEG image. Depending on the original image format, it may occasionally return a PNG . JPEG is recommended because it generally produces the smallest file size. Supported formats: format(jpeg) format(png) Example: HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/420x420/filters:quality(70):brightness(-10):contrast(100):format(jpeg)/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Watermark Use the Watermark filter to overlay a watermark on your images. You can define its position, opacity, and optional scaling. Usage watermark(imageUrl, x, y, alpha [, w_ratio [, h_ratio]]) This filter adds a watermark to the image. The watermark can be positioned anywhere within the image, with the desired transparency (alpha), and can optionally be resized relative to the image dimensions by specifying the width and height ratios (see Resizing ). Arguments imageUrl – The URL of the watermark image. The same image loader used by Thumbor is also used for the watermark. If the URL contains parentheses, they must be URL encoded, as Thumbor uses parentheses as delimiters for filter parameters. x – The horizontal position of the watermark. Positive values position the watermark from the left. Negative values position it from the right. center centers the watermark horizontally. repeat repeats the watermark horizontally. A value ending with p (for example, 20p ) is treated as a percentage of the image width. y – The vertical position of the watermark. Positive values position the watermark from the top. Negative values position it from the bottom. center centers the watermark vertically. repeat repeats the watermark vertically. A value ending with p (for example, 20p ) is treated as a percentage of the image height. alpha – The watermark transparency, from 0 (fully opaque) to 100 (fully transparent). w_ratio – The maximum width of the watermark as a percentage of the image width. Defaults to none , meaning the watermark width is not limited and is not resized based on the image width. h_ratio – The maximum height of the watermark as a percentage of the image height. Defaults to none , meaning the watermark height is not limited and is not resized based on the image height. Example HTTP https://dxfve6m7pg0pq.cloudfront.net/unsafe/fit-in/420x420/filters:watermark(https://d2byqs7e78w6a1.cloudfront.net/DEMO/video/test_meta2/tg-logo-web-1.png,-10,-70p,50)/d16npyvi7pcxgr.cloudfront.net/images1004/100/4_0/060/252/790/910/3/104_1004_00602527909103_20241016_1100.jpg Speak to Tuned Global about your specific needs as further filters are available (eg. Blur, Saturation and more) • [Get Thumbor Location](https://docs.tunedglobal.com/application-settings-and-service-configuration/images/get-thumbor-location.md): Retrieve the base URL for Thumbor to construct and serve optimized images according to your needs. This location serves as the foundation for building image URLs, enabling seamless integration with Tuned Global’s image processing features. Detailed documentation on usage is available defined in Image Engine Security Model API Key Authentication • [Application](https://docs.tunedglobal.com/application-settings-and-service-configuration/application.md): Client application registration data and configuration. Retrieve the feature set, enabled content types, and client-specific configuration for a registered application. Use this at app startup to load the configuration that governs the client's behaviour. • [Get Application Settings](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/get-application-settings.md): Retrieve the detailed configuration settings of a specific application, including playback restrictions, audio quality options, and social media links. This allows users to access and manage key application parameters to customize the user experience and maintain consistent branding across platforms. Use this when: Loading a client app's startup configuration — social links, ad/playback rules and audio quality options like mp3 128kbps vs FLAC lossless — right after authentication and before the home screen renders. Security Model API Key Authentication • [Grant URL](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/grant-url.md): Retrieve the URL required to initiate the authorization process and obtain access tokens for the Tuned Global API. This URL enables users to securely authenticate and gain the necessary permissions to interact with protected resources. Use this when: Building the admin portal's login screen, where you need the authorization server URL to redirect to before requesting an access token. Security Model API Key Authentication • [Test Connection](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/test-connection.md): Verify the connectivity and responsiveness of the Tuned Global API with a simple test call. This section allows you to confirm that your integration is properly set up by receiving basic server information and the current date. Use this when: Wiring up a monitoring or uptime check that confirms the Services API is running and can reach its database. Returns just a server name and timestamp, with no business data — a lightweight liveness probe. Security Model API Key Authentication • [Get Pacemaker URL](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/get-pacemaker-url.md): Retrieve the base URL for the Thumbor image processing service used within the specified environment. This allows users to dynamically access the appropriate Pacemaker URL for managing image transformations. Note that this API is deprecated and should not be used in new integrations. Security Model API Key Authentication • [Check Version](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/check-version.md): The Checkversion section allows users to retrieve information about the current version of the application, including the minimum allowed version, OS requirements, and update details. By accessing this endpoint, users can ensure their application is up-to-date and meets the necessary compatibility standards for optimal performance. Use this when: Running the app-startup update check by passing the app's bundle/package id as ApplicationID. Returns version info so the client can force an update when below MinVersion or offer an optional one when below CurrentVersion. Security Model API Key Authentication • [Get All Translations](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/get-all-translations.md): Retrieve all translation keys and their corresponding values assigned to your Service through the backend and AutoTune CMS. This allows you to access and manage localized content specific to your service, excluding broader application translations managed separately for Tuned Global whitelabel solutions. • [Get App Images](https://docs.tunedglobal.com/application-settings-and-service-configuration/application/get-app-images.md): Retrieve app images managed through AutoTune to dynamically customize visual elements such as paywall backgrounds, onboarding screens, subscription headers, and login images within your Tuned whitelabel solutions. This enables you to update these assets remotely without requiring a new app build. • [User Library / Collection](https://docs.tunedglobal.com/user-library-collection.md): A user’s personal saved content — the items they have explicitly added to their library. The library spans all saveable content types and is one of the most frequently accessed surfaces in a streaming application. Collection Views Browse the authenticated user's saved content — albums, artists, tracks, playlists, and podcasts across all saveable types. Collection Actions Add or remove items from the user's library collection across all supported content types. • [Collection Views](https://docs.tunedglobal.com/user-library-collection/collection-views.md): Retrieve the contents of the authenticated user's library. Supports paginated listing of saved albums, songs, playlists, podcasts, and audiobooks. Use these endpoints to populate the "My Library" or "Saved" sections of your application. • [Add Priority](https://docs.tunedglobal.com/user-library-collection/collection-views/add-priority.md): Use this section to assign a priority rank to content, enabling you to control its prominence within the system. By setting a rank value between 0 and 20, you ensure prioritized content appears higher in search results, enhancing content visibility and relevance. Restricted admin endpoint. Access is limited to a predefined list of authorized user IDs. Security Model oAuth • [Get Recently Added](https://docs.tunedglobal.com/user-library-collection/collection-views/get-recently-added.md): Retrieve a curated list of the most recently added releases in the authenticated user’s collection. This allows users to stay up-to-date with new additions, including detailed metadata such as artists, albums, release dates, and content availability. Security Model oAuth • [Get Tracks Artists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-tracks-artists.md): Retrieve a comprehensive list of artists associated with the releases in the current user’s collection. This allows users to access detailed information about each artist and understand their track counts within the collection. Security Model oAuth • [Get Releases Artists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-releases-artists.md): Retrieve a curated list of artists associated with the releases in the user’s personal collection. This allows users to explore detailed artist identities and see the breakdown of their releases by album type within their collected content. Security Model oAuth • [Get Artist Tracks](https://docs.tunedglobal.com/user-library-collection/collection-views/get-artist-tracks.md): Retrieve detailed information about all tracks associated with a specific artist, including metadata such as release details, streaming availability, and artist credits. This section enables you to access comprehensive track data to support catalog management, playback features, or music discovery within your application. Security Model oAuth • [Check Release in Collection](https://docs.tunedglobal.com/user-library-collection/collection-views/check-release-in-collection.md): Verify whether a specific release is part of the current user’s collection. This allows users to quickly confirm ownership or availability of a release within their personalized library. Security Model oAuth • [Get Artist Releases](https://docs.tunedglobal.com/user-library-collection/collection-views/get-artist-releases.md): Retrieve a comprehensive list of releases associated with a specific artist from the authenticated user’s collection. This allows users to access detailed information about each release, including metadata such as track details, release dates, and associated labels. Security Model oAuth • [Get Track Artists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-track-artists.md): Retrieve a personalized list of artists featured in the currently logged-in user’s favorite track collection. This allows you to access detailed artist information, including names, images, and translations, enabling tailored music experiences based on user preferences. Security Model oAuth • [Get Playlists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-playlists.md): This is where a listener's own taste lives outside the playlists they've built themselves — the ones they've favourited from other people, folded together with their own creations into one library view. Look up that combined list, check just the favourited half on its own, or add and remove a playlist from the collection entirely. Use this when: Building the 'My Playlists' library screen that lists every playlist the listener has explicitly saved. This API get's the logged in users playlists AND playlists favourited by the user in the single method. Security Model oAuth • [Check Artist Followed by User](https://docs.tunedglobal.com/user-library-collection/collection-views/check-artist-followed-by-user.md): Determine whether a specific user is currently following a particular artist within the platform. This allows you to quickly verify the follow status, enabling personalized experiences such as tailored recommendations or user engagement tracking. Security Model oAuth • [Get Favourite Playlists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-favourite-playlists.md): Retrieve a curated list of the user’s favourite playlists, enabling access to detailed information such as playlist names, descriptions, creators, and track counts. This section helps users explore and manage the playlists they’ve marked as favorites, distinct from any playlists they have created themselves. This API will only return the user's favourite playlists and NOT any created by themselves. Security Model oAuth • [Get Tracks](https://docs.tunedglobal.com/user-library-collection/collection-views/get-tracks.md): Retrieve detailed information about the tracks in the current user's collection, including metadata such as artist details, release information, and streaming availability. This section enables users to access and manage their personalized music library with rich contextual data for each track. Security Model oAuth • [Get Releases](https://docs.tunedglobal.com/user-library-collection/collection-views/get-releases.md): Retrieve detailed information about music releases within a user’s collection, including album metadata, artist details, track listings, and release attributes. This section allows you to access paginated results tailored to specific users, enabling efficient management and exploration of release data. Security Model oAuth • [Get Stations](https://docs.tunedglobal.com/user-library-collection/collection-views/get-stations.md): Retrieve a list of starred stations for the logged in user. Security Model oAuth • [Get Favourite Audiobooks](https://docs.tunedglobal.com/user-library-collection/collection-views/get-favourite-audiobooks.md): Retrieve a personalized list of a user’s favorite audiobooks within their collection, including detailed metadata such as title, authors, duration, and release information. This section enables access to curated audiobook data, facilitating seamless integration with user-specific content and preferences. Security Model oAuth • [Get Favourite Podcasts](https://docs.tunedglobal.com/user-library-collection/collection-views/get-favourite-podcasts.md): Retrieve a personalized list of favorite podcasts starred by a user within their collection. This section enables access to detailed podcast metadata—including titles, descriptions, authors, and episode counts—allowing users to efficiently browse and manage their preferred podcast channels. Security Model oAuth • [Get Followed Artists](https://docs.tunedglobal.com/user-library-collection/collection-views/get-followed-artists.md): Retrieve the list of artists the currently logged in user has in their followed artist collection. Make sure userId input param is null Security Model oAuth • [Collection Actions](https://docs.tunedglobal.com/user-library-collection/collection-actions.md): Add items to and remove items from the authenticated user's library. Supports all saveable content types: albums, songs, playlists, podcasts, and audiobooks. Use these endpoints to handle the save/unsave toggle throughout the application UI. • [Add Track](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-track.md): This section allows users to add a specific track to their personal collection, enabling seamless management of their music library. By leveraging this functionality, users can easily curate and expand their curated playlists within the Tuned Global platform. Security Model oAuth • [Add Tracks](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-tracks.md): Add multiple tracks to the authenticated user’s collection to enhance their personalized music library. This section enables users to seamlessly expand their saved tracks by specifying one or more track IDs for inclusion. Security Model oAuth • [Remove a Track](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-a-track.md): This section enables users to permanently remove a specific track from their collection by providing its unique identifier. It allows for efficient management of track libraries by deleting unwanted or outdated entries. Upon successful removal, a confirmation value is returned to verify the action. Security Model oAuth • [Add Podcast](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-podcast.md): Use this section to add or update a podcast within your collection by specifying its unique identifier. It enables you to manage podcast metadata efficiently, ensuring your content stays current and accurately represented in the Tuned Global platform. Security Model oAuth • [Remove a Podcast](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-a-podcast.md): This section enables users to permanently remove a specific podcast from their collection by providing its unique identifier. It ensures that the targeted podcast channel is deleted from the system, effectively managing and maintaining the user's podcast library. Security Model oAuth • [Add Release](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-release.md): Use this section to add or update a release within a collection by specifying its unique identifier. It enables you to manage release details efficiently, ensuring your catalog stays current and accurate. Security Model oAuth • [Remove a Release](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-a-release.md): This section enables you to permanently remove a specific release from your collection by specifying its unique identifier. Use this operation to manage and maintain your active releases, ensuring that outdated or unwanted entries are deleted from the system. Security Model oAuth • [Add Station](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-station.md): This section enables users to update the details of an existing station within their collection. By providing the station’s unique identifier, users can modify its attributes to keep their station data current and accurate. Security Model oAuth • [Remove a Station](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-a-station.md): This section enables users to permanently remove a specified station from their collection. It allows for efficient management of station resources by deleting entries that are no longer needed or relevant. Security Model oAuth • [Bulk Follow Artist](https://docs.tunedglobal.com/user-library-collection/collection-actions/bulk-follow-artist.md): This section allows users to follow multiple artists at once, simplifying the management of their music preferences. By using this functionality, users can efficiently update their followed artists list in bulk, enhancing personalized content and recommendations within their collection. Security Model oAuth • [Add Playlist](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-playlist.md): Use this section to update the details of an existing playlist by providing its unique identifier. It enables users to modify playlist attributes and keep their collections current and organized within the Tuned Global platform. Security Model oAuth • [Remove a Playlist](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-a-playlist.md): This section enables users to permanently delete a specific playlist from their collection by specifying its identifier. It allows for efficient management and cleanup of playlists, ensuring that outdated or unwanted content is removed from the system. Security Model oAuth • [Add Audiobook](https://docs.tunedglobal.com/user-library-collection/collection-actions/add-audiobook.md): This section enables you to add or update an audiobook in your collection by specifying its unique identifier. Use it to manage audiobook metadata and ensure your library stays current with the latest content details. Security Model oAuth • [Remove an Audiobook](https://docs.tunedglobal.com/user-library-collection/collection-actions/remove-an-audiobook.md): This section enables users to permanently remove a specific audiobook from their collection by providing its unique identifier. It ensures that the audiobook is deleted from the system, helping users manage and maintain their audiobook library efficiently. Security Model oAuth • [Follow Artist](https://docs.tunedglobal.com/user-library-collection/collection-actions/follow-artist.md): This section enables users to follow a specific artist, adding them to their personalized list of followed artists. By doing so, users can stay updated with the artist’s latest releases and activities across the Tuned Global platform. Security Model oAuth • [Unfollow Artist](https://docs.tunedglobal.com/user-library-collection/collection-actions/unfollow-artist.md): This section allows users to remove an artist from their followed list, effectively stopping updates and notifications related to that artist. It enables users to manage their personalized music collection by unfollowing artists they no longer wish to track. Security Model oAuth • [Bulk Unfollow Artist](https://docs.tunedglobal.com/user-library-collection/collection-actions/bulk-unfollow-artist.md): Use this section to remove multiple artists from a user's followed list in a single operation. It enables efficient management of artist preferences by allowing batch unfollow actions, streamlining the user's collection and personalizing their experience. Security Model oAuth • [Users](https://docs.tunedglobal.com/users.md): Covers the full user lifecycle including registration, authentication, profile management, social features, messaging, personalised recommendations, and account activity. Supports multiple login methods (email, device, phone, social, third-party) and multi-profile accounts. Identity & Authentication Register users, manage login sessions, handle token refresh, and verify user identity. Profiles Retrieve and update user profile data including display name, avatar, locale, and preferences. Social & Relationships Follow and unfollow users and artists, retrieve follower/following lists, and manage social connections. Messaging Send and retrieve in-platform messages between users or from the platform to users. Personalisation & Recommendations Fetch personalised content recommendations, taste profiles, and discovery signals for the authenticated user. Account & Activity Manage account settings, retrieve listening activity, handle account deletion, and audit user events. • [Identity & Authentication](https://docs.tunedglobal.com/users/identity-and-authentication.md): Register new users by email, device, or phone number. Authenticate via multiple methods including password, social login, third-party JWT, and OTP. Manage authorised devices, handle password resets, and validate user credentials including HMAC verification. • [Register by Email](https://docs.tunedglobal.com/users/identity-and-authentication/register-by-email.md): Registers a new user account using an email address and password. Before calling this endpoint, a one-time password (OTP) must have been sent to the user's email and provided in the request body for verification. On success, the newly created user profile is returned. Use this when: Completing email/password sign-up immediately after the address has been verified via GET requestotp followed by GET validateotp . Security Model oAuth • [Register by Device](https://docs.tunedglobal.com/users/identity-and-authentication/register-by-device.md): Register a user by device id, used for frictionless signup or Guest Mode. Use this when: A trusted device partner — a smart speaker, set-top box, or connected car — needs to silently provision a guest account tied to a brand-new device, without collecting an email or password. HMAC authentication required. Further information on how to use HMAC can be found here . • [Register by MSISDN](https://docs.tunedglobal.com/users/identity-and-authentication/register-by-msisdn.md): Register user by MSISDN using OTP (one-time pin). Use this when: Completing phone-based sign-up right after the number has been verified with an OTP, typically via Firebase. When using an OTP (one-time pin) provider such as Firebase Phone Authentication, you can use this API to confirm that a user has authenticated correctly and then register them as a user, also registering their login method at the same time. Security Model oAuth • [Add Login](https://docs.tunedglobal.com/users/identity-and-authentication/add-login.md): Allow anonymous user to provide login details Use this when: Upgrading an existing guest/device-registered account (created via PUT registerbydevice ) to a full username+password login so the same person can sign in from another device. Security Model oAuth • [Third-Party Login](https://docs.tunedglobal.com/users/identity-and-authentication/third-party-login.md): Login via 3rd Party Use case is that Autehntication of a user occurs on a third party system with the Tuned system only storing a user id (and external user id) • [Third-Party Registration](https://docs.tunedglobal.com/users/identity-and-authentication/third-party-registration.md): Use this section to register users through an external system by providing their business and personal details. It enables seamless integration with third-party services to create user accounts within your platform, facilitating unified access and management. Use this when: A partner sign-up flow needs to create the user in both TunedConnect and the partner's own billing/business system in a single call. Security Model oAuth • [Social Login](https://docs.tunedglobal.com/users/identity-and-authentication/social-login.md): Login with a Meta (Facebook), X(Twitter), Google or Apple account. v • [Forgot Password](https://docs.tunedglobal.com/users/identity-and-authentication/forgot-password.md): Send password reset link to users email. • [Update Password](https://docs.tunedglobal.com/users/identity-and-authentication/update-password.md): Use this section to securely update the password of the currently authenticated user by providing the existing password and a new one. It enables users to maintain account security by changing their login credentials Security Model oAuth • [Get Logins](https://docs.tunedglobal.com/users/identity-and-authentication/get-logins.md): Return all logins for a user • [Check Username](https://docs.tunedglobal.com/users/identity-and-authentication/check-username.md): Check if the provided username already exists in the system • [Accept Terms](https://docs.tunedglobal.com/users/identity-and-authentication/accept-terms.md): Accept the latest version of T and C. • [Validate OTP](https://docs.tunedglobal.com/users/identity-and-authentication/validate-otp.md): Use this section to verify one-time passwords (OTPs) sent to a user’s mobile number or email, enabling secure authentication and phone number confirmation. It ensures that the provided OTP matches the one issued, helping to protect user accounts and validate contact information efficiently. Security Model oAuth • [Generate OTP](https://docs.tunedglobal.com/users/identity-and-authentication/generate-otp.md): Use this section to generate a one-time password (OTP) for user verification or authentication via SMS or email. It enables secure delivery of OTPs, supporting multiple providers and message localization to enhance user experience and security. • [Get Encrypted MSISDN](https://docs.tunedglobal.com/users/identity-and-authentication/get-encrypted-msisdn.md): Retrieve the encrypted MSISDN (mobile subscriber number) associated with the authenticated user, intended for Telco services utilizing HTTP Header Enrichment (HHE) with encryption enabled. This allows secure access to the user’s MSISDN data for authorized applications. Security Model oAuth • [Generate QR Code](https://docs.tunedglobal.com/users/identity-and-authentication/generate-qr-code.md): Generate a unique QR code that facilitates secure authentication workflows across devices such as TVs and other applications. This QR code encodes a one-time code used for user identification or login, enabling seamless integration into custom authentication processes. HMAC authentication required. Further information on how to use HMAC can be found here . Use this when: Displaying a short pairing code, often rendered as a QR code, on a TV or other limited-input device. Usage example below: Source Tuned Global turnkey application, TV interface. • [Validate Code](https://docs.tunedglobal.com/users/identity-and-authentication/validate-code.md): Use this section to verify the authenticity and validity of a QR code previously generated for a user. It enables you to confirm that the code is legitimate and associated with the specified user, ensuring secure and trusted interactions within your application. Validate the QR code that was created via the Generatecode API Security Model oAuth • [Auth Device](https://docs.tunedglobal.com/users/identity-and-authentication/auth-device.md): Use this section to authorize and register a user’s device within the Tuned Global platform, enabling secure identification and management of device-specific information. It allows you to associate device details with the user’s account, facilitating personalized experiences and enhanced security across applications. Security Model oAuth • [DeAuth Device](https://docs.tunedglobal.com/users/identity-and-authentication/deauth-device.md): The DeAuthDevice section allows users to deauthorize a device associated with the current user. By using this functionality, users can manage and control access to their account across different devices. This action helps enhance security and privacy by removing unauthorized or outdated devices from accessing the user's account. Security Model oAuth • [Get Device Status](https://docs.tunedglobal.com/users/identity-and-authentication/get-device-status.md): Retrieve the authorization status of a specific device associated with the logged-in user. This allows you to verify whether the device is currently authorized to access the user’s account, enabling better management of device access and security. Security Model oAuth • [Validate HMAC](https://docs.tunedglobal.com/users/identity-and-authentication/validate-hmac.md): Validates HMAC (Hash-based Message Authentication Code) authentication and generates a local access token for the specified user. HMAC authentication required. Further information on how to use HMAC can be found here . Used for a frictionless login experience between an application and a associated web site of the music service • [Authenticate External User](https://docs.tunedglobal.com/users/identity-and-authentication/authenticate-external-user.md): Authenticates external users (from third-party systems) and generates a local access token. This endpoint handles both existing external users and creates new users if they don't exist in the system. HMAC authentication required. Further information on how to use HMAC can be found [here](https://docs-api-services.tunedglobal.com/authentication/hmac-authentication). • [Authenticate Third-Party JWT](https://docs.tunedglobal.com/users/identity-and-authentication/authenticate-third-party-jwt.md): This API supports JWTs generated by third-party clients using the asymmetric RS256 algorithm, which relies on a private/public key pair: The public key must be provided by the client in SPKI format. Clients are required to generate a new key pair specifically for their TG integration. Clients use the private key to sign and generate the access token. TG uses the public key to validate the token and extract claims information The following claims are validated by the API: userid or sub country email planid deviceid Before using this API, the client must provide Tuned Global with its public key in SubjectPublicKeyInfo (SPKI) format. Tuned Global will register the key with its authentication server. The API cannot be used until client key registration is complete. Security Model oAuth • [JWT Token by Code](https://docs.tunedglobal.com/users/identity-and-authentication/jwt-token-by-code.md): Get Jwt token • [Profiles](https://docs.tunedglobal.com/users/profiles.md): User Profiles View and manage user profiles including public profile lookups by ID or username, profile creation and editing, avatar uploads, privacy settings, sub-profile management for family plans, and third-party profile synchronisation. • [Public Profiles](https://docs.tunedglobal.com/users/profiles/public-profiles.md): Retrieve detailed information about public profiles to access user-related data that is openly available. This section enables you to explore and display key profile attributes, supporting seamless integration with your application’s user-facing features. • [Get Profile by ID](https://docs.tunedglobal.com/users/profiles/public-profiles/get-profile-by-id.md): Get User Public Profile by user Id. Note: A user must have their allow public as active • [Get Profile by Username](https://docs.tunedglobal.com/users/profiles/public-profiles/get-profile-by-username.md): Get User Public Profile by username. **Note:** A user must have their allow public as active • [Get Following](https://docs.tunedglobal.com/users/profiles/public-profiles/get-following.md): Retrieve a list of profiles (ids) the given public user is following. • [External Email Exists](https://docs.tunedglobal.com/users/profiles/public-profiles/external-email-exists.md): Check if email exists in third party systems. **Note:** This API is only available if 3rd party authentication systems are used and this feature is available. It is not available by default. • [Profile Management](https://docs.tunedglobal.com/users/profiles/profile-management.md): Manage user profile information efficiently with the Profile Management section. This allows you to create, update, and retrieve personal details, ensuring user data remains accurate and up to date within your application. • [Get Profile](https://docs.tunedglobal.com/users/profiles/profile-management/get-profile.md): Retrieve a users profile and retrieve information such as their first name, last name, display name, email, MSISDN, country and language. • [Create Profile](https://docs.tunedglobal.com/users/profiles/profile-management/create-profile.md): Create a users' profile and add information such as a name and display name. • [Edit Profile](https://docs.tunedglobal.com/users/profiles/profile-management/edit-profile.md): Edit a users profile. • [Update My Details](https://docs.tunedglobal.com/users/profiles/profile-management/update-my-details.md): Update your personal profile information, including contact details, language preferences, country of residence, and audio quality settings. This section allows you to keep your user account up to date and customize your experience within the platform. Security Model oAuth • [Update Third-Party Profile](https://docs.tunedglobal.com/users/profiles/profile-management/update-third-party-profile.md): Modify the user profile within a third-party system. Note: This must be implemented for your service. • [Edit My Image](https://docs.tunedglobal.com/users/profiles/profile-management/edit-my-image.md): The Editmyimage section allows users to modify a user's profile or background image within the application. Users can upload image files in formats such as jpg , jpeg , png , gif , bmp , or tif to customize their visual representation. This feature enables users to personalize their profiles and enhance their overall user experience. This uses Multipart file upload — image file attached as form data. Accepted file types are standard image formats (e.g. jpg, png, gif). File type is inferred from the file extension in the Content-Disposition header. Security Model oAuth • [Delete Profile](https://docs.tunedglobal.com/users/profiles/profile-management/delete-profile.md): Deletes a sub-profile (child profile) linked to the authenticated user's account. Only the account owner can delete their own sub-profiles — you cannot delete a profile belonging to another account. Once deleted, the profile is deactivated and its login credentials are removed; this action cannot be undone. Security Model oAuth • [Clear User Data](https://docs.tunedglobal.com/users/profiles/profile-management/clear-user-data.md): This action removes all Personal Information (PI) associated with a user but preserves the underlying user ID for audit trail purposes. This functionality is utilised to comply with privacy regulations such as General Data Protection Regulation (GDPR) or California Consumer Privacy Act (CCPA). Shown below is an example of how this could be presented to users in an app. • [Get Settings](https://docs.tunedglobal.com/users/profiles/profile-management/get-settings.md): Retrieve a user's application settings, including options for music streaming availability, track skipping permissions, album access, music downloading capabilities, GDPR/CCPA privacy compliance requirements, access to lyrics, and adherence to the operational rules of the Digital Millennium Copyright Act (DMCA) for radio content. • [Check Terms](https://docs.tunedglobal.com/users/profiles/profile-management/check-terms.md): Verify whether a user has accepted the most recent version of the terms and conditions as maintained in the system. This section enables you to retrieve the current agreement status along with localized versions of the terms, ensuring compliance with the latest updates. Terms and Conditions are uploaded with a version number through AutoTune CMS. • [Set Public Flag](https://docs.tunedglobal.com/users/profiles/profile-management/set-public-flag.md): This section allows users to update their public visibility status within the platform. By toggling this setting, users can control whether their profile is visible to others. This enables personalized privacy management tailored to each user's preferences. Security Model oAuth • [Get TrueID User Profile](https://docs.tunedglobal.com/users/profiles/profile-management/get-trueid-user-profile.md): This API allows users to retrieve TrueID user profile information and check the status of their bundle status. With this API, users can access details such as account ID, subscription start and expiry dates, product information, and bundle status. It provides valuable insights into the user's subscription status and helps in managing TrueID bundle subscriptions effectively. If the transaction_id is not provided, this API returns the current profile information and bundle status of the user. If the transaction_id is provieded, this API returns the profile information and bundle status associated with the speicfic transaction. • [Social & Relationships](https://docs.tunedglobal.com/users/social-and-relationships.md): Follow and unfollow other users, block and unblock users, connect and disconnect social media accounts, and view associated profiles linked to the current user. • [Get User Context](https://docs.tunedglobal.com/users/social-and-relationships/get-user-context.md): Retrieve the relationship status between the logged-in user and a specified user, including whether the logged-in user is following them and if they are following back. This enables applications to display mutual connections and tailor user interactions based on follow status. Use case: You can set users to be verified profiles on Autotune. You can then compare the verified user with the logged in user to display if you are following and who they are following Security Model oAuth • [Get My Following](https://docs.tunedglobal.com/users/social-and-relationships/get-my-following.md): Retrieve the list of profiles the currently logged in user is following Note for self - profile is user, should update on Swagger. Profile is the model of the user • [Follow User](https://docs.tunedglobal.com/users/social-and-relationships/follow-user.md): This section allows the authenticated user to follow another user by specifying their unique identifier, enabling them to build connections within the platform. By following a user, you can receive updates and stay informed about their activity. Security Model oAuth • [Stop Following User](https://docs.tunedglobal.com/users/social-and-relationships/stop-following-user.md): This section allows authenticated users to stop following another user by specifying their unique identifier. Users can manage their follow list, effectively removing connections and updating their social interactions within the platform. Security Model oAuth • [Block User](https://docs.tunedglobal.com/users/social-and-relationships/block-user.md): Use this section to block another user by specifying their unique identifier, preventing any further interactions from that user. This action helps you manage your connections and maintain a personalized and secure experience within the platform. Note: This api is not yet fully implemented. Security Model oAuth • [Unblock User](https://docs.tunedglobal.com/users/social-and-relationships/unblock-user.md): Use this section to remove a block on a specified user, restoring their ability to interact with your account. This action effectively reverses a previous block, allowing seamless communication and engagement once again. Note: This api is not yet fully implemented. Security Model oAuth • [Check Block](https://docs.tunedglobal.com/users/social-and-relationships/check-block.md): Use this section to verify whether a specified user is currently blocked by the authenticated user. It enables clients to quickly check the blocking status and handle user interactions accordingly. Note that this functionality is still under development and may not be fully supported yet. Note: This api is not yet fully implemented. Security Model oAuth • [Get My Blocking](https://docs.tunedglobal.com/users/social-and-relationships/get-my-blocking.md): Retrieve a list of user IDs that the authenticated user has blocked, enabling you to manage and review your block list effectively. This section helps you identify which users are currently restricted from interacting with you. Note: This api is not yet fully implemented. Security Model oAuth • [Social Connect](https://docs.tunedglobal.com/users/social-and-relationships/social-connect.md): Add social login details for the user Refreshes information from the user's Social accounts that have been authenticated via oAuth methods • [Social Disconnect](https://docs.tunedglobal.com/users/social-and-relationships/social-disconnect.md): Revoke a user’s linked social login credentials to disable authentication through external providers. This operation helps maintain account security by removing access granted via social platforms. Security Model oAuth • [Get Associated Profiles](https://docs.tunedglobal.com/users/social-and-relationships/get-associated-profiles.md): Retrieve the profiles linked to a primary user, enabling access to the child profiles within family or corporate plans. This section allows you to view and manage associated users connected to the main account for streamlined account administration. Security Model oAuth • [Messaging](https://docs.tunedglobal.com/users/messaging.md): Retrieve, read, and manage in-app inbox messages. Includes listing messages with pagination, viewing full message content, updating message status, and checking unread message counts. • [Get Inbox Messages Count](https://docs.tunedglobal.com/users/messaging/get-inbox-messages-count.md): Retrieve the total count of messages in a user’s inbox, optionally filtered by message status. This allows you to quickly assess the volume of messages without fetching the full message details. Security Model oAuth • [Get Inbox Messages](https://docs.tunedglobal.com/users/messaging/get-inbox-messages.md): Retrieve a paginated list of inbox message headers for the current user, enabling you to efficiently browse and manage message summaries. This section provides essential metadata to navigate through the user's messages and supports seamless integration with inbox views or notification systems. Security Model oAuth • [Get Inbox Message](https://docs.tunedglobal.com/users/messaging/get-inbox-message.md): Retrieve the inbox message for a user by its ID (UserMessageId) and all associated information, including image, voucher code, status, title, content, expiration status, and date. Security Model oAuth • [Update Inbox Message](https://docs.tunedglobal.com/users/messaging/update-inbox-message.md): Update the status of a specific inbox message to mark it as either read or unread. This allows users to manage and track their message visibility and engagement within their inbox. Security Model oAuth • [Personalisation & Recommendations](https://docs.tunedglobal.com/users/personalisation-and-recommendations.md): Manage user content preferences through tags and language settings. Retrieve personalised recommendations for artists, playlists, and stations. Includes TunedIQ-powered artist and track recommendations based on listening behaviour. • [Update Preferred Tags](https://docs.tunedglobal.com/users/personalisation-and-recommendations/update-preferred-tags.md): Update Preferred Tags allows you to modify a user’s set of preferred genre tags, enabling personalized content experiences based on their interests. By managing these tags, you can tailor recommendations and enhance user engagement from the moment of sign-up and throughout their interaction with your platform. This API will update a user's preferred tags. A use case for this API is to show users a list of preferred Genre tags on sign-up. You can the make API calls to provide content based on these tags for the user. Security Model oAuth • [Get User Preferred Tags](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-user-preferred-tags.md): Retrieve a user’s preferred tags to personalize content and enhance user experience. This section enables you to access the tags a user has selected or interacted with, helping tailor recommendations and insights based on their preferences. Security Model oAuth • [Get Suggested Artists](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-suggested-artists.md): Retrieve a personalized list of artist recommendations tailored to the authenticated user’s listening preferences. This section enables users to discover new artists curated based on their profile, complete with relevant metadata such as artist names, images, and localized translations. Security Model oAuth • [Get Suggested Users](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-suggested-users.md): Return suggested users for loggedin user Use this when: Populating a 'Suggested for you' / 'Discover people' section for the logged-in user in the current store. Returns a plain array of UserPublicProfile objects ordered by the sortType query param (atoz, newest, popularity; defaults to popularity). Security Model oAuth • [Get Recommended Artists](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-recommended-artists.md): Retrieve personalized artist recommendations tailored to the authenticated user’s listening preferences. This section enables users to discover new artists curated specifically for them, with support for localized artist names and pagination to navigate through the results. Security Model oAuth • [Get Recommended Playlists](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-recommended-playlists.md): Retrieve personalized playlist recommendations tailored to the user's preferences, leveraging onboarding tags and group defaults to deliver relevant music selections. This section enables users to discover curated playlists that match their tastes and listening habits. Based on onboarding tags and default to group tags Security Model oAuth • [Get Recommended Stations](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-recommended-stations.md): Retrieve personalized radio station recommendations tailored to the user's preferences, leveraging onboarding tags and group defaults to deliver relevant music selections. Security Model oAuth Retrieve personalized station recommendations for a user based on their onboarding tags. Users can easily discover relevant stations tailored to their interests, enhancing their overall listening experience • [Update Content Languages](https://docs.tunedglobal.com/users/personalisation-and-recommendations/update-content-languages.md): Set or modify the preferred content languages for a user to tailor the language of performance and improve localization. This allows applications to support multiple content languages, enabling a more personalized experience in multilingual regions. Content Languages are the language of performance. This sets the preferred content language for the user. A geographical use case may be best represented by an application in India, where over 20 content languages may exist and be preferred by users. Security Model oAuth • [Get Artist IQ Recommendations](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-artist-iq-recommendations.md): Fetch personalized artist recommendations tailored to the user’s listening habits and profile data. This section enables you to discover new artists that align with the user's musical preferences, enhancing the overall listening experience. Security Model oAuth • [Get Track IQ Recommendations](https://docs.tunedglobal.com/users/personalisation-and-recommendations/get-track-iq-recommendations.md): Retrieve personalized track recommendations tailored to a user’s listening habits and profile. This allows users to discover new music aligned with their tastes, enhancing their overall listening experience. Security Model oAuth • [Verified Users by Tag](https://docs.tunedglobal.com/users/personalisation-and-recommendations/verified-users-by-tag.md): Retrieve a list of verified users who match one or more specified tags, enabling targeted access to profiles based on user interests or attributes. This functionality helps you discover and engage with verified users filtered by relevant categories for personalized interactions. Security Model oAuth • [Account & Activity](https://docs.tunedglobal.com/users/account-and-activity.md): View active subscriptions, redeem vouchers and referral codes, check listening reward status, manage ad counters, view payment history and activity streams, and monitor play usage limits. • [Get Subscriptions](https://docs.tunedglobal.com/users/account-and-activity/get-subscriptions.md): Retrieve detailed information about all active subscriptions associated with a specific user. This section enables you to access subscription status, billing periods, package details, and renewal settings to effectively manage and monitor user subscriptions. Security Model oAuth • [Add Referral Code](https://docs.tunedglobal.com/users/account-and-activity/add-referral-code.md): This section enables users to apply a referral code to their account, allowing them to benefit from referral-based promotions or rewards. By submitting a valid code, users can link their account to the referring party and unlock associated advantages within the Tuned Global platform. Security Model oAuth • [Redeem Voucher](https://docs.tunedglobal.com/users/account-and-activity/redeem-voucher.md): This section enables users to redeem a voucher code to apply discounts or benefits within their account. By submitting a valid voucher, users can activate promotional offers or credits associated with their profile. Security Model oAuth • [Request Cancel Subscription](https://docs.tunedglobal.com/users/account-and-activity/request-cancel-subscription.md): Requests cancellation of the currently logged-in user's active subscription via the billing provider (GBilling). Returns the outcome of the cancellation request, including a transaction ID, a human-readable message, and a billing status code. Used primarily in Telco billing scenarios. Security Model oAuth • [Get Listening Reward Status](https://docs.tunedglobal.com/users/account-and-activity/get-listening-reward-status.md): Retrieve the current listening reward status for a user to monitor their progress toward earning rewards based on accumulated listening time. This section provides key details such as the listening threshold, daily cap, and total listening seconds to help manage and track reward eligibility effectively. Note: This must be configured for each client. Discuss your configutration requirements with the Tuned Global team. Security Model oAuth • [Get Triton Ad](https://docs.tunedglobal.com/users/account-and-activity/get-triton-ad.md): Retrieve detailed ad information tailored to Triton integrations, enabling your app to display updated, sponsored ad content relevant to specific objects like stations or playlists. This section ensures seamless access to rich media ad assets and metadata necessary for delivering targeted advertising experiences within your service. Note: this must be implemented for your service. Security Model oAuth • [Reset Ad Count](https://docs.tunedglobal.com/users/account-and-activity/reset-ad-count.md): The Reset Ad Count section allows you to clear a user’s ad-viewing history, effectively restarting their ad tracking cycle. This enables you to manage and refresh how ads are presented to users, ensuring accurate and up-to-date ad exposure data. Security Model oAuth • [Get Payment History](https://docs.tunedglobal.com/users/account-and-activity/get-payment-history.md): Retrieve a detailed record of a user’s past payment transactions, including information such as payment identifiers, costs, processing dates, and associated packages or vouchers. This section enables you to efficiently access and review payment history data to support account management, reporting, and auditing needs. Security Model oAuth • [Get My Activity Stream](https://docs.tunedglobal.com/users/account-and-activity/get-my-activity-stream.md): Retrieve a personalized feed of recent actions from accounts you follow, including posts, likes, and other interactions. This allows you to stay updated on the latest activity within your network, with results organized from newest to oldest and customizable through pagination. Security Model oAuth • [Get User Activity Stream](https://docs.tunedglobal.com/users/account-and-activity/get-user-activity-stream.md): Retrieve a comprehensive stream of activities associated with a specified user, providing detailed insights into their interactions and events within the platform. This enables you to monitor user behavior, track actions, and gain contextual information to support analytics, auditing, or personalized experiences. Security Model oAuth • [Get User Play Usage](https://docs.tunedglobal.com/users/account-and-activity/get-user-play-usage.md): Retrieve detailed information about a user’s play activity, including aggregated counts categorized by play type. This section enables you to monitor and analyze how users engage with content over time, supporting usage tracking and reporting needs. Security Model oAuth • [Playback & Queue](https://docs.tunedglobal.com/playback-and-queue.md): Manages the user's playback experience including queue composition, playback state, grouped track organisation, playback mode controls, play event logging, and audio/video streaming. Queue Management Build, inspect, and modify the active playback queue — add, remove, and reorder tracks. Playback State Retrieve the current playback state including position, active track, repeat mode, and shuffle state. Queue Groups Organise queued tracks into logical groups for gapless transitions and context-aware playback. Playback Controls Send transport commands — play, pause, skip, seek, set repeat, and toggle shuffle. Playback Activity Query recent playback events and session history for the authenticated user. Logging Submit play event logs for royalty reporting, analytics, and licence compliance. Streaming & Download Get Stream and Download Urls • [Queue Management](https://docs.tunedglobal.com/playback-and-queue/queue-management.md): Retrieve, replace, and modify the user's playback queue. Add or remove individual tracks, enqueue entire releases as grouped volumes, and reorder tracks within the queue. • [Get Queue](https://docs.tunedglobal.com/playback-and-queue/queue-management/replace-queue-copy.md): Returns the complete Now Playing queue for the authenticated user, including queued tracks, source groups, playback settings, and the currently playing item. The response carries repeat, shuffle, and crossfade modes, shuffle order when enabled, and an EditVersion counter for sync. Use this when: you need the full Now Playing queue to render the queue UI or sync after launch. Prefer Get Edit Version to poll for changes, and Get Currently Playing when you only need the active item. Security Model oAuth • [Replace Queue](https://docs.tunedglobal.com/playback-and-queue/queue-management/replace-queue.md): Replaces the entire Now Playing queue for the signed-in user with the snapshot supplied in the request body. You can set tracks, groups, currently playing, shuffle order, repeat/shuffle/crossfade modes, and EditVersion in one atomic update. Returns the updated full queue. Use this when: restoring queue state from local storage, syncing from another device, or handling "Play playlist" flows that clear and rebuild the queue in one step. Use incremental endpoints such as Enqueue Tracks or Remove Tracks for small edits; use Replace Queue only when you already hold a complete queue snapshot. Include EditVersion from your last read if you rely on optimistic concurrency across devices. Security Model oAuth • [Enqueue Tracks](https://docs.tunedglobal.com/playback-and-queue/queue-management/enqueue-tracks.md): Appends one or more tracks to the signed-in user's Now Playing queue. Each entry in the body requires a TrackId. Tracks join the last existing group, or a new group is created if the queue is empty. Returns the updated full queue. Use this when: the user taps "Add to queue" on individual tracks or a custom multi-select. Use Enqueue Release when adding a whole album so the server creates group metadata automatically; use Add Group first when you need explicit cover art and labels for a new source. Add To Group is better when extending an existing grouped section by id rather than appending to the tail. Security Model oAuth • [Enqueue Release](https://docs.tunedglobal.com/playback-and-queue/queue-management/enqueue-release.md): Appends every track from a catalog release to the signed-in user's Now Playing queue, creating a new group with release title, artist subtitle, and cover art. Returns the updated full queue. Use this when: the user taps "Play album" or "Add album to queue" on a release detail page. Use this instead of Enqueue Tracks when adding an entire release so the server builds the group metadata and track list for you. Use Enqueue Tracks or Add To Group for hand-picked individual songs. Security Model oAuth • [Remove Specified Tracks](https://docs.tunedglobal.com/playback-and-queue/queue-management/remove-specified-tracks.md): Removes one or more queued tracks from the signed-in user's Now Playing queue, identified by their PlayQueueItemId values. Returns the updated full queue without affecting tracks you did not specify. Use this when: the user swipes to delete individual tracks, clears a multi-select, or removes upcoming songs from the flat queue list. Use Remove Group Tracks when deleting within a specific grouped section and you want the group id validated; use Remove Group to drop an entire album or playlist section at once. Update your local EditVersion from the response to stay in sync across devices. Security Model oAuth • [Move a Track](https://docs.tunedglobal.com/playback-and-queue/queue-management/move-a-track.md): Moves a single queued track to a new position in the signed-in user's Now Playing queue, optionally into a different group. Other tracks and settings remain unchanged except for the moved item's position. Returns the updated full queue. Use this when: the user drag-and-drops to reorder in the queue UI or moves a track between group sections. Use this for one item at a time; batch multiple moves locally first or chain calls if the user rearranges several rows. For wholesale queue rebuilds, Replace Queue may be simpler than many sequential reorders. Security Model oAuth • [Playback State](https://docs.tunedglobal.com/playback-and-queue/playback-state.md): Get or set the currently playing track, clear the current playback item, and check the queue's edit version number for client-server synchronisation. • [Get Currently Playing](https://docs.tunedglobal.com/playback-and-queue/playback-state/get-currently-playing.md): Returns the queue item currently marked as playing for the authenticated user, including TrackId, GroupId, PlayQueueItemId, DeviceId, and StationId. This read-only endpoint exposes only the active playback marker, not the full track list, groups, or repeat/shuffle/crossfade settings. Use this when: you need to poll on app resume or periodically to sync the now-playing bar across devices without downloading the entire queue. Use this instead of Get Queue when you only need to know which track is active and which device owns playback. Pair with Set Currently Playing on the playing device and Unset Currently Playing when playback stops. Security Model oAuth • [Set Currently Playing](https://docs.tunedglobal.com/playback-and-queue/playback-state/set-currently-playing.md): Marks a queue item as the currently playing track for the signed-in user. Returns the updated full queue so other clients can reflect active playback. Use this when: playback starts, resumes, or skips to a new track on this device so remote clients can update their now-playing UI. Use Get Currently Playing to read the marker without mutating state, and Unset Currently Playing when stopping playback. Security Model oAuth • [Unset Currently Playing](https://docs.tunedglobal.com/playback-and-queue/playback-state/set-currently-playing-copy-1.md): Clears the currently playing marker on the signed-in user's Now Playing queue without removing any queued tracks or changing playback settings. CurrentlyPlaying in the response becomes null while the track list and groups remain intact. Use this when: playback stops, the app backgrounds, or the user pauses long enough that this device should release the active slot. Other devices can then call Set Currently Playing to take over without conflicting state. Use this instead of Remove Tracks when you want to keep the queue but indicate nothing is actively playing. Security Model oAuth • [Get Edit Version](https://docs.tunedglobal.com/playback-and-queue/playback-state/unset-currently-playing-copy.md): Returns the current EditVersion revision number for the signed-in user's Now Playing queue. This lightweight counter increments whenever any queue mutation occurs on the server, making it ideal for sync checks without transferring tracks or settings. Returns a single integer Value wrapper rather than the full queue payload. Use this when: you need to poll periodically or before opening the queue to detect remote changes without downloading the full payload. Compare the returned Value against your locally cached EditVersion and call Get Queue only when they differ. Use this as a lightweight sync check on multi-device clients; Get Currently Playing is better when you specifically need playback state rather than any queue edit. Security Model oAuth • [Queue Groups](https://docs.tunedglobal.com/playback-and-queue/queue-groups.md): Organise queue tracks into logical groups such as albums or playlists. Create, retrieve, update, and remove groups and manage individual tracks within each group. • [Get Group](https://docs.tunedglobal.com/playback-and-queue/queue-groups/get-group.md): Returns metadata for one track group in the signed-in user's Now Playing queue, identified by group id in the path. The response includes GroupId, Title, Subtitle, and Image for rendering a source section header such as an album or playlist. Does not include the tracks in that group. Use this when: you need group title, subtitle, and cover art for a queue section header without reloading the entire queue. Use Get Group Tracks when you also need the tracks in that section, or Get Queue when you need groups, tracks, and settings together. Helpful after partial sync when you already know the group id from track entries. Security Model oAuth • [Add Group](https://docs.tunedglobal.com/playback-and-queue/queue-groups/add-group.md): Adds or replaces a track group in the signed-in user's Now Playing queue at the given group id. Supply Title, Subtitle, and Image in the body so the queue UI can show the correct source branding. An existing group with the same id is replaced. Returns the updated full queue. Use this when: introducing tracks from a new source such as a playlist, album, or station and you want proper section headers before Enqueue Tracks or Add To Group . Use Enqueue Release when adding a whole release, since it creates the group and tracks together. Use Replace Groups only when rebuilding all group metadata at once. Security Model oAuth • [Remove Group](https://docs.tunedglobal.com/playback-and-queue/queue-groups/remove-group.md): Removes one track group and all tracks belonging to it from the signed-in user's Now Playing queue, identified by group id in the path. Returns the updated full queue with remaining groups and tracks. Use this when: the user removes an entire album or playlist section from the queue in one action. Use Remove Group Tracks to delete a single song within a section, or Remove Tracks when removing items by PlayQueueItemId regardless of group. Remove Groups clears all group headers at once if you are resetting section metadata separately from tracks. Security Model oAuth • [Get Group Tracks](https://docs.tunedglobal.com/playback-and-queue/queue-groups/get-group-tracks.md): Returns all queued tracks belonging to one group in the signed-in user's Now Playing queue, identified by group id in the path. Each item includes TrackId, GroupId, and PlayQueueItemId for rendering or editing that section's song list. Does not return group header metadata or playback settings. Use this when: you need to expand or lazy-load a group section in the queue UI without fetching the full queue. Use Get Group when you only need header metadata, or Get Queue when you need tracks, groups, settings, and currently playing together. Useful for incremental rendering after Get Queue has already supplied group ids. Security Model oAuth • [Add Tracks to Group](https://docs.tunedglobal.com/playback-and-queue/queue-groups/add-tracks-to-group.md): Appends one or more tracks to an existing group in the signed-in user's Now Playing queue, identified by group id in the path. Each track in the body requires a TrackId. Returns the updated group metadata. Use this when: adding more songs from the same source into an already-queued section, such as extra playlist tracks or additional album picks. Use Enqueue Tracks when appending to the queue tail without caring about a specific group id. Use Add Group first if the target group does not exist yet. Security Model oAuth • [Replace Groups](https://docs.tunedglobal.com/playback-and-queue/queue-groups/replace-groups.md): Replaces all track groups in the signed-in user's Now Playing queue with the array supplied in the request body. Individual track entries are managed separately and are not modified by this call alone. Returns the updated full queue. Use this when: rebuilding group metadata after a major queue restructure while track entries are updated through other endpoints. Use Add Group for a single new section or Enqueue Release when adding a release with its own group. Typically pair with track updates or Replace Queue for a full client-side rebuild across devices. Security Model oAuth • [Remove Groups](https://docs.tunedglobal.com/playback-and-queue/queue-groups/remove-groups.md): Removes every track group from the signed-in user's Now Playing queue in one call, clearing all source section headers at once. Returns the updated full queue; how remaining track entries are handled depends on your client implementation. Use this when: clearing all source groupings, such as a "Clear queue" action that removes section headers. Use Remove Group to drop one album or playlist section, or Remove Tracks to delete specific items by PlayQueueItemId. For a complete reset including tracks and settings, Replace Queue with an empty snapshot may be simpler. Security Model oAuth • [Remove Group Tracks](https://docs.tunedglobal.com/playback-and-queue/queue-groups/remove-group-tracks.md): Removes one track from a specific group in the signed-in user's Now Playing queue, identified by group id and PlayQueueItemId in the path. Returns the updated full queue while leaving other tracks and the group header intact unless no tracks remain. Use this when: the user deletes a single song within a grouped album or playlist section without removing the whole group. Use Remove Tracks when deleting by PlayQueueItemId alone from a flat queue list, or Remove Group to drop the entire section. Update local EditVersion from the response for multi-device sync. Security Model oAuth • [Playback Controls](https://docs.tunedglobal.com/playback-and-queue/playback-controls.md): Configure playback mode settings including repeat mode, shuffle, and smooth audio transition between tracks. • [Set Repeat Mode](https://docs.tunedglobal.com/playback-and-queue/playback-controls/set-repeat-mode.md): Sets the repeat mode on the signed-in user's Now Playing queue to Off, RepeatAll, or RepeatOne. This updates a single playback preference without modifying tracks, groups, or the currently playing item. Returns the applied setting in a Value wrapper. Use this when: the user cycles repeat off, repeat all, or repeat one in the player controls. Use this dedicated endpoint instead of Replace Queue for a single toggle change. Other devices can read the updated mode on their next Get Queue or after detecting an EditVersion change via Get Edit Version . Security Model oAuth • [Set Shuffle Mode](https://docs.tunedglobal.com/playback-and-queue/playback-controls/set-shuffle-mode.md): Turns shuffle on or off for the signed-in user's Now Playing queue. When enabled, the response includes the updated full queue with a ShuffleOrder array defining play sequence. Use this when: the user toggles shuffle in the player. Use the returned ShuffleOrder to determine playback sequence while shuffle is on. Use this endpoint instead of Replace Queue for shuffle toggles; poll Get Edit Version on other devices to detect the change and refresh via Get Queue . Security Model oAuth • [Set Crossfade Mode](https://docs.tunedglobal.com/playback-and-queue/playback-controls/set-crossfade-mode.md): Turns crossfade on or off for the signed-in user's Now Playing queue. This updates a single audio transition preference without modifying tracks, groups, or other playback settings. Returns the applied boolean setting in a Value wrapper. Use this when: the user toggles crossfade in playback or audio settings. Use this dedicated endpoint instead of Replace Queue for a single preference change. Other devices can pick up the updated IsCrossfadeMode on their next Get Queue after EditVersion increments. Security Model oAuth • [Playback Activity](https://docs.tunedglobal.com/playback-and-queue/playback-activity.md): Check the user's remaining play allowance based on their subscription, view plays logged per device, and retrieve the user's listening history. • [Get Play Remaining](https://docs.tunedglobal.com/playback-and-queue/playback-activity/get-play-remaining.md): Returns the logged-in user's play allowance for stores that cap streaming on free or limited subscription plans. The response indicates whether a limit applies ( HasPlayLimit ) and how many plays remain in the current period ( RemainingPlay ). This is a lightweight play limit check; it does not list which tracks were played or start playback. Use this when: you need to check remaining plays before offering playback on capped plans so you can display the count and disable play when it reaches zero. Refresh after each completed listen or when the user opens the player screen. Combine with Plays By Device to determine whether a specific track already counted against the device allowance on limited tiers. Note: Used where a user has a restricted service based on their current rights within their package. Eg. User is allowed X plays per month without a subscription. Security Model oAuth • [Plays by Device](https://docs.tunedglobal.com/playback-and-queue/playback-activity/plays-by-device.md): Returns the track ids already played on a specific device for the logged-in user, as a simple string array. This reflects device-scoped play history used when the service enforces per-device play limits on free or limited subscription plans. The response contains identifiers only, not track metadata or remaining allowance counts. Use this when: you need to check on limited plans before starting playback whether a track has already consumed this device's allowance. Combine with Get Play Remaining to show the user how many plays they have left and to gate the play button when the cap is reached. Use Play History when you need rich recently-played metadata for UI display rather than limit enforcement. This endpoint is not yet implemented. Coming soon! Security Model oAuth • [Play History](https://docs.tunedglobal.com/playback-and-queue/playback-activity/play-history.md): Returns the logged-in user's recently played tracks as a list of full track objects, including metadata such as title, artists, release, duration, artwork, and stream availability flags. This is a read-only history feed; it does not start playback or modify play counts. Use this when: you need to populate "Recently played," "Continue listening," or home-screen recirculation widgets without re-fetching each track from the catalog. Refresh after a listening session ends or when the user reopens the app so the list reflects latest activity. Use Get Play Remaining or Plays By Device when you need allowance or device-level limits, not listening history. Security Model oAuth • [Logging](https://docs.tunedglobal.com/playback-and-queue/logging.md): Our Play Logging endpoints are used to support both reporting and analytics services. The amount and type of play events you should submit depends on your reporting and analytics requirements. Our technical team can help determine the appropriate level of logging for your implementation. Play events are also used by our recommendation and search services to improve the end-user experience. We provide both Real-Time and Batch Play Logging endpoints. The batch method is also referred to as Log Offline Plays . Play events can be recorded for: Music tracks Offline plays Content downloads Live video plays The supported play event types include: Start Progress (multiple reporting options are available) End Skip • [Log Play](https://docs.tunedglobal.com/playback-and-queue/logging/log-play.md): Records a single play event for a track on a registered device while the user is online. The body specifies the track, event type (Start, Progress, End, or Skip), playback position, content source, and how audio was delivered (e.g. Stream or Download). Use this when: you need to report active online playback for analytics and royalty reporting. Send Start at play begin, periodic Progress updates, and End or Skip when the user stops or moves on. Reuse the same Guid across events for one track session. Use Log Offline Plays to upload batched events after offline listening; use Log Live Play for live video, not this endpoint. This API is used for reporting plays for licensing reporting and analytics. Consult with Tuned Global to ensure you are logging the correct actions for your Rights Holder Agreements. This API is for logging a single action. Security Model oAuth • [Log Offline Plays](https://docs.tunedglobal.com/playback-and-queue/logging/log-offline-plays.md): Uploads a batch of play events that were saved on a device while the user listened offline. Each item pairs a device timestamp with play details including track id, event type, source, and file source. The response reports whether all logs succeeded and lists any track ids that failed. Use this: For true offline logging When connectivity returns after offline playback. Do not use Log Play for events that occurred without a network link. Save Start, Progress, End, and Skip events locally with accurate When timestamps, then upload them in one request. Check UnsuccessfulTracks in the response and retry failed entries; use Log Play instead for live, online playback reporting. For batch uploading When you want to group logging and batch upload relevant play data. This API is used for reporting plays for licensing reporting and analytics. Consult with Tuned Global to ensure you are logging the correct actions for your Rights Holder Agreements. This API is for logging multiple plays (a batch of plays) and most often used when plays have occurred when the user is offline and then logged when the user is back online. Use Logofflineplays for logging multiple actions and tracks. Note: This creates a log for reporting or analytical purposes Security Model oAuth • [Log Download](https://docs.tunedglobal.com/playback-and-queue/logging/log-download.md): Records that one or more tracks were downloaded on a registered device for the logged-in user. The body is an array of track ids. This records that downloads were saved for the account and plan. It does not deliver files or stream URLs. Use this when: tracks are successfully saved locally for offline listening, not when playback starts or progress is reported. Batch multiple track ids in one request when the user downloads an album or playlist at once. Use Log Offline Plays later to upload playback events from those downloaded files; use Log Play for real-time online streaming analytics. Security Model oAuth • [Log Live Play](https://docs.tunedglobal.com/playback-and-queue/logging/log-live-play.md): Records a live video play event for the logged-in user on a specific device. The body identifies the live show, optional display name, playback position, and event type (Start, Progress, End, or Skip). Use this when: the user is watching live video playback, not for on-demand music or podcast streams, which use Log Play or Log Offline Plays . Send Start when viewing begins, Progress as the user watches, and End or Skip when they leave or jump away. Reuse the same Guid across events in one viewing session so analytics can link the events for the same session. Security Model oAuth • [Streaming & Download](https://docs.tunedglobal.com/playback-and-queue/streaming-and-download.md): Generate secure stream tokens and retrieve time-limited signed stream URLs for music tracks, podcast episodes, and audiobook chapters. Manage offline download entitlements including request, status check, and deletion of offline content. • [Get Replay Gain](https://docs.tunedglobal.com/playback-and-queue/streaming-and-download/stream-token-copy.md): Returns replay gain analysis for a track in the store catalogue so playback can normalize loudness across songs. The response provides separate track- and album-level peak amplitudes and recommended gain adjustments ( REPLAYGAIN_TRACK_PEAK / GAIN and REPLAYGAIN_ALBUM_PEAK / GAIN ) for use by your audio engine. Use this when: applying volume normalization before or during playback. Fetch once when a track enters the queue or cache values with track metadata. Apply track-level gain for singles, shuffle, or playlist playback; prefer album-level gain when playing an album in order so volume stays consistent across the release. Security Model oAuth • [Stream Token](https://docs.tunedglobal.com/playback-and-queue/streaming-and-download/stream-token.md): Issues a short-lived security token that allows streaming a specific track on a registered device for the logged-in user. The response includes a Token string intended for the stream location request body. Use this when: your playback flow requires a short-lived token immediately before requesting the stream URL. Do not cache tokens across tracks or devices. Pass the returned Token value as the JSON body of the stream location POST. Skip this step if your integration obtains stream URLs without a prior token exchange. Security Model oAuth • [Stream Location](https://docs.tunedglobal.com/playback-and-queue/streaming-and-download/stream-location.md): Returns an HLS stream URL for streaming a track or other media item on a registered device for the logged-in user. Supports music, podcast, and audiobook streaming. When your store requires a short-lived token before requesting the stream URL, pass the token string from the stream token endpoint in the request body. Use this when: the user starts or resumes online playback of music, podcasts, or audiobooks and you need the playable URL. Request a stream token first when your integration requires one, then pass it in the body of this call. For podcast-only playback you may use the dedicated podcast stream endpoint instead. Security Model oAuth • [Stream Location Podcast](https://docs.tunedglobal.com/playback-and-queue/streaming-and-download/stream-location-podcast.md): Prepare a stream URL from the CDN for the specified podcast episode for the logged-in user. Returns an HLS stream URL for streaming a podcast episode on a registered device for the logged-in user. The response is a single URL string your player can pass directly to an HLS client. Use this when: the user starts or resumes podcast playback and you need the stream URL. Use this endpoint instead of the general stream location route for podcast episodes. Use the episode's catalog track id and the same device id you register for play logging. Security Model oAuth • [Catalogue Controls](https://docs.tunedglobal.com/catalogue-controls.md): Operator-level endpoints for restricting or configuring access to catalogue content. Blocking an Artist, Track or Album is always a higher priority than an Allowed item - in the case that both records exist, Blocked will prevail. Allowed lists are only applicable to services that have elected to be Allowed Only, i.e. they wish to gate all content before making it available. Please contact your Customer Success Manager at Tuned Global if you wish to discuss this and have your servcie configured appropriately. Albums Apply Blocks and Allowed Lists to album records. Tracks Apply Blocks and Allowed Lists to track records. Artists Apply Blocks and Allowed Lists to artists records, these are applied per Label so you can also manage rights holder requests. • [Albums](https://docs.tunedglobal.com/catalogue-controls/albums.md): Album Catalogue Controls Apply and remove catalogue access controls on albums. Album-level controls override or supplement artist-level controls and can be scoped to territory, client, or user segment. • [Get Allowed Albums](https://docs.tunedglobal.com/catalogue-controls/albums/get-allowed-albums.md): Retrieve a paginated list of albums currently on your store's allowlist — the definition of your visible catalogue on an allowlist-enabled store, not an exception list. Use this when : your store is allowlist-enabled and you need the definitive list of what's visible. On a blocklist store, use Get Blocked Albums instead — the two lists serve opposite catalogue models. Note: This is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Get Blocked Albums](https://docs.tunedglobal.com/catalogue-controls/albums/get-blocked-albums.md): Retrieve a paginated list of albums that have been blocked for this service, so you can audit exactly what's hidden. Use this when : your store runs a blocklist. On an allowlist store, use Get Allowed Albums instead — that list is what actually defines visibility there. Security Model Basic Http Authentication • [Add Albums to Allowlist](https://docs.tunedglobal.com/catalogue-controls/albums/add-albums-to-allowlist.md): Add one or more albums to the service allowlist by UPC, so they become part of the visible catalogue on an allowlist-enabled store. Use this when : your store is allowlist-enabled. On a blocklist store, use Add Albums to Blocklist instead — adding to the wrong list has no effect on what's actually visible. Note: This is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Add Albums to Blocklist](https://docs.tunedglobal.com/catalogue-controls/albums/add-albums-to-blocklist.md): Block one or more albums so they stop appearing anywhere in your store — search, browse, playlists and recommendations all respect the blocklist. Use it to action a takedown or a rights restriction without waiting for a catalogue redelivery. Blocking is by album id and takes effect on the next catalogue reindex, not instantly. Use this when : If it is allowlist-enabled, add the albums you *do* want with Add Albums to Allowlist instead — blocking is always accepted, but on an allowlist store the allowlist is what actually decides visibility. Security Model Basic Http Authentication • [Delete Blocked/Allowed Album](https://docs.tunedglobal.com/catalogue-controls/albums/delete-blocked-allowed-album.md): Remove a single album from your store's blocklist or allowlist to update access controls. Use this when : you're removing one album. For several at once, use Delete Multiple Blocked/Allowed Albums, which takes ids in the body instead of the path. Note: Deleting allowed album is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Delete Multiple Blocked/Allowed Albums](https://docs.tunedglobal.com/catalogue-controls/albums/delete-multiple-blocked-allowed-albums.md): Remove up to 100 albums from your store's blocklist or allowlist in one request, so a bulk rights change can be actioned without a call per album. Removing an album from the blocklist makes it visible again; removing it from the allowlist hides it. Use this when : you are clearing several albums at once. For a single album, use Delete Blocked/Allowed Album, which takes the id on the path instead of in the body. Note: Deleting allowed album is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks.md): Track Catalogue Controls Apply and remove catalogue access controls on individual tracks. Track-level controls offer the most granular restriction capability and take precedence over album and artist controls in the resolution hierarchy. • [Get Blocked Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks/get-blocked-tracks.md): Retrieve a paginated list of tracks that have been blocked for this service, with enough catalogue detail to review each one. Use this when : your store runs a blocklist and you need to audit hidden tracks. On an allowlist store, use Get Allowed Tracks instead. Security Model Basic Http Authentication • [Add Tracks to Blocklist](https://docs.tunedglobal.com/catalogue-controls/tracks/add-tracks-to-blocklist.md): Block individual tracks so they disappear from your store while the rest of their release stays available. Use it for a single-track takedown, an explicit version you cannot carry, or a territory restriction that applies to one recording rather than a whole album. Use this when : the restriction is track-level. Blocking a whole album is one call to Add Albums to Blocklist rather than a list of its track ids. Security Model Basic Http Authentication • [Delete Blocked Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks/delete-blocked-tracks.md): Remove one or more tracks from your store's blocklist so they become available again. Use this when : you're clearing a blocklist entry. On an allowlist store, use Delete Allowed Tracks instead — removing from the wrong list won't change what's actually served. Security Model Basic Http Authentication • [Get Allowed Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks/get-allowed-tracks.md): Retrieve the tracks currently on your store's allowlist, paginated, so you can audit exactly what your service is permitted to serve. On an allowlist store this list is the definition of your catalogue rather than an exception list. Use this when : you need the allowlist itself. To check whether specific ids are still playable, use Validate Tracks — walking this list to find one track is far slower. Note: This is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Add Allowed Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks/add-allowed-tracks.md): Add one or more tracks to the service's allowlist to control which content is accessible within your catalogue. Use this when : your store is allowlist-enabled for both songs and catalogue control. On a blocklist store, use Add Tracks to Blocklist instead. Note: This is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Delete Allowed Tracks](https://docs.tunedglobal.com/catalogue-controls/tracks/delete-allowed-tracks.md): Remove tracks from your store's allowlist so they stop being served. On an allowlist store only allowlisted content is visible, so removing a track here hides it — the mirror image of removing an entry from a blocklist. Use this when : your store is allowlist-enabled for both songs and catalogue. If either setting is not `Allowlist` this endpoint returns 400 with an empty body; use the blocklist endpoints on a blocklist store. Note: This is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Artists](https://docs.tunedglobal.com/catalogue-controls/artists.md): Artist Catalogue Controls Apply and remove catalogue access controls on individual artists. Controls can restrict an artist's catalogue from appearing in specific territories, client applications, or user segments. Use these endpoints to enforce editorial or rights-management policies at the artist level. • [Get Blocked/Allowed Artists](https://docs.tunedglobal.com/catalogue-controls/artists/get-blocked-allowed-artists.md): List the artists currently on your store's blocklist or allowlist, so you can audit exactly which artists are restricted or permitted. Use this when : you need artist-level entries specifically. Set ‘type’ to match your store's model — Blocklist or Allowlist — rather than assuming; passing the type your store doesn't use just returns an empty page, not an error, which is easy to miss. Note: Allowed list is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Add Artists to Block/Allow](https://docs.tunedglobal.com/catalogue-controls/artists/add-artists-to-block-allow.md): Add one or more artists to your store's blocklist or allowlist, so every release, album and track credited to them is hidden or permitted in one action rather than item by item. Use it when a rights decision applies to an artist's whole body of work. Use this when : the restriction is artist-wide. For a single album or a handful of tracks, use the album or track endpoints — those do not cascade to the artist's other content. Note: Adding to allowlist is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Delete Blocked/Allowed Artist](https://docs.tunedglobal.com/catalogue-controls/artists/delete-blocked-allowed-artist.md): Remove a single artist-wide restriction from your store's blocklist or allowlist, reversing whatever Add Artists to Blocklist or Allowlist put in place. Use this when : you're removing one artist. Set `type` to match your store's model (Blocklist or Allowlist) — this is the mirror image of Add Artists to Blocklist or Allowlist. Note: Deleting from allowlist is only relevant if your service is allow enabled Security Model Basic Http Authentication • [Billing, Packages & Subscriptions](https://docs.tunedglobal.com/billing-packages-and-subscriptions.md): The complete monetisation surface: subscription plans, package availability, pricing by country and currency, and payment processing through multiple gateways including Stripe, RevenueCat, and in-app purchases. Use these endpoints to build upgrade flows, manage subscriber state, handle family plan sharing, referral attribution, and integrate with third-party and carrier billing providers. Legacy Integration (TConnect v1) Maintain compatibility with TConnect v1 subscription and billing flows for existing integrations. Merchants Configure and manage merchant accounts, storefronts, and billing relationships on the platform. Packages & Plans Define and retrieve subscription packages, pricing tiers, and plan features available to users. Subscriptions Manage subscriber state — create, modify, cancel, and query active subscriptions for users. Referral and Attribution Track referral codes, attribution events, and conversion data for partner and affiliate programmes. Payments Process payments, handle receipts, and manage payment method records for subscription billing. • [Legacy Integration (TConnect v1)](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1.md): Original telco-facing endpoints for querying subscription status by MSISDN or external ID, tracking listening minutes, registering and validating users, and updating subscription state through the GBilling system. • [Get Subscription Status](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/get-subscription-status.md): Provides the subscription information for a user identified by their mobile number or external user id. Security Model Basic Http Authentication • [Get Listening Minutes](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/get-listening-minutes.md): Retrieve the total listening time in minutes for a specific user within the current month, using the provided identifiers. Security Model Basic Http Authentication • [Update User Tags](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/update-user-tags.md): Updates a user's tags. These tags are typically collected during user onboarding and can later be used to personalize recommendations and suggestions. Security Model Basic Http Authentication • [Update Subscription Status](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/update-subscription-status.md): Updates a user's subscription based on information received from external billing systems. Security Model Basic Http Authentication • [Register a User](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/register-a-user.md): Enables third-party partners to seamlessly register users within the Tuned Global system. By providing essential user details such as name, email, and country, partners can efficiently onboard new users into the platform. Security Model Basic Http Authentication • [Validate a User](https://docs.tunedglobal.com/billing-packages-and-subscriptions/legacy-integration-tconnect-v1/validate-a-user.md): Validates if a user exists in the system using either their phone number (MSISDN) or an external user ID. Security Model Basic Http Authentication • [Merchants](https://docs.tunedglobal.com/billing-packages-and-subscriptions/merchants.md): Merchant account configuration and payment provider details. Retrieve the list of available payment merchants configured for the current application — such as Stripe, and other payment processors — and look up merchant-specific settings that govern payment flows. • [Get All Merchants](https://docs.tunedglobal.com/billing-packages-and-subscriptions/merchants/get-all-merchants.md): Get a list of merchants These are merchants available for the service. Eg. In App Purchase, Stripe, Telco etc. Security Model oAuth • [Packages & Plans](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans.md): Browse available subscription packages, view pricing and plan details by country and currency, retrieve subscription terms and consent gateway information, check plan availability, and request subscription cancellations. Overview Packages and Plans form the core of the Tuned Global entitlement and subscription system. They determine both the capabilities available to a user and the commercial subscription used to obtain those capabilities. A Package defines the rights and features available to a user. Examples might include: Free Freemium Premium Family Enterprise Each Package represents a specific set of entitlements within the platform. Examples include: whether streaming is permitted maximum playback limits available audio quality offline playback playlist creation radio access download permissions API feature availability A Plan is the commercial subscription that grants access to a Package. A Package may contain multiple Plans, allowing the same set of user rights to be purchased in different ways. Examples include: 7 Day Trial Monthly Subscription Annual Subscription Promotional Subscription Telco Bundle Each Plan contains commercial information such as pricing, billing period and the Merchant responsible for processing the subscription. Historically, Plans may also be referred to as Costs within some APIs or CMS interfaces. Merchants Each Plan is associated with a Merchant that is responsible for subscription processing and payment validation. Supported Merchants include, but are not limited to: Apple In-App Purchase (IAP) Google Play Billing Stripe RevenueCat Carrier / Telco Billing Voucher and Gift Code providers Custom payment providers Multiple Merchants may each offer equivalent Plans that grant access to the same Package. Relationships The relationship between these entities is shown below. Package (Premium) │ ├── Monthly Plan │ └── Apple IAP │ ├── Monthly Plan │ └── Google Play │ ├── Monthly Plan │ └── Stripe │ ├── Annual Plan │ └── Stripe │ └── Telco Bundle └── Carrier Billing A user purchases a Plan through a Merchant . Once the purchase has been validated, the user receives the entitlements defined by the associated Package . AutoTune CMS Packages, Plans and Merchants are managed through the AutoTune CMS. Depending on the deployment and user role, management functions are available to either: Super Administrators (Tuned Global) — who have full system administration capabilities. Service Administrators — who manage the Packages, Plans and Merchants available within their own service. • [Get Subscription Terms](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-subscription-terms.md): Get subscription terms based for the current service. Security Model oAuth • [Get Subscription Settings](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-subscription-settings.md): This API is used for interactining with a Telco for billing requirements and will need to be configured for your service. If not configured, this API will produce no response and should not be used. Security Model oAuth • [Get Available Packages](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-available-packages.md): Get packages available to user Security Model oAuth • [Get Package](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-package.md): Get a single package Security Model oAuth • [Get All Costs](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-all-costs.md): Get all package costs. This API will return all costs (SKUs) that are part of. a package. Use this when: Display all available subscription options that exist under a package (i.e. Monthly and Annual plans for a Premium Subscription) Security Model oAuth • [Get Consent Gateway](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-consent-gateway.md): Get consent gateway info for a telco. Note: Used for Teco integrations Security Model oAuth • [Get Package (Alt)](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-package-alt.md): Get a single package by package id Security Model oAuth • [Get All Plans](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-all-plans.md): Get all package costs applicable for user This API is for Telco or external payment methods, not generally for In App Payments. It returns the plans linked to the user's country based on their IP address. If no plans are found for this country, then the API would return all plans linked to the clients home country. The use case would be that you want to display an alternative subscription option for users of a single country but maintain a standard for the rest of the world. Note: The data for this API must be configured for the specific service, otherwise you should not use this API. Security Model oAuth • [Get Plans by Merchant External ID](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/get-plans-by-merchant-external-id.md): Get all package costs applicable for the merchant Security Model oAuth • [Request Cancel Subscription](https://docs.tunedglobal.com/billing-packages-and-subscriptions/packages-and-plans/request-cancel-subscription.md): Request for subscription cancelled Telco only - set comments Security Model oAuth • [Subscriptions](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions.md): Manage the full subscription lifecycle: create subscriptions through Stripe checkout sessions, or in-app purchases, retrieve current state, update plan tier, cancel, and reactivate. Handle family plan sharing with invitation codes, add or remove shared users, and access the Stripe customer portal. These endpoints are the core of any paywall or subscription management screen. • [Create In-App Purchase Subscription](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/create-in-app-purchase-subscription.md): Create or update a subscription purchased via App Store or Play Store Security Model oAuth • [Create Stripe Customer Portal](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/stripe/create-stripe-customer-portal.md): Create stripe customer portal session. This allows a portal stripe view to be created where a user can manage their stripe subscription. Security Model oAuth • [Create Stripe Checkout Session](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/stripe/create-stripe-checkout-session.md): Create stripe session. Generates a stripe checkout session where stripe is available Security Model oAuth • [Family Management](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management.md): Family Plans allow multiple independent user accounts to access your service through a single subscription. Within the Tuned Global platform, a Family Plan is fundamentally a subscription-sharing and billing relationship , rather than a shared user account. One account, known as the Plan Owner , owns and manages the subscription, while one or more Shared Users receive the subscription's entitlements through their own independent accounts. Each user retains their own authentication credentials, profile, playlists, favourites, playback history and other personal data. The only shared element is the subscription itself. Although commonly used for consumer Family Plans, the same capability supports a wide range of group subscription models, including enterprise and business scenarios such as centrally managed Background Music services. Family Plans support: A single billing relationship with multiple independent users. Configurable limits on the number of Shared Users. Invitation-based onboarding using secure, single-use invitation links. Plan Owner management of invitations and Shared Users. Individual users joining and leaving the plan without affecting their personal account data. Enterprise scenarios where organisations centrally manage access for multiple users or locations. The Family Plan feature is enabled through a small number of APIs that manage subscription sharing, invitation generation, invitation acceptance and user management. For implementation details, API reference and integration examples, see the Family Plans Integration Guide. • [New Invitation Code](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/new-invitation-code.md): Generate a new subscription invitation code. Note: This is used for family plans, this must be enabled for your service. Additional documentation is available. Security Model oAuth • [Get Invitation Codes](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/get-invitation-codes.md): Get invitation codes of a subscription. Note: This is used for family plans, this must be enabled for your service. Additional documentation is available Security Model oAuth • [Validate Invitation Code](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/validate-invitation-code.md): Validate a subscription invitation code. This validates a child’s invitation. Note: This is used for family plans, this must be enabled for your service.Additional documentation is available Security Model oAuth • [Get Shared Users](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/get-shared-users.md): Retrieve a list of users sharing the subscription. These are the “children” of the user. Note: This is used for family plans, this must be enabled for your service. Additional documentation is available. Security Model oAuth • [Add Shared User](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/add-shared-user.md): Add user to a subscription plan using invitation code. This adds a child to the user’s family plan. Note: This is used for family plans, this must be enabled for your service.Additional documentation is available. Security Model oAuth • [Delete Shared User](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/family-management/delete-shared-user.md): Remove user from a subscription plan. This removes a child to the user’s family plan. Note: This is used for family plans, this must be enabled for your service. Additional documentation is available. Security Model oAuth • [Check Subscription by Payment GUID](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/check-subscription-by-payment-guid.md): Check if the subscription is enabled by payment request guid. This is a deprecated endpoint and should not be used by new services • [Create MOPE Payment Request](https://docs.tunedglobal.com/billing-packages-and-subscriptions/subscriptions/create-mope-payment-request.md): Create mope payment request. This is a deprecated endpoint and should not be used by new services • [Payments](https://docs.tunedglobal.com/billing-packages-and-subscriptions/payments.md): Initiate and confirm payment transactions: check subscription status by transaction ID, process card payments, in-app purchases, and telco-based purchases. Handle payment method management, send subscription requests to third-party providers, and process webhook events from payment providers. • [Check Subscription Status](https://docs.tunedglobal.com/billing-packages-and-subscriptions/payments/check-subscription-status.md): Check the user's current subscription status. Security Model oAuth • [Request Subscription](https://docs.tunedglobal.com/billing-packages-and-subscriptions/payments/request-subscription.md): This API is used to generate a text message to a MSISDN. The use case is normally that a user attempts a play action without having a subscription and you can then use this API to send a pre configured text message for that user to subscribe to the service. Security Model oAuth • [Purchase Cost](https://docs.tunedglobal.com/billing-packages-and-subscriptions/payments/purchase-cost.md): Subscribe to an available partner package This API is for a Telco billing integration. It requests a user subscription to the Telco party using the MSISDN as a reference. Security Model oAuth • [Tools](https://docs.tunedglobal.com/tools-1-1.md): Developer utilities for working with the Tuned Global API. Skip the boilerplate and test endpoints directly from the documentation. Card Title Add description here • [Silent HMAC Authentication](https://docs.tunedglobal.com/tools-1-1/silent-hmac-authentication.md): A variant of HMAC authentication designed for unauthenticated end-users. Silent HMAC allows a client to make authenticated API calls on behalf of a guest (no login required) by signing requests server-side and injecting the signature transparently. Use Silent HMAC for browse and discovery surfaces where users have not registered or logged in but you still need to enforce application-level access controls. e.g. A common use case is between mobile applications and websites, allowing uses to manage their preferences directly on the website . Where a user is autheticated on the application, you can use this API to enable authentication on the website. • [Catalogue Feed (CF)](https://docs.tunedglobal.com/catalogue-feed-cf.md): Catalogue Feed is a standalone product for running your own music service on top of the fully licensed catalogue managed by Tuned Global. Tuned Global ingests, standardises, and enriches the catalogue metadata and stores the audio and artwork. You build the apps, search, playlisting, and user accounts your listeners actually see. It is the foundation layer, not the finished experience. Catalogue Feed (CF) supports timed releases sent via This is a different model from the Advanced APIs , which power a ready-made listening experience you integrate against. With Catalogue Feed you own the platform and Tuned Global supplies the catalogue underneath it, delivered as a bulk metadata feed plus a single API integration for assets, search, and reporting. Catalogue Feed or Advanced APIs Both give you the same catalogue. They differ in how much of the platform you build yourself. Title Description Title Catalogue Feed Advanced API (Metadata + Services) You build Your own apps, search, playlisting, and user accounts Your client apps against a fully managed platform proivded by Tuned Global. Tuned Global provides Catalogue metadata feed, audio and image assets The full platform: catalogue, search, recommendations, users, playlists, stations, and playback Where the catalogue lives You ingest it and mirror it in your own systems Tuned Global hosts it and you query it on demand Best for Bespoke platforms that need full ownership and control Launching quickly with the least infrastructure and people overhead. If you would rather Tuned Global manage everything for you, the Advanced API is the alternative. Your account executive can help you choose. How the integration works The lifecycle is a loop: ingest the catalogue once, keep it in sync, deliver assets as listeners play them, and report those plays back. Set up the feed once. Tuned Global writes your catalogue JSON to a Tuned Global S3 bucket, your own S3 bucket, or your SFTP server. Ingest the metadata into your systems, applying territory, platform, and label rights as you go. Deliver assets on demand by calling the stream and image endpoints when a listener requests a track or artwork. Log every play so Tuned Global can produce end-of-month reports for rights holders. You choose how much you host yourself, from mirroring the entire catalogue including audio, down to holding metadata only and streaming everything else on demand. The three integration models are covered in Getting started. Platform capabilities The catalogue feed A bulk JSON metadata feed delivered to S3 or SFTP, configured once A full feed for the initial load, then incremental deltas (creates, updates, and deletes) for ongoing synchronisation A downloadable sample catalogue for evaluation, with no feed setup required Catalogue data and sync Pull your assigned catalogue (your shelf) and page through it at ingestion scale Fetch only what has changed since your last request, and mark records as downloaded to track sync state Retrieve full detail for albums, tracks, and songs, including their contributors Look up the metadata for an individual song Resolve duplicate recordings with track disambiguation, looked up by track ID or ISRC Asset delivery Stream audio on demand, with each stream recorded as a billable fetch Retrieve short preview clips for a track Retrieve artwork, resized on the fly by the Image Engine to whatever dimensions your application needs Catalogue search Search the master catalogue by song, album, and label Built for matching, deduplication, and validation inside an ingestion pipeline, rather than end-user search For listener-facing search, use the Search capability in the Advanced APIs Content control Maintain a per-store allowlist of songs to enforce rights and availability Add, check, and remove individual songs, or bulk-upload an allowlist from a spreadsheet Play logging Report a single play with log play, or many at once with log batch play Drives label reporting and royalty accounting Separate from the fetch logs generated automatically on every audio stream, which drive your monthly billing. Both are required: the fetch log alone is not sufficient for label reporting Built as a single delivery API Everything except the bulk feed is served by one versioned delivery API (v5) at api-delivery-connect.tunedglobal.com . Every request carries your StoreId and a Country . Authentication uses your partner access key and secret key: catalogue and asset reads are signed with HMAC, while play logging and bulk uploads use HTTP Basic. The Authentication section covers the scheme each endpoint uses. Because the delivery API is built for server-side ingestion rather than per-user sessions, there is no end-user login or token in this product. You authenticate as the platform, and your platform authenticates your listeners. • [Getting Started](https://docs.tunedglobal.com/catalogue-feed-cf/getting-started.md): Catalogue Feed (CF) The Catalogue Feed (CF) is Tuned Global's solution for clients who want to run their own music platform using our catalogue. Rather than building on top of Tuned Global's white label apps, advanceAPIs or web player. The client takes ownership of the experience, using our catalogue feed as the foundation while building their own applications or apis on top of it. This is the right path if you're building a bespoke music experience, your own apps, search, playlisting, user accounts, and more. Tuned Global handles the ingestion, standardisation, and enrichment of catalogue metadata, along with the storage of audio files and artwork. You handle everything your users see and interact with. As part of your agreement, you send us play activity data so that Tuned Global can produce accurate end-of-month reports for rights holders and labels. Where a client prefers to not manage any APIs or metadata, Tuned Global has a broad range of Advanced API (aAPI) solution that manages these requirements. You can use a Catalogue Feed together with the broader APIs where the use case requires both. Discuss your requirements with the Tuned Global team for correct configuration. Integration Overview You connect to our catalogue delivery system once via a shared data feed, pull down your catalogue metadata and assets, and then report back every time a track is played. That's it. The feed setup is a one-time configuration. Metadata ingestion is your team reading and storing our catalogue data. Asset downloads happen on-demand as users request content. Play logging is the mechanism that drives both label reporting and your monthly billing, so it's important to get right. Step-by-Step Integration Step 1: Feed Setup Configure the JSON feed that Tuned Global will write your catalogue JSON data to. There are three options: Title Description Title Option Who configures it What you provide TG-hosted S3 Tuned Global Nothing, we share the bucket details, access key, and secret key. Client S3 Client YouCreate an S3 bucket in your AWS account and provide us the bucket details and access keys so our CDS can write JSON files to it Your SFTP Client Share SFTP credentials so our system can export JSON files to your server Evaluation / trial? You can download a sample JSON file here — it contains 200 albums from a test catalogue. No feed setup required to get started. Step 2: Metadata Ingestion Once the feed is live, begin consuming the JSON files from S3 or SFTP and persisting the metadata in your system. Key things to handle at this stage: Rights enforcement — apply territory, platform, and label restrictions accurately as you ingest. This is a label requirement and errors here are difficult to correct downstream. Asset references — the JSON contains references to images and audio assets. Use the Asset APIs to download these separately. Step 3: Asset Delivery (Songs & Images) When a user requests a track or artwork, call the relevant API to retrieve the file: Stream API — downloads the audio asset Image API — downloads album or track artwork Important — implicit fetch logging: Every call to the Stream API automatically generates a fetch log on our side. These logs are aggregated at month-end to calculate the per-play fees payable to Tuned Global. No additional action is needed from you here, but you should be aware that each asset download is a billable event. Step 4: Play Logging (LogPlay API) Call the LogPlay API every time a track is streamed by an end user. This is separate from the fetch log in Step 3: Title Description Title Log type Who creates it Purpose Fetch log (Step 3) This iss created automatically by our system on each Stream API call TG's Monthly billing to you Play log (Step 4) Sent explicitly by your system on each user play event Label reporting and royalty distribution Both are required. The fetch log alone, which is automated, is not sufficient for label reporting, you must send the explicit LogPlay event on every user-initiated stream. Once you're familiar with the integration steps above, checkout the integration models below to determine which one best fits your use case and infrastructure requirements. Integration Models The CDS supports three different integration models, Depending on your infrastructure appetite and budget, you can choose how much content you store yourself versus stream on demand from Tuned Global. The three models below go from maximum client control to minimum client storage overhead. Model 1 — Full Storage You store everything: metadata, images, and audio You pull the full catalogue i.e. metadata, artwork, and audio files and host it all on your own infrastructure. Every asset is available locally, so your platform has no dependency on Tuned Global's systems at playback time. The only touchpoint back to Tuned Global is logging each play via our LogPlay API whenever an end user streams a track. Best for clients who need maximum independence, have the storage capacity, and want full control over delivery performance. Model 2 — Store Metadata & Images, Stream Audio On Demand You store metadata and images. Audio is fetched live from Tuned Global when a user presses play. You host the catalogue metadata and artwork, but audio files are never stored on your side, they're delivered by Tuned Global's systems in real time when a user requests a track. Since audio files are by far the largest assets, this significantly reduces your storage costs and infrastructure complexity. As with Model 1, each play must still be logged back to Tuned Global via the LogPlay API as an end user streams a track. Best for clients who want a responsive catalogue experience without the overhead of managing large audio libraries. Model 3 — Store Metadata Only, Stream Everything Else On Demand You store metadata only. Images and audio are both fetched live from Tuned Global when needed. You hold only the catalogue metadata. Artwork and audio are delivered on demand by Tuned Global, meaning images can also be served at any size or resolution your application requires, without you needing to manage image variants. As with all integration models, each play must still be logged back to Tuned Global via tthe LogPlay API API whenever an end user streams a track. Best for clients who want the lightest possible infrastructure footprint and are happy to rely on Tuned Global's delivery systems for all media. • [Search (Catalogue Feed)](https://docs.tunedglobal.com/catalogue-feed-cf/search-catalogue-feed.md): Catalogue Feed search endpoints are optimised for intended integration use cases. The APIs support querying the CF by title, ISRC, artist name, and other identifiers. Use this for catalogue matching, deduplication checks, and validation workflows within an ingestion pipeline. Clients that wish to have more robust client facing search functionality, should utilise the Search functionality in the main group of APIs. Confirm this has been configured for your use with the Tuned Global Customer Success Team • [Catalogue Data](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data.md): Bulk retrieval of catalogue metadata: artists, albums, tracks, and associated attributes. Catalogue Data endpoints are designed for high-throughput ingestion — they support pagination, filtering by last-modified date, and response compression. Use these endpoints to perform initial catalogue seeding and to keep a downstream catalogue mirror in sync. • [Retrieve Tracks for an Album](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-tracks-for-an-album.md): Use this API to retrieve track details about an Album. The album ID {id} is provided within the JSON feed, use that id in your request and retrieve the detailed listing of tracks on that album. Critical Rights Management Please note that this API will also return future releases. It is your responsibility to ensure that your systems will not display future releases to your users prior to their release date along with territorial restrictions as outlined in the CDS Metadata Feed. Explore the response section for fields that are returned in the response. Security Model API Key AND HMAC Authentication • [Retrieve Song Detail](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-song-detail.md): Use this API to retrieve song details. The track or song ID {id} is provided within the JSON feed or by using the API to retrieve an albums track list. Use that id in your request and retrieve the detailed track information. Critical Rights Management Please note that this API will also return future releases. It is your responsibility to ensure that your systems will not display future releases to your users prior to their release date along with territorial restrictions as outlined in the CDS Metadata Feed. Explore the response section for fields that are returned in the response. Security Model API Key AND HMAC Authentication • [Upload Allowed Songs](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/upload-allowed-songs.md): This API is used to control the products that are ingested and made available in your system. A typical use case may be that a Catalogue Delivery Partner (label or aggregator) provides a list of sings where they have both publishing and master rights. These may be the only songs you wish to make available in your system for that deliver partner. You can then use this API to upload a list of songs that are allowed to be made available. When they apprear via the Tuned Global supply chain, these songs will be allowed for this delivery partner. Note: This functionality must be enabled in your system on a label by label basis by Tuned Global personnel. Contact Tuned Global support to discuss this requirement. You will need an excel (.xslx) file to allow songs by label Id. Tuned shall provide the label ids for each delivery partner and youn will use this id in the API request. Where publisher clearance is enabled, these isrcs will be sent to the publisher first before they are allowed into your service. The Excel upload file needs to be in the following format. Security Model API Key AND Basic Http Authentication • [Retrieve album detail](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-album-detail.md): Everything you need to reproduce an album in your own platform: title, UPC, artist, label, release date, artwork, and the per-territory rights that decide where it may be played. Album-level only — call the tracks endpoint for the listing and the contributors endpoint for credits. Use this when : you are ingesting from the delivery feed and need the master record. The Metadata API's Get Album looks similar but returns a store's live catalogue view — this one returns what was delivered to you, territory rights included. Security Model API Key AND HMAC Authentication • [Retrieve track disambiguation](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-track-disambiguation.md): Tells you where the same recording turns up more than once in your feed, so you can collapse the duplicates yourself. Look up by track id and you get the other tracks identified as that same recording, each with a confidence score; look up by ISRC and you get just the rows carrying that code. Everything is limited to the rights holders your client is licensed for, so a track outside them returns nothing at all. Use this when : you are de-duplicating inside an ingestion pipeline. The Metadata API exposes the same lookup at Get track disambiguation for store-facing apps. The logic is identical, but each resolves the rights holders from your own identity — your delivery credentials here, the store there — so the two can return different rows for the same recording. Security Model API Key AND HMAC Authentication Look up by trackId or isrc . If you send both, trackId wins. Sending neither returns 400 rather than an empty list. • [Retrieve album contributors](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-album-contributors.md): Lists the people credited on an album — producers, engineers, writers and performers — with the role each played. Use it to populate a credits screen; the album endpoint already carries a short contributor list, so call this only when you need the complete set. Use this when : you need the album-level credits. For the people credited on one specific recording, call Retrieve track contributors instead — album and track credits are delivered separately and neither implies the other. Security Model API Key AND HMAC Authentication Credits depend on what the rights holder delivered. Older catalogue often carries none, so design the screen to hide cleanly when the list is empty. • [Retrieve track contributors](https://docs.tunedglobal.com/catalogue-feed-cf/catalogue-data/retrieve-track-contributors.md): Lists the people credited on a single track with the role each performed. This is the track-level counterpart to the album contributors endpoint — use it on a now-playing or track-detail screen where only that recording's credits matter. Use this when: you are showing credits for one recording. For the credits on the whole release, call Retrieve album contributors — a person credited on the album does not automatically appear here. Security Model API Key AND HMAC Authentication Track credits and album credits are delivered separately. A person credited on the album will not automatically appear here. • [Asset Delivery](https://docs.tunedglobal.com/catalogue-feed-cf/asset-delivery.md): Streaming endpoints for audio and image binary assets. Use Asset Delivery to download track audio files and artwork images at scale. All asset URLs are authenticated and time-limited. The response includes content-type, file size, and checksum headers for integrity validation. • [Retrieve Image URL](https://docs.tunedglobal.com/catalogue-feed-cf/asset-delivery/retrieve-image-url.md): Our Image API allows you to retrieve high-quality images programmatically. You can use this API with our image engine. More details are available below . Critical Rights Management You must comply with all restrictions provided in your rights within your Catalogue Feed Security Model API Key AND HMAC Authentication • [Image Engine](https://docs.tunedglobal.com/catalogue-feed-cf/asset-delivery/image-engine.md): The same image engine is uded for the Catalogue Feed APIs and the broader range of APIs. Information is here. • [Retrieve Stream URL for a Track](https://docs.tunedglobal.com/catalogue-feed-cf/asset-delivery/retrieve-stream-url-for-a-track.md): This API provides direct access to the signed song URLs, allowing you to integrate music into your backends or the apps with ease. This API facilitates two distinct use cases. The first use case entails requesting access to the music assets for the purpose of storing or ingest them into your own system. This implies that the music files are transmitted to the end user via your system, rather than directly from Tuned Global. In this scenario, there is no need to include any supplementary information in the header. Additionally, the transmission of territory information is not required, as it is assumed that territorial access control will be implemented within your own system. The second use case involves delivering streaming functionality to end users directly from the Tuned Global system, using this API. In this context, it is crucial to consider territorial restrictions and to include additional header information that enhances resilience against URL hijacking. For specifics regarding the usage of session_id information, refer to the details provided below. The signed song URL will only provide you temporary access to the music files. This TTL (Time to live) is measured in seconds and hence you should only request the URL when you need it and then consume it immediately. Session salting Usage notes. Generate a unique GUID for each request for a play (GetStream). Pass this GUID to the GetStreamAPI in a http header with the key called ‘session_id’. The GetStream API will read the value of this session_id key from the header and add its encrypted value to the CDN token when returning the stream location URL. You MUST use the same session_id value that was passed into the GetStream API above, when calling the returned CDN url. As per above this is a key called ‘ session_id ’ within the http header request. It is important to note that the name and value of this session_id key in the http header of the getStream API and CDN url, are case sensitive, the values have to be an exact match. These values are matched to the encrypted token and if they are not identical you will be denied a stream and get a 401 error. See examples below Critical Rights Management You must comply with all restrictions provided in your rights within your Catalogue Feed Security Model HMAC • [Retrieve Preview URL for a Track](https://docs.tunedglobal.com/catalogue-feed-cf/asset-delivery/retrieve-preview-url-for-a-track.md): With the Song Preview API, you can obtain short song preview URLs, perfect for offering music samples, or implementing song previews within your application. Critical Rights Management You must comply with all restrictions provided in your rights within your Catalogue Feed Security Model API Key AND HMAC Authentication • [Play Logging](https://docs.tunedglobal.com/catalogue-feed-cf/play-logging.md): Play Logging — Catalogue Feed Report play events from CDS-integrated downstream playback systems back to Tuned Global. Play logs are required for royalty accounting and reporting. Submit one event per completed or significant play interaction with the required metadata (track ID, user ID, timestamp, duration played). • [Log a Play for the Specified Track](https://docs.tunedglobal.com/catalogue-feed-cf/play-logging/log-a-play-for-the-specified-track.md): Log a play for the specified track. A typical Play log has the following PlayLogType sequence Plain text LogPlayType:Start, Seconds: 0 LogPlayType:Progress, Seconds: 30 LogPlayType:End, Seconds: 167 (total song duration) LogPlayType:Skip, Seconds: 19 (Point at which the track was skipped) LogPlayType:Start, Seconds: 0 LogPlayType:Progress, Seconds: 30 LogPlayType:End, Seconds: 167 (total song duration) LogPlayType:Skip, Seconds: 19 (Point at which the track was skipped) This API is used for reporting plays for licensing reporting and analytics. Consult with Tuned Global to ensure you are logging the correct actions for your Rights Holder Agreements. This API is for logging a single action. Security Model API Key AND Basic Http Authentication • [Log Plays in Batches](https://docs.tunedglobal.com/catalogue-feed-cf/play-logging/log-plays-in-batches.md): This API is used for reporting plays for licensing reporting. Consult with Tuned Global to ensure you are logging the correct actions for your Rights Holder Agreements. This API is for logging multiple plays (a batch of plays). Security Model API Key AND Basic Http Authentication • [Metadata Feed](https://docs.tunedglobal.com/catalogue-feed-cf/metadata-feed.md): Incremental and full metadata feed endpoints for change detection and synchronisation. The metadata feed delivers a time-ordered stream of catalogue changes (creates, updates, deletes) so that downstream systems can apply deltas without re-ingesting the full catalogue. Use the full feed for initial setup, it will then switch to an incremental feeds for ongoing synchronisation. Precedence Whenever information is conveyed through this Catalogue Delivery Specification, it represents a complete and accurate declaration concerning the Album and Track metadata. This implies that such information should be regarded as self-contained and authoritative, thereby replacing any existing data related to these products within your system. Manage your Risk It is critical that you process files in date/time order from oldest to newest. This is to ensure integrity of data in updates and takedowns. You must take special note of item 2.22 - action. This item denotes whether to treat this product (album) as a new product, an update to your existing data or a takedown. Rights Management One of the most critical items to manage is the availability of a product, being an Album or a Track. Making a product available prior to its live date or not removing it after an end date is a significant breach of your licensing agreement and should be treated as a high level risk. As a general overview the logic to manage rights and availability is: The following provides instructions on when to make a track OR an album available to your audience. Only where there is a tick against all the elements should you make an album or track available. Please keep in mind that rights to Albums and Tracks are distinct. The below instructions depend on whether Tuned Global is providing Publishing data or not. NOTE: REFERENCE TO NOT MAKING AN ALBUM OR TRACK AVAILABLE (LIVE) MEANS, ALL ASPECTS OF AN ALBUM AND OR TRACK. THIS INCLUDES PREVIEWS, ARTWORK, TITLES INCLUDING ALL METADATA. TERRITORIES AND RIGHTS The JSON feed for the Catalogue Delivery Service may contain territories for which you are not licensed. It is important that within your own system you capture which territories are licensed for a recordLabel (2.32 - labelOwnerID) and then ensure that you only display these products on availability of rights AND having a license for this record label for this territory. Where you wish TUNED to process and manage all rights transparently, we can do so via an Advanced API service. RULE 1 Check if Action (2.22) is a TAKEDOWN If YES, no further analysis is required, remove the entire album and all its tracks immediately R ULE 2 Check Metadata below, depending on your use case Where Tuned Global is NOT providing Publishing Data Title Album Level Rights 2.36 distFlg =0 ✓ 2.38 rights Start Date <=Today and End Date >=Today for each territory. ✓ Album Notes: If no Tracks (below) have rights, you should not display the Album information as no tracks will be available to end users. Title Track Level Rights 2.38 Rights (Album Level) Start Date <=Today and End Date >=Today for each territory. ✓ 2.57 distFlg =0 ✓ 2.60 rights Start Date <=Today and End Date >=Today for each territory. (Applicable to Master rights only). ✓ Where Tuned Global IS providing Publishing Data Title Album Level Rights 2.36 distFlg =0 ✓ 2.38 rights Start Date <=Today and End Date >=Today for each territory. ✓ Album Notes: Publishing Data is only applicable at a track level. If no Tracks (below) have both Master and Publishing rights for a territory, you should not display the Album information as no tracks will be available to end users . Title Track Level Rights 2.38 Rights (Album Level) Start Date <=Today and End Date >=Today for each territory. ✓ 2.57 distFlg =0 ✓ 2.60 rights Start Date <=Today and End Date >=Today for each territory. (Applicable to Master rights only). ✓ 2.72 pubRights A territory is provided. Note, this means that you can make available for the provided territories only, this should be subject to the end user’s territory. (Applicable to Publishing rights only). ✓ • [JSON Specification](https://docs.tunedglobal.com/catalogue-feed-cf/metadata-feed/json-specification.md): Metadata Structure Each JSON file has a maximum of 1000 albums. Where there are more than 1000 albums per update, then multiple JSON files will be delivered. The naming structure of the JSON files is as follows; TG_ {yyyyMMdd}_{HHmmss}.json The metadata delivered within the JSON file is as follows; OBJECTS (Overview) Title Description Title Description Title SECTION DESCRIPTION Sub Objects Ref REQ? Album releaseId 2.21 Y Album action 2.22 Y Album upc 2.23 Y Album grid 2.24 N Album type 2.25 Y Album title display 2.26 Y Album title language 2.26 Y Album artistId 2.27 Y Album artistName display 2.28 Y Album artistName language 2.28 Y Album genre genreName 2.29 N Album genre subGenreName 2.29 N Album contributors id 2.69 N Album contributors role 2.69 N Album contributors name 2.69 N Album discCount 2.30 Y Album trackCount 2.31 Y Album recordLabel labelOwnerId 2.32 Y Album recordLabel labelOwnerName 2.32 Y Album subRecordLabel labelOwnerId 2.33 N Album subRecordLabel labelOwnerName 2.33 N Album displayLabel 2.34 Y Album provisionProducerLine 2.35 N Album distFlg 2.36 Y Album originalReleaseDate 2.37 Y Album rights startDate 2.38 Y Album rights endDate 2.38 Y Album rights country 2.38 Y Album rights type 2.38 Y Album mediaFlg 2.39 Y Album explicit 2.40 Y Album contentLanguage 2.70 N Album custom1 2.41 N Album custom2 2.42 N Album custom3 2.43 N Album custom4 2.44 N Album custom5 2.45 N Album imageLocation 2.46 N Track discNumber 2.47 Y Track trackNumber 2.48 Y Track trackId 2.49 Y Track grid 2.50 N Track isrc 2.51 Y Track duration 2.52 Y Track title display 2.53 Y Track title language 2.53 Y Track artistId 2.54 Y Track artistName display 2.55 Y Track artistName language 2.55 Y Track genre genreName 2.56 Y* Track genre subGenreName 2.56 Y* Track distFlg 2.57 Y Track displayLabel 2.58 Y Track contributors id 2.69 N Track contributors role 2.69 N Track contributors name 2.69 N Track provisionProducerLine 2.59 N Track rights startDate 2.60 Y Track rights endDate 2.60 Y Track rights country 2.60 Y Track rights type 2.60 Y Track mediaFlg 2.61 Y Track explicit 2.62 Y Track audioLocation 2.68 N Track contentLanguage 2.71 N Track pubRights 2.72 N Track custom1 2.63 N Track custom2 2.64 N Track custom3 2.65 N Track custom4 2.66 N Track custom5 2.67 N DESCRIPTION ALBUM Title Description 2.21 releaseId TunedGlobal`s unique album identifier ID. Use this ID for access to album assets such as artwork (via content delivery API) FORMAT: String MANDATORY: Title 2.22 action This object will describe the delivery. Options are New, Update or Takedown. Recommended best practice is; New Action: Add all metadata to your system as a new item. Best practice is to test for the existence of this ID, even though it is denoted as new. Note that to make an album or track active on your system you must still check the Album Rights (2.38) and Track Rights (2.60) and ensure that you are complying with the startDate to give people access to the asset. Note: This is a critical requirement of your licensing, otherwise you will be in Breach of your agreement. Update Action; Treat an update as a New, being to delete the metadata in your system and re-insert as per a New. This includes fetching new objects as they may have been updated by the label. Notes An update can be a takedown in that the endDate in rights has been updated to be a past, today or future date. You must check these dates and manage the availability of the products on your system. This means that if an endDate is past or today, then the album or track should NOT be available. If it is a future date, you must create a system to make this product unavailable at that time. TUNED will not send through an additional update for this item. To make an album or track active on your system you must still check the Album Rights (2.38) and Track Rights (2.60) and ensure that you are complying with the startDate to give people access to the asset. Rights management is a critical requirement of your licensing, otherwise you will be in Breach of your agreement. If an Takedown, you can assume you can remove all the rights to this item immediately and make it unavailable on your system. I=INSERT (NEW), U=UPDATE, X=TAKEDOWN FORMAT: String MANDATORY: Y Title 2.23 upc The UPC that identifies this release. Note that a UPC is not unique, multiple labels may deliver the same UPC. This is for information only, rely on the releaseId as a unique property. FORMAT: String MANDATORY: Y Title 2.24 grid The GRID that identifies this release. FORMAT: String MANDATORY: N Title 2.25 type Denotes the type of release, Album, Single, EP etc. FORMAT: String MANDATORY: Y Title 2.26 title This is an array denoting the title of the album. The array supports multiple languages. The objects are; display: The Title to display language: denoting the ISO code for the language. display FORMAT: String MANDATORY: Y language FORMAT: String (ISO 3166-1 alpha-2) MANDATORY: Y Title 2.27 artistId Denotes the artist ID. Use this ID to build your own Artist Data System. FORMAT: String MANDATORY: Y Title 2.28 artistName This is an array denoting the name of the artist. The array supports multiple languages. The objects are; display: The Artist Name to display language: denoting the ISO code for the language. display FORMAT: String MANDATORY: Y language FORMAT: String (ISO 3166-1 alpha-2) MANDATORY: Y Title 2.29 genre This is an array denoting the genre of the album. The array supports multiple genres. The objects are; genreName: A primary genre for this album subGenreName: denoting a sub genre to the primary genre. genreName FORMAT: String MANDATORY: N subGenreName FORMAT: String MANDATORY: N Title 2.30 discCount Denotes number of discs for this Album. FORMAT: Number MANDATORY: Y Title 2.31 trackCount Denotes number of tracks for this Album. FORMAT: Number MANDATORY: Y Title 2.32 recordLabel This is a parent tag denoting the record label of the album. The objects are; labelOwnerID: This is the TG id of delivering party labelOwnerName: denoting the name of the delivering party. labelOwnerId FORMAT: Number MANDATORY: Y labelOwnerName FORMAT: String MANDATORY: Y Title 2.33 subRecordLabel This is a parent tag denoting the delivering sub label. This is used where the main delivering party is an aggregator (i.e. Merlin) and the actual label is then the sub record label. The objects are; labelOwnerID: This is the TG id of delivering party labelOwnerName: denoting the name of the delivering party labelOwnerId FORMAT: Number MANDATORY: Y labelOwnerName FORMAT: String MANDATORY: Y Title 2.34 displayLabel Display label (eg. LaFace records). FORMAT: String MANDATORY: Y Title 2.35 provisionProducerLine C Line for display only FORMAT: String MANDATORY: Y Title 2.36 distFlg Denotes general availability of this album for display purposes. Streaming rights are at a track level. 0 = Album Distribution is available, 1 = Album Distribution is NOT available FORMAT: String MANDATORY: Y Title 2.37 originalReleaseDate Denotes original release date of album. If unavailable the release date will be used. FORMAT: String, yyyy-mm-dd MANDATORY: Y Title 2.38 rights This is an array denoting the availability of the album. Granular streaming rights are at a track level. The array supports multiple territories. The objects are; startDate: the start date for access, sent with UTC offset endDate: the end date for access country: the applicable territory in ISO 3166 format(WW denotes worldwide) type: the usage type such as streaming or download, streaming is the default. startDate FORMAT: String, YYYY-MM-DD MANDATORY: Y endDate FORMAT: String, YYYY-MM-DD MANDATORY: Y country FORMAT: String, (ISO 3166-1 alpha-2 includes WW) MANDATORY: Y type FORMAT: String MANDATORY: Y Title 2.39 mediaFlag Denotes if the Album is a video or audio album 1: Audio only 2: Video only FORMAT: Number MANDATORY: Y Title 2.40 explicit Denotes if the album contains explicit lyrics Options are True or False FORMAT: String MANDATORY: Y Title 2.41 custom1 Custom field for client (eg. BPM or key). This custom field is currently used to send BPM FORMAT: String MANDATORY: Title 2.42 custom2 Custom field for client (eg. BPM or key) FORMAT: String MANDATORY: N Title 2.43 custom3 Custom field for client (eg. BPM or key) FORMAT: String MANDATORY: N Title 2.44 custom4 Custom field for client (eg. BPM or key) FORMAT: String MANDATORY: Title 2.45 custom5 Custom field for client (eg. BPM or key) FORMAT: String MANDATORY: N Title 2.46 imageLocation No longer used. Use the Content Delivery API to request the asset FORMAT: String MANDATORY: N Title 2.70 contentLanguage This denotes the language of the performance. It is only made available if it is explicitly sent through by the Licensor, otherwise this will be NULL FORMAT: String (ISO 639-2 alpha-3) MANDATORY: N TRACK (List) Title 2.47 discNumber The disc number of this release FORMAT: Number MANDATORY: Y Title 2.48 trackNumber The track number of this release. Note if there are 2 discs the numbering will continue as a total track count, not per disc. FORMAT: Number MANDATORY: Y Title 2.49 trackId TunedGlobal`s unique track identifier ID. Use this ID for access to track assets such as audio or video files (via content delivery API) FORMAT: String MANDATORY: Y Title 2.50 grid The GRID that identifies this track. FORMAT: String MANDATORY: N Title 2.51 isrc The ISRC that identifies this track. Note that an ISRC is not unique, labels may deliver the same ISRC on different albums. This is for information only, rely on the trackId as a unique property. FORMAT: String MANDATORY: Y Title 2.52 duration The duration of the track in seconds FORMAT: Number MANDATORY: Y Title 2.53 title This is an array denoting the title of the track. The array supports multiple languages. The objects are; display: The Title to display and Language: denoting the ISO code for the language. display FORMAT: String MANDATORY: Y language FORMAT: String (ISO 3166-1 alpha-2) MANDATORY: Y Title 2.54 artistID Denotes the artist ID. Use this ID to build your own Artist Data System. FORMAT: String MANDATORY: Y Title 2.55 artistName This is an array denoting the name of the artist. The array supports multiple languages. The objects are; display: The Artist Name to display and Language: denoting the ISO code for the language. display FORMAT: String MANDATORY: Y language FORMAT: String (ISO 3166-1 alpha-2) MANDATORY: Y Title 2.56 genre This is an array denoting the genre of the track. The array supports multiple genres. The objects are; genreName: A primary genre for this album and subGenreName: denoting a sub genre to the primary genre. genreName FORMAT: String MANDATORY: N subGenreName FORMAT: String MANDATORY: N Title 2.57 distFlg Denotes general availability of this album for display purposes. Streaming rights are at a track level. 0 = Album Distribution is available, 1 = Album Distribution is NOT available FORMAT: String MANDATORY: Y Title 2.58 displayLabel Display label (eg. LaFace records). FORMAT: String MANDATORY: Y Title 2.59 provisionProducerLine P Line for display only FORMAT: Number MANDATORY: Y Title 2.60 rights This is an array denoting the availability of a track in regards to its Master Rights only (not Publishing Rights). Granular streaming rights are at a track level. The array supports multiple territories and usage types. The objects are; startDate: the start date for access, sent with UTC offset endDate: the end date for access country: the applicable territory in ISO 3166 format (WW denotes worldwide) type: the usage type such as streaming or download, streaming is the default. Dates are formatted as follows: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) startDate FORMAT: String, YYYY-MM-DDThh:mm:ssTDZ MANDATORY: Y endDate FORMAT: String, YYYY-MM-DDThh:mm:ssTDZ MANDATORY: Y country FORMAT: String, (ISO 3166-1 alpha-2 includes WW) MANDATORY: Y type FORMAT: String MANDATORY: Y Title 2.61 mediaFlag Denotes if the Album is a video or audio album 1: Audio only 2: Video only FORMAT: Number MANDATORY: Y Title 2.62 explicit Denotes if the track contains explicit lyrics Options are True or False FORMAT: String MANDATORY: Y Title 2.63 custom1 Custom field for client (Currently used to provide BPM) FORMAT: String MANDATORY: N Title 2.64 custom2 Custom field for client (eg. Tag Value, such as mood) FORMAT: String MANDATORY: N Title 2.65 custom3 Custom field for client (eg. Tag Value, such as mood) FORMAT: String MANDATORY: N Title 2.66 custom4 Custom field for client (eg. Tag Value, such as mood, usually used for LyricFind id, if licensed) FORMAT: String MANDATORY: N Title 2.67 custom5 Custom field for client (eg. Tag Value, such as mood) FORMAT: String MANDATORY: N Title 2.68 audioLocation No longer used. Use the Content Delivery API to request the asset FORMAT: String MANDATORY: N Title 2.69 contributors This is an array denoting the contributor. The array supports multiple contributors. The objects are; id: artist id if the name exist in the artist table, else the value will be 0 role: contributor role name: contributor name id FORMAT: Number MANDATORY: N role FORMAT: String MANDATORY: N name FORMAT: String MANDATORY: N Title 2.71 contentLanguage This denotes the language of the performance. It is only made available if it is explicitly sent through by the Licensor, otherwise this will be NULL FORMAT: String (ISO 639-2 alpha-3) MANDATORY: N Title 2.72 pubRights This is an array denoting the availability of a track in regards to its Publishing Rights only (not Master Rights). The array supports multiple territories and is only displayed for a territory where it has been denoted that 100% of Publishing Rights are available. The object within the array is; country: the applicable territory in ISO 3166 format country FORMAT: String, (ISO 3166-1 alpha-2) MANDATORY: N • [JSON Example](https://docs.tunedglobal.com/catalogue-feed-cf/metadata-feed/json-example.md): An example of a CF JSON delivery is below; JSON { "releaseId": "94069589", "action": "I", "upc": "07043280046019", "grid": "", "type": "Single", "title": [ { "display": "Mammagutt", "language": "EN" } ], "artistId": "508974", "artistName": [ { "display": "Carina Dahl", "language": "EN" } ], "genre": [ { "genreName": "Pop", "subGenreName": null } ], "contributors": [ { "id": 508974, "role": "Main Artist", "name": "Carina Dahl" } ], "discCount": 1, "trackCount": 1, "recordLabel": { "labelOwnerId": 1004, "labelOwnerName": "Universal" }, "subRecordLabel": { "labelOwnerId": 1004, "labelOwnerName": "Universal" }, "displayLabel": "Tylden & Co", "provisionProducerLine": "2020 Hells Bells Records ℗ 2020 Hells Bells Records, distributed by Universal Music AS, Norway", "distFlg": "1", "originalReleaseDate": "2020-10-16", "rights": [ { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "CI", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "CM", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "SN", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "ML", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "GA", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "AU", "type": "streaming" } ], "mediaFlg": 1, "explicit": "False", "imageLocation": null, "contentLanguage": "ENG", "custom1": null, "custom2": null, "custom3": null, "custom4": null, "tracks": [ { "discNumber": 1, "trackNumber": 1, "trackId": "94069590", "grid": "", "isrc": "NOGTH2046010", "duration": 167000, "title": [ { "display": "Mammagutt", "language": "EN" } ], "artistId": "508974", "artistName": [ { "display": "Carina Dahl", "language": "EN" } ], "genre": [ { "genreName": "Pop", "subGenreName": null } ], "contributors": [ { "id": 508974, "role": "Main Artist", "name": "Carina Dahl" } ], "distFlg": "1", "displayLabel": "Tylden & Co", "provisionProducerLine": "2020 Hells Bells Records ℗ 2020 Hells Bells Records, distributed by Universal Music AS, Norway", "rights": [ { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "CI", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "CM", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "AU", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "GA", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "ML", "type": "streaming" }, { "startDate": "2020-10-16T00:00:00+11:00", "endDate": "9999-01-01T00:00:00+11:00", "country": "SN", "type": "streaming" } ], "mediaFlg": 1, "explicit": "False", "audioLocation": null, "contentLanguage": "ENG", "pubRights": [ { "country": "AU" }, { "country": "US" }, { "country": "GB" }, { "country": "NZ" } ], "custom1": "132.6", "custom2": null, "custom3": null, "custom4": null, "custom5": null } ] } • [Tools](https://docs.tunedglobal.com/catalogue-feed-cf/tools.md): Catalogue Feed Tools Utilities for validating feed payloads, testing connectivity, and diagnosing integration issues specific to the Catalogue Feed API. Includes a payload schema validator and a connectivity probe endpoint.