MusicAtlas API (1.1.1)

Download OpenAPI specification:

The MusicAtlas API provides access to similarity-based track recommendations, real-time track addition and analysis, and track metadata summaries. These endpoints enable developers to build applications powered by MusicAtlas open search infrastructure. This API requires an API key, available at https://musicatlas.ai/developer/request-key.




Pricing

Free tier — 100 requests/day — free

Pro tier — 10,000 requests/day — $179/mo

Enterprise — Contact for access




Changelog

v1.1.1 — Example improvements

v1.1.0 — Partner API added

v1.0.3 — Similar artists added

v1.0.2 — Playlist endpoints added

v1.0.1 — Similar tracks multi added

v1.0.0 — Initial public API

Public API

Endpoints available to all MusicAtlas developers for search, discovery, recommendations, and track intelligence.

Find similar tracks with canonical resolution and catalog-aware fallback

Returns up to 20 similar tracks for a given artist + track using MusicAtlas catalog-aware search and canonical track resolution.

Behavior:

  • By default, the endpoint may auto-resolve the input to an in-catalog canonical artist/title (using internal reference data) to improve match accuracy.
  • If the input is not confidently resolvable, the endpoint validates that the track corresponds to a known released recording (for non-embed flows) and may return a “Did you mean?” suggestion.
  • If embed is set, validation and resolution steps are skipped for predictable embed behavior.

If the track is not in the MusicAtlas catalog, the response includes in_catalog: false, a message, and suggest_add: true and may include a suggestion.

Authorizations:
bearerAuth
query Parameters
embed
integer
Enum: 0 1
Example: embed=1

Optional. When set (and not "0"), skips validation and resolution steps. Useful for embeds.

Request Body schema: application/json
required
artist
required
string
track
required
string
embed
integer
Enum: 0 1

Optional. When set, skips validation and resolution steps. Useful for embeds.

Responses

Request samples

Content type
application/json
{
  • "artist": "Wildlife Control",
  • "track": "Better to Love",
  • "embed": 1
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "source_track": {
    },
  • "matches": [
    ],
  • "hashtags": [
    ]
}

Find similar artists from a seed artist using artist-level similarity search

Returns a ranked list of artists similar to a given seed artist.

This endpoint is useful for:

  • artist adjacency and discovery experiences
  • “more artists like this” product features
  • editorial research and exploration workflows
  • artist recommendation layers in consumer or enterprise music products

Behavior:

  • The request accepts a single seed artist name.
  • The response returns a ranked list of similar artists with similarity scores.
  • Returned artist objects are intentionally lightweight and optimized for discovery workflows.
  • The exact field set may evolve over time as the artist similarity layer expands.

This endpoint is best used when your product needs artist-level proximity, rather than track-level recommendation or full catalog search.

Authorizations:
bearerAuth
Request Body schema: application/json
required
artist
required
string

Seed artist name used to generate similar-artist results.

Responses

Request samples

Content type
application/json
{
  • "artist": "Radiohead"
}

Response samples

Content type
application/json
{
  • "artists": [
    ],
  • "elapsed_sec": 0.42
}

Submit a released track for asynchronous ingestion and analysis

Submits a track to MusicAtlas for ingestion, audio analysis, embedding generation, and metadata enrichment.

This endpoint is useful for:

  • adding new released tracks to the MusicAtlas catalog
  • powering “search this track even if it is not yet indexed” workflows
  • enabling delayed ingestion with frontend progress polling
  • expanding catalog coverage from developer applications

Behavior:

  • The caller submits an artist and title.
  • If accepted, the endpoint returns a job_id for asynchronous processing.
  • Clients should poll /add_track_progress using that job_id until the job reaches done or error.
  • If the track is already present in the catalog, the endpoint returns a conflict response.
  • This endpoint is intended for known released tracks rather than arbitrary local audio uploads.

This endpoint starts an asynchronous workflow and does not block until analysis is complete.

Authorizations:
bearerAuth
Request Body schema: application/json
required
artist
required
string

Artist name of the track to ingest.

title
required
string

Track title to ingest.

Responses

Request samples

