Download OpenAPI specification:
API for YourMusic streaming service. Provides endpoints for user management, music catalog access, and streaming.
Internal endpoint used by blackbox probes to report public reachability for an edge.
| edge_key required | string Stable edge node key. |
| source required | string <= 128 characters Unique blackbox probe source name. |
| source_type required | string Value: "blackbox" Only blackbox observations are accepted by this endpoint. |
| status required | string Enum: "REACHABLE" "UNREACHABLE" |
| checked_at required | string <date-time> Probe timestamp. Must be fresh and not beyond the configured future tolerance. |
| http_status | integer or null [ 100 .. 599 ] |
| latency_ms | integer or null >= 0 |
| failure_reason | string or null <= 512 characters |
object or null |
{- "edge_key": "edge-eu-central-1-a",
- "source": "aws-blackbox-eu-central-1",
- "source_type": "blackbox",
- "status": "UNREACHABLE",
- "checked_at": "2026-06-29T22:14:06Z",
- "latency_ms": 5001,
- "failure_reason": "timeout",
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stream_edge_id": "91518389-73aa-4074-b673-10132c50d7b6",
- "source": "string",
- "source_type": "blackbox",
- "status": "REACHABLE",
- "checked_at": "2019-08-24T14:15:22Z"
}Client credentials token endpoint accepting JSON (preferred) or form data.
| grant_type required | string Value: "client_credentials" |
| client_id required | string |
| client_secret required | string |
grant_type=client_credentials&client_id=your-client-id&client_secret=your-client-secret
{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 0
}Issues an access token for the specified user/device using client credentials.
| user_id required | string <uuid> ID of the end user for whom the access token is issued. |
| deviceId required | string <uuid> Unique identifier of the device the access token is bound to. |
{- "deviceId": "a9b66a51-3cb6-4e66-bb94-675e83380fe5"
}{- "token_type": "Bearer",
- "expires_in": 600,
- "token": "token-string"
}Returns a paginated list of users. Supports the page query parameter. Page size is server-configured and defaults to 50 when not overridden by deployment configuration.
| page | integer >= 1 Default: 1 Page number (1-based). |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "links": { },
- "meta": { }
}Creates a new user.
| first_name required | string |
| last_name required | string |
| email required | string <email> |
{- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Returns details of a specific user.
| user_id required | string <uuid> ID of the user. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Updates details of a specific user.
| user_id required | string <uuid> ID of the user. |
| first_name | string |
| last_name | string |
string <email> |
{- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Issues an access token for the specified user/device using client credentials.
| user_id required | string <uuid> ID of the end user for whom the access token is issued. |
| deviceId required | string <uuid> Unique identifier of the device the access token is bound to. |
{- "deviceId": "a9b66a51-3cb6-4e66-bb94-675e83380fe5"
}{- "token_type": "Bearer",
- "expires_in": 600,
- "token": "token-string"
}Resolves the authentication path for the given tenant/email pair.
Standard users receive path: otp; if the address is valid, a code is sent.
Accounts that use password authentication receive path: password and no OTP is sent.
Invalid tenants return the generic path: otp response and send nothing.
The OTP response does not reveal whether a standard user email exists.
Rate limits apply per IP (throttle) and per email (min interval between sends, max sends per hour).
| tenant required | string <= 255 characters Tenant slug that scopes OTP issuance and verification. |
| email required | string <email> <= 255 characters Email address to send the one-time code to. |
| locale | string Enum: "en" "nl" "fr" "de" Preferred language for the OTP email (en, nl, fr, de). Defaults to en if omitted. |
{- "tenant": "acme",
- "email": "user@example.com",
- "locale": "en"
}{- "path": "otp",
- "message": "If that email address is valid, a verification code has been sent."
}Verifies an email OTP in a tenant context and returns a user session. Existing users receive access and refresh tokens. If no user exists for that tenant/email, an onboarding token is returned.
| tenant required | string <= 255 characters |
| email required | string <email> <= 255 characters |
| code required | string <= 32 characters |
| device_id required | string <uuid> |
| onboarding_token | string Optional token from social callback when verification is required. |
{- "tenant": "acme",
- "email": "user@example.com",
- "code": "12345",
- "device_id": "550e8400-e29b-41d4-a716-446655440000"
}{- "token_type": "Bearer",
- "access_token": "string",
- "expires_in": 3600,
- "refresh_token": "string",
- "refresh_expires_in": 2592000,
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "status": "SUBSCRIBED",
- "has_email_setup": true
}
}Authenticates an account that is eligible for password sign-in. On success, returns the same session response shape as OTP login.
| tenant required | string <= 255 characters |
| email required | string <email> <= 255 characters |
| password required | string <= 255 characters |
| device_id required | string <uuid> |
{- "tenant": "acme",
- "email": "user@example.com",
- "password": "account-password",
- "device_id": "550e8400-e29b-41d4-a716-446655440000"
}{- "token_type": "Bearer",
- "access_token": "string",
- "expires_in": 3600,
- "refresh_token": "string",
- "refresh_expires_in": 2592000,
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "status": "SUBSCRIBED",
- "has_email_setup": true
}
}Consumes a one-time onboarding token from email OTP authentication and creates the user (or reuses existing) and issues a session.
| onboarding_token required | string |
| first_name required | string <= 255 characters |
| last_name required | string <= 255 characters |
{- "onboarding_token": "plain-token-from-authenticate-response",
- "first_name": "Jane",
- "last_name": "Doe"
}{- "token_type": "Bearer",
- "access_token": "string",
- "expires_in": 3600,
- "refresh_token": "string",
- "refresh_expires_in": 2592000,
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "status": "SUBSCRIBED",
- "has_email_setup": true
}
}Exchanges a valid refresh token for a new access token and a new refresh token. The previous refresh token can no longer be used.
| refresh_token required | string <= 512 characters |
{- "refresh_token": "plain-refresh-token-from-authenticate-or-previous-refresh"
}{- "token_type": "Bearer",
- "access_token": "string",
- "expires_in": 3600,
- "refresh_token": "string",
- "refresh_expires_in": 2592000,
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "status": "SUBSCRIBED",
- "has_email_setup": true
}
}Ends the session for the given refresh token. Returns 204 with no body. Safe to call with an invalid or already-used token.
| refresh_token required | string <= 512 characters |
{- "refresh_token": "plain-refresh-token-to-revoke"
}{- "message": "The given data was invalid.",
- "errors": {
- "refresh_token": [
- "The refresh token field is required."
]
}
}Generates a secure, short-lived token that allows an already authenticated user to link a social provider in a browser flow. The user should call this before opening the /redirect endpoint.
{- "intent_token": "string",
- "expires_in": 0
}Removes a linked social identity from the authenticated user. A user can only unlink a provider if they have another way to log in (email/OTP setup OR another social provider).
| provider required | string Enum: "google" "apple" "facebook" |
Returns profile data for the authenticated caller.
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Updates editable profile fields for the authenticated caller.
| first_name | string |
| last_name | string |
{- "first_name": "string",
- "last_name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Confirms an authenticated account deletion request using an account-deletion OTP. The account is immediately disabled and anonymized, sessions are revoked, and remote cleanup plus the deletion receipt email and hard purge are completed asynchronously.
| code required | string [ 1 .. 10 ] characters |
| locale | string Enum: "en" "nl" "fr" "de" |
{- "code": "12345",
- "locale": "en"
}{- "message": "Invalid authentication code."
}Sends an account-deletion OTP to the authenticated user's current email address.
| locale | string Enum: "en" "nl" "fr" "de" |
{- "locale": "en"
}{- "message": "Verification code sent."
}Starts an authenticated email-change confirmation flow for the supplied email address.
| email required | string <email> |
| locale | string Enum: "en" "nl" "fr" "de" |
{- "email": "new@example.com"
}{- "message": "Verification code sent."
}Confirms an authenticated email change using a confirmation code.
| email required | string <email> |
| code required | string |
{- "email": "new@example.com",
- "code": "12345"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "status": "SUBSCRIBED",
- "linked_providers": [
- "apple",
- "google"
], - "has_email_setup": true,
- "subscription_ends_at": "2019-08-24T14:15:22Z",
- "pm_type": "string",
- "pm_last_four": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Creates a hosted checkout session for a subscription product. Optionally accepts custom redirect URLs that must match configured allowed patterns.
| product_slug required | string Slug of the subscription product to checkout |
| success_url | string <uri> Optional custom redirect URL for successful payment. Must match one of the configured allowed redirect URL patterns. If not provided, the default success_url is used. |
| cancel_url | string <uri> Optional custom redirect URL for cancelled payment. Must match one of the configured allowed redirect URL patterns. If not provided, the default cancel_url is used. |
{- "product_slug": "basic",
}{
}Composed home page. Auth optional; guests send X-Tenant (slug), authenticated use user's tenant.
Returns the composed home page. Authentication is optional. Authenticated — tenant is derived from the user. Guest — X-Tenant header (tenant slug) is required. If Authorization is present but token is invalid or expired, returns 401 INVALID_AUTH_TOKEN.
| X-Tenant | string Example: acme-records Tenant slug (e.g. acme-records). Required when unauthenticated; ignored when authenticated. |
{- "page": {
- "id": "home",
- "schema_version": 1,
- "revision": 3,
- "generated_at": "2026-03-10T12:00:00.000000Z"
}, - "modules": [
- {
- "id": "featured-playlists",
- "type": "playlist_carousel",
- "layout": "horizontal_scroll",
- "name_key": "home.featured_playlists",
- "name_params": null,
- "actions": {
- "see_all": null
}, - "content_source": {
- "strategy": "editorial_manual",
- "strategy_version": "1",
- "execution_mode": null
}, - "items": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440001",
- "type": "playlist",
- "name": "Summer Hits",
- "artwork_url_template": "https://cdn.example.com/_p/{preset}/artwork/550e8400-e29b-41d4-a716-446655440001.jpg",
- "track_id": "660e8400-e29b-41d4-a716-446655440001",
- "metadata": { }
}, - {
- "id": "550e8400-e29b-41d4-a716-446655440002",
- "type": "playlist",
- "name": "Chill Vibes",
- "artwork_url_template": null,
- "track_id": null,
- "stream_url": null,
- "metadata": { }
}
]
}, - {
- "id": "continue-listening",
- "type": "continue_listening",
- "layout": "list",
- "name_key": "home.continue_listening",
- "name_params": null,
- "actions": {
- "see_all": null
}, - "content_source": {
- "strategy": "continue_listening",
- "strategy_version": "1",
- "execution_mode": null
}
}
]
}Search across artists, releases, tracks, and playlists. Auth optional; playlists only returned when authenticated.
Search across artists, releases, tracks, and playlists from the local database. Authentication is optional — catalog results (artists, releases, tracks) are always returned. Playlists are only included when authenticated (user's own + public within the same tenant).
| q required | string non-empty Search query string |
| limit | integer [ 1 .. 20 ] Default: 5 Maximum number of results per entity type |
{- "artists": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440001",
- "name": "The Beatles",
- "is_followed": true
}
], - "releases": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440002",
- "title": "Abbey Road",
- "artist_name": "The Beatles",
- "release_type": "album",
- "year": 1969,
- "explicit": false,
- "is_saved": false
}
], - "tracks": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440003",
- "title": "Come Together",
- "artist_name": "The Beatles",
- "duration_seconds": 259,
- "explicit": false,
- "is_liked": true
}
], - "playlists": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440004",
- "playlist_name": "Beatles Greatest Hits",
- "public": true
}
]
}User library — liked tracks, saved releases, followed artists, saved playlists. All endpoints require authentication.
Returns a cursor-paginated list of tracks the user has liked, ordered by most recently added.
| cursor | string Cursor for pagination |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "saved_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "next_cursor": "string",
- "prev_cursor": "string",
- "per_page": 0
}
}Returns a cursor-paginated list of releases the user has saved, ordered by most recently added.
| cursor | string |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "release_type": "string",
- "year": 0,
- "explicit": true,
- "track_count": 0,
- "is_saved": false,
- "saved_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "next_cursor": "string",
- "prev_cursor": "string",
- "per_page": 0
}
}Returns a cursor-paginated list of artists the user follows, ordered by most recently added.
| cursor | string |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "is_followed": false,
- "followed_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "next_cursor": "string",
- "prev_cursor": "string",
- "per_page": 0
}
}Returns owned playlists and saved public playlists, cursor-paginated and ordered by most recently added.
| cursor | string |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string",
- "is_owner": true,
- "saved_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "next_cursor": "string",
- "prev_cursor": "string",
- "per_page": 0
}
}Returns a listing of playlists matching the given keyword. Includes owned and public playlists.
| keyword required | string Keyword to match against playlist name. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string"
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Returns a listing of playlists owned by the user.
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string"
}
]Creates a new playlist for the user.
| playlist_name required | string |
| public | boolean |
{- "playlist_name": "string",
- "public": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string"
}Returns details of a specific playlist.
| playlist_id required | string <uuid> ID of the playlist. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string"
}Updates details of an owned playlist.
| playlist_id required | string <uuid> ID of the playlist. |
| playlist_name | string |
| public | boolean |
{- "playlist_name": "string",
- "public": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "playlist_name": "string",
- "public": true,
- "track_count": 0,
- "artwork_url_template": "string",
- "subtitle": "string"
}Returns tracks for a specific playlist.
| playlist_id required | string <uuid> ID of the playlist. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "playlist_track_id": "c19f1243-9460-4cce-bd98-3a2a9f77e1b8",
- "order": 0
}
]Adds a single track to the end of the playlist.
| playlist_id required | string <uuid> ID of the playlist. |
| track_id required | string ID of the track to add. |
{- "track_id": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "playlist_track_id": "c19f1243-9460-4cce-bd98-3a2a9f77e1b8",
- "order": 0
}Replaces all tracks in the playlist with the provided set.
| playlist_id required | string <uuid> ID of the playlist. |
required | Array of objects |
{- "tracks": [
- {
- "track_id": "string",
- "order": 0
}
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "playlist_track_id": "c19f1243-9460-4cce-bd98-3a2a9f77e1b8",
- "order": 0
}
]Reorders a track and shifts other tracks accordingly.
| playlist_id required | string <uuid> |
| playlistTrackId required | string <uuid> |
| order required | integer >= 1 |
{- "order": 1
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "playlist_track_id": "c19f1243-9460-4cce-bd98-3a2a9f77e1b8",
- "order": 0
}Get paginated releases for an artist, ordered by year descending.
| id required | string <uuid> Artist UUID |
| page | integer >= 1 Default: 1 |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "release_type": "string",
- "year": 0,
- "explicit": true,
- "track_count": 0,
- "is_saved": false
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "total": 0
}
}Search for artists using the aggregator service.
| q required | string Search terms |
| page | integer >= 1 Page number |
| pageSize | integer [ 10 .. 50 ] Number of items per page |
{- "estimatedTotalItems": 0,
- "page": 0,
- "expectedPageSize": 0,
- "results": [
- {
- "id": 0,
- "name": "string",
- "popularity": 0,
- "score": 0
}
]
}Get detailed information about a specific artist.
| artist_id required | string ID of the artist |
{- "status": "string",
- "version": "string",
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}
}Get releases for a specific artist.
| artist_id required | string ID of the artist |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| type | string Enum: "album" "single" "video" Release type |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
| page | integer >= 1 Page number |
| pageSize | integer [ 10 .. 50 ] Number of items per page |
{- "status": "string",
- "version": "string",
- "releases": {
- "page": 0,
- "pageSize": 0,
- "totalItems": 0,
- "releases": [
- {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": "string",
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "slug": "string"
}
]
}
}Browse artists by letter.
| letter required | string Letter to browse by |
{- "status": "string",
- "version": "string",
- "artists": {
- "page": 0,
- "pageSize": 0,
- "totalItems": 0,
- "artist": [
- {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}
]
}
}Get a release by ID from the local catalog.
| id required | string <uuid> Release UUID |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "release_type": "string",
- "year": 0,
- "explicit": true,
- "track_count": 0,
- "is_saved": false
}Get paginated tracks for a release, ordered by disc and track number.
| id required | string <uuid> Release UUID |
| page | integer >= 1 Default: 1 |
| page_size | integer [ 1 .. 50 ] Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false,
- "track_number": 0,
- "disc_number": 0
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "total": 0
}
}Search for releases using the aggregator service.
| q required | string Search terms |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| excludeExplicitContent | boolean Exclude explicit content |
| artistId | string Artist ID |
| page | integer >= 1 Page number |
| pageSize | integer [ 10 .. 50 ] Number of items per page |
{- "estimatedTotalItems": 0,
- "page": 0,
- "expectedPageSize": 0,
- "results": [
- {
- "id": 0,
- "title": "string",
- "subtitle": "string",
- "upc": "string",
- "explicitContent": true,
- "trackCount": 0,
- "year": 0,
- "type": "string",
- "availableFor": [
- "string"
], - "artist": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "label": {
- "id": 0,
- "name": "string"
}, - "packages": [
- {
- "id": 0,
- "name": "string",
- "price": {
- "currencyCode": "string",
- "rrp": "string"
}, - "formats": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "popularity": 0,
- "score": 0
}
]
}Get detailed information about a specific release.
| release_id required | string ID of the release |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
{- "release": {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}
}Get tracks for a specific release.
| release_id required | string ID of the release |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
{- "page": 0,
- "pageSize": 0,
- "totalItems": 0,
- "tracks": [
- {
- "id": 0,
- "stream_id": "173fd1b7-72c4-44c4-9244-55a0a167a352",
- "payload": "string",
- "title": "string",
- "version": "string",
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "artist_image": "string",
- "cover_art": "string",
- "trackNumber": 0,
- "duration": 0,
- "explicitContent": true,
- "isrc": "string",
- "type": "string",
- "release": {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}, - "discNumber": 0,
- "number": 0,
- "download": {
- "releaseDate": "string",
- "previewDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}, - "adSupportedStreaming": {
- "releaseDate": "string"
}
}
]
}Get detailed information about multiple releases.
| releaseids required | string Comma-separated list of release IDs |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| showErrors | boolean Show errors |
| type | string Enum: "album" "single" "video" Release type |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
{- "items": {
- "releases": [
- {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}
], - "errors": [
- { }
]
}
}Get a track by ID from the local catalog.
| id required | string <uuid> Track UUID |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "artist_name": "string",
- "artwork_url_template": "string",
- "duration_seconds": 0,
- "explicit": true,
- "is_liked": false
}Search for tracks using the aggregator service.
| q required | string Search terms |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| excludeExplicitContent | boolean Exclude explicit content |
| artistId | string Artist ID |
| page | integer >= 1 Page number |
| pageSize | integer [ 10 .. 50 ] Number of items per page |
{- "estimatedTotalItems": 0,
- "page": 0,
- "expectedPageSize": 0,
- "results": [
- {
- "id": 0,
- "stream_id": "173fd1b7-72c4-44c4-9244-55a0a167a352",
- "payload": "string",
- "title": "string",
- "version": "string",
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "artist_image": "string",
- "cover_art": "string",
- "trackNumber": 0,
- "duration": 0,
- "explicitContent": true,
- "isrc": "string",
- "type": "string",
- "release": {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}, - "discNumber": 0,
- "number": 0,
- "download": {
- "releaseDate": "string",
- "previewDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}, - "adSupportedStreaming": {
- "releaseDate": "string"
}
}
]
}Get detailed information about a specific track.
| track_id required | string ID of the track |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
{- "track": {
- "id": 0,
- "stream_id": "173fd1b7-72c4-44c4-9244-55a0a167a352",
- "payload": "string",
- "title": "string",
- "version": "string",
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "artist_image": "string",
- "cover_art": "string",
- "trackNumber": 0,
- "duration": 0,
- "explicitContent": true,
- "isrc": "string",
- "type": "string",
- "release": {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}, - "discNumber": 0,
- "number": 0,
- "download": {
- "releaseDate": "string",
- "previewDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}, - "adSupportedStreaming": {
- "releaseDate": "string"
}
}
}Get detailed information about multiple tracks.
| trackids required | string Comma-separated list of track IDs |
| usageTypes | string Enum: "download" "stream" Usage types (download or stream) |
| showErrors | boolean Show errors |
| imageSize | integer Enum: 33 50 100 180 182 200 350 500 800 Image size |
{- "items": {
- "tracks": [
- {
- "id": 0,
- "stream_id": "173fd1b7-72c4-44c4-9244-55a0a167a352",
- "payload": "string",
- "title": "string",
- "version": "string",
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "artist_image": "string",
- "cover_art": "string",
- "trackNumber": 0,
- "duration": 0,
- "explicitContent": true,
- "isrc": "string",
- "type": "string",
- "release": {
- "id": 0,
- "title": "string",
- "version": "string",
- "type": "string",
- "barcode": "string",
- "year": 0,
- "explicitContent": true,
- "artist": {
- "id": 0,
- "name": "string",
- "sortName": "string",
- "slug": "string",
- "image": "string",
- "bio": {
- "text": "string"
}
}, - "slug": "string",
- "cline": "string",
- "pline": "string",
- "image": "string",
- "label": {
- "id": 0,
- "name": "string"
}, - "licensor": {
- "id": 0,
- "name": "string"
}, - "popularity": 0,
- "duration": 0,
- "trackCount": 0,
- "download": {
- "releaseDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": null,
- "description": null
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}
}, - "discNumber": 0,
- "number": 0,
- "download": {
- "releaseDate": "string",
- "previewDate": "string",
- "packages": [
- {
- "id": 0,
- "description": "string",
- "price": {
- "currencyCode": "string",
- "recommendedRetailPrice": "string"
}, - "formats": [
- {
- "id": 0,
- "description": "string"
}
]
}
]
}, - "subscriptionStreaming": {
- "releaseDate": "string"
}, - "adSupportedStreaming": {
- "releaseDate": "string"
}
}
], - "errors": [
- { }
]
}
}Registers a 'play' event for a track with start and end positions.
| track_id required | string <uuid> ID of the track. |
| from required | integer >= 0 The starting second of the play event. |
| to required | integer >= 0 The ending second of the play event. Must be greater than 'from'. |
| reached_end_of_the_track | boolean Default: false Whether the track was played until the end. |
{- "track_id": "89443c0f-6172-4ccb-98e3-b20b8a4e4aba",
- "from": 0,
- "to": 0,
- "reached_end_of_the_track": false
}Allows sending multiple play events in a single request, useful for offline sync.
required | Array of objects [ 1 .. 1000 ] items |
{- "events": [
- {
- "track_id": "89443c0f-6172-4ccb-98e3-b20b8a4e4aba",
- "from": 0,
- "to": 0,
- "reached_end_of_the_track": false,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}Returns an HLS manifest from the streaming server using a stream ID.
| stream_id required | string <uuid> Stream ID used to fetch the HLS manifest. |
#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:6 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:6.000, segment0.ts #EXTINF:6.000, segment1.ts #EXT-X-ENDLIST