Content type
application/json
{
  • "artist": "Caroline Polachek",
  • "title": "So Hot You’re Hurting My Feelings"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "job_id": "addtrack_20260404_8f3a1d92",
  • "message": "Track accepted for processing"
}

Check the status of an asynchronous track analysis job

Returns the current status of a previously submitted /add_track job.

This endpoint is useful for:

  • polling asynchronous ingestion jobs
  • updating frontend progress bars
  • showing users queue state and estimated wait time
  • resuming workflows once track analysis is complete

Behavior:

  • The caller provides a job_id returned by /add_track.
  • The response reports the current job state, completion percentage, optional ETA, and a status message.
  • Typical job states are queued, started, done, and error.
  • Clients should poll this endpoint until the job reaches either done or error.

This endpoint is designed for real-time product workflows where track analysis is handled asynchronously rather than as a blocking request.

Authorizations:
bearerAuth
query Parameters
job_id
required
string
Example: job_id=addtrack_20260404_8f3a1d92

Job identifier returned by /add_track.

Responses

Response samples

Content type
application/json
Example
{
  • "status": "queued",
  • "percent_complete": 5,
  • "eta_seconds": 42,
  • "message": "Job is queued and waiting for processing"
}

Describe a catalog track with audio, genre, and influence data

Returns a structured track summary for a known MusicAtlas catalog track.

The response includes:

  • track identity and platform metadata
  • music characteristics such as BPM, key, and mode
  • audio characteristics such as loudness, perceived intensity, and frequency density
  • genre classification
  • possible influence signals

This endpoint is useful for enrichment, explainability, editorial tooling, recommendation tuning, and any workflow that needs more than simple similarity results.

Authorizations:
bearerAuth
Request Body schema: application/json
required
artist
required
string

Artist name of the track to describe.

track
required
string

Track title of the track to describe.

Responses

Request samples

Content type
application/json
{
  • "artist": "Radiohead",
  • "track": "Creep"
}

Response samples

Content type
application/json
{}

Recommend playlists by mood or geography, or look up playlists by exact artist or track match

Returns MusicAtlas universal playlists using one of two modes:

  • Recommendation mode: provide tags and/or geo to get up to 3 relevant playlists
  • Lookup mode: provide artist_name and/or track_name without tags or geo to return all exact playlist matches

This endpoint is useful for:

  • playlist recommendation modules
  • mood- or geography-based music discovery flows
  • universal playlist search across MusicAtlas editorial collections

Behavior:

  • At least one of tags, geo, artist_name, or track_name is required.
  • If tags and/or geo are present, the endpoint runs in recommendation mode and returns up to 3 playlists.
  • If only artist_name and/or track_name are present, the endpoint runs in exact lookup mode and returns all matching playlists.
  • Matching is performed against playlist metadata such as title, description, and tags, and in lookup mode may also use exact track membership.
  • artist_name and track_name are normalized for exact matching to avoid accidental partial collisions.

Notes:

  • Lookup mode items include a type field such as Genre, Region, Mood, or Activity.
  • Recommendation mode items omit type and are optimized for lightweight display.
Authorizations:
bearerAuth
Request Body schema: application/json
required
Any of
tags
required
string

Descriptive tags, moods, or themes used for recommendation mode.

geo
string

Geographic reference used for recommendation mode.

artist_name
string

Artist name used for exact playlist membership lookup mode.

track_name
string

Track title used for exact playlist membership lookup mode.

Responses

Request samples

Content type
application/json
Example
{
  • "tags": "chill, rhythmic, sunny",
  • "geo": "west africa"
}

Response samples

Content type
application/json
Example
{}

Get the featured Playlist of the Week

Returns the currently featured MusicAtlas universal playlist, updated weekly. Ideal for highlighting editorial picks or homepage displays. Works on all major streaming platforms.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "playlist": {}
}

Get a random MusicAtlas playlist

Returns one randomly selected MusicAtlas universal playlist. Useful for casual discovery or "I'm feeling lucky" experiences. Works on all major streaming platforms.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "playlist": {}
}

Generate multi-seed track recommendations from liked and disliked inputs

Returns ranked track recommendations based on a blended set of liked tracks, with optional disliked tracks used to steer results away from unwanted directions.

This endpoint is useful for:

  • custom recommendation engines
  • playlist continuation flows
  • taste profiling from a small seed set
  • “more like these, but not like those” product experiences

Behavior:

  • All input tracks must already exist in the MusicAtlas catalog.
  • liked_tracks is required and acts as the positive recommendation seed set.
  • disliked_tracks is optional and acts as a negative signal to reduce unwanted matches.
  • The response includes ranked matches plus contextual summaries of the liked seed tracks.
  • Results may be returned from cache when an equivalent seed combination was recently computed.

This public-facing endpoint returns safe, non-sensitive recommendation data including platform links, genres, hashtags, and track-level context suitable for downstream product use.

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
Array of objects non-empty

List of positive seed tracks used to generate recommendations.

Array of objects

Optional negative seed tracks used to reduce unwanted recommendations.

Responses

Request samples

Content type
application/json
{
  • "liked_tracks": [
    ],
  • "disliked_tracks": [
    ]
}

Response samples

Content type
application/json
{}

Partner API

Endpoints available to approved MusicAtlas enterprise partners for catalog integrations, analytics, and catalog management. Requires enterprise API access and catalog-level authorization.

Get statistics for a partner catalog

Returns high-level statistics for a partner catalog.

This endpoint provides lightweight analytics about a catalog without loading track objects or performing per-track enrichment.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "catalog_uuid": "8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90",
  • "catalog": {
    }
}

Get catalog-level details for a partner catalog

Returns catalog-level metadata and contact details for a partner catalog.

This endpoint provides partner-facing catalog metadata such as contact emails, phone number, notes, and last-updated timestamp.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "catalog_uuid": "8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90",
  • "details": {
    }
}

Get tracks in a partner catalog

Returns the tracks in a partner catalog, with optional pagination.

Track rows may be enriched with lyric availability and related metadata.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

page
integer >= 1
Example: page=1

Page number for paginated results.

per_page
integer [ 1 .. 500 ]
Example: per_page=50

Number of tracks to return per page.

refresh
integer
Enum: 0 1
Example: refresh=1

When set to 1, forces refresh of the cached catalog display payload.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "catalog_uuid": "8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90",
  • "catalog": {
    }
}

Find tracks in a partner catalog

Finds one or more tracks within a partner catalog using a simple text query.

This endpoint performs a lightweight text lookup across the catalog's canonical track input file. Matching is case-insensitive and uses loose token matching: all query tokens must appear somewhere in the combined artist/title string.

This endpoint is intended for locating tracks within a catalog and is distinct from specialized partner search endpoints such as reference, lyric, or prompt search.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

Request Body schema: application/json
required
query
required
string

Text query used to find matching tracks in the partner catalog. The alias field q is also accepted.

q
string

Alias for query.

limit
integer [ 1 .. 50 ]

Maximum number of results to return.

Responses

Request samples

Content type
application/json
{
  • "query": "Coldplay Yellow",
  • "q": "Coldplay Yellow",
  • "limit": 10
}

Response samples

Content type
application/json
{
  • "success": true,
  • "catalog_uuid": "8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90",
  • "query": "Coldplay Yellow",
  • "limit": 10,
  • "count": 1,
  • "results": [
    ]
}

Search a partner catalog by reference track

Searches a partner catalog for similar tracks using a reference track defined by artist and title.

This endpoint proxies to the MusicAtlas match engine using the requested catalog as the partner-specific match scope. Results are returned in a partner-safe response shape and limited to the top 20 matches.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

Request Body schema: application/json
required
artist
required
string

Artist name of the reference track.

track
required
string

Title of the reference track.

source
string

Optional client/source label used for partner event logging. Example values might include "web", "syncsearch", "embed", or a partner-defined integration name.

Responses

Request samples

Content type
application/json
{
  • "artist": "Jon Hopkins",
  • "track": "Emerald Rush",
  • "source": "web"
}

Response samples

Content type
application/json
{}

Search a partner catalog by lyric text

Searches a partner catalog for tracks matching a lyric text query.

This endpoint proxies to the partner lyric search service, deduplicates results by artist/title, and returns up to 20 matching tracks.

Requires enterprise partner API access and authorization for the requested catalog.

Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog.

Request Body schema: application/json
required
query
required
string

Lyric text query used to search within the partner catalog.

source
string

Optional client/source label used for partner event logging. Example values might include "web", "embed", "syncsearch", or a partner-defined integration name.

Responses

Request samples

Content type
application/json
{
  • "query": "heart",
  • "source": "web"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "catalog_uuid": "8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90",
  • "query": "heart",
  • "results": [
    ]
}

Search a partner catalog with a natural-language prompt

Searches a partner catalog using a natural-language prompt.

This endpoint wraps the MusicAtlas prompt assist workflow and constrains the search scope to the authorized partner catalog. It supports prompt-based catalog discovery using natural language, optional image inputs, and prompt-assist controls such as mode, max_results, fallback behavior, and seed policy.

Notes:

  • The caller must provide catalog_uuid.
  • The auth guard validates that the API key is authorized for that catalog.
  • The validated catalog UUID is then injected into the backend request.
  • Client-supplied catalog identifiers are ignored.
  • Experimental prompt-assist modes are not exposed in the partner API.
  • Response card shapes may evolve as prompt assist expands, but common track result fields are documented below for integration guidance.
  • Internal model-specific similarity fields are removed from the public response.
Authorizations:
bearerAuth
query Parameters
catalog_uuid
required
string
Example: catalog_uuid=8f6d8b74-9c21-4c41-b5d5-77c6c6c52e90

Unique identifier for the partner catalog being requested.

Request Body schema: application/json
required
prompt
required
string

Natural-language prompt describing the desired sound, mood, scene, or lyrical concept.

mode
string
Default: "auto"
Enum: "auto" "search" "recommend"

Prompt assist mode.

max_results
integer [ 1 .. 50 ]
Default: 20

Maximum number of track results to return.

Array of strings or strings

Array of image URLs or image payload inputs supported by prompt assist.

include_source
boolean
Default: true

Whether to include the source track in result cards when applicable.

fallback_enabled
boolean
Default: true

Whether prompt assist may fall back to broader or more mainstream seed selection when the initial interpretation is too sparse.

allow_same_artist
boolean
Default: false

Whether results may include tracks by the same artist as the selected seed.

detect_lyrics
boolean
Default: true

Whether prompt assist may detect lyric intent from the prompt.

seed_policy
string
Default: "first"
Enum: "first" "random" "rotate"

How prompt assist should choose among seed candidates.

source
string
Default: "partner_api"

Optional client/source label used for partner event logging. Example values might include "web", "embed", "syncsearch", or a partner-defined integration name.

Array of objects

Optional conversation or refinement history passed through to prompt assist.

lyrics
string

Optional lyric query override.

seed_artist
string

Optional explicit seed artist.

seed_title
string

Optional explicit seed track title.

include_tags
Array of strings

Optional tag filters passed through to prompt assist.

exclude_tags
Array of strings

Optional exclusion tag filters passed through to prompt assist.

must_have_rights
boolean

Optional rights filter flag passed through to prompt assist.

Responses

Request samples

Content type
application/json
{
  • "prompt": "moody cinematic techno end sequence",
  • "mode": "auto",
  • "max_results": 20,
  • "images": [ ],
  • "include_source": true,
  • "fallback_enabled": true,
  • "allow_same_artist": false,
  • "detect_lyrics": true,
  • "seed_policy": "first",
  • "source": "web",
  • "history": [
    ],
  • "lyrics": "\"breakup\" OR \"moving on\"",
  • "seed_artist": "Jon Hopkins",
  • "seed_title": "Emerald Rush",
  • "include_tags": [
    ],
  • "exclude_tags": [
    ],
  • "must_have_rights": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "human_summary": "Running a sonic search for moody cinematic techno, anchoring on Jon Hopkins for end sequence vibes.",
  • "cards": [
    ],
  • "meta": {
    },
  • "catalog_uuid": "6a8e73ba-cf85-4053-a867-dfa56b79c72b",
  • "prompt": "moody cinematic techno end sequence"
}
↑ Top