Free Music APIs in 2026 — Compared
Four keyless APIs, three separate problems, and one that free does not solve.
For identity — canonical artists, releases and recordings with stable IDs: MusicBrainz. For presentation — artwork and 30-second previews: iTunes Search or Deezer. For lyrics: nothing free is both good and legitimate — see below.
Music is the one media category where the obvious API is the wrong starting point. In November 2024 Spotify removed audio-features, audio-analysis, recommendations, related-artists and preview URLs for newly registered applications — the exact endpoints that powered a decade of playlist-generator side projects and BPM-sorted running mixes. Existing apps kept access; new ones do not get it. Meanwhile Genius, which everyone reaches for when they want lyrics, returns only snippets, because it does not hold reproduction rights to the words either.
So the useful question is not which API is best, but which of three problems you have. Identity — knowing that these two rows are the same recording — is solved well and for free by MusicBrainz. Presentation — artwork and a clip a user can hear — by iTunes Search and Deezer. Lyrics is not solved for free at all, and pretending otherwise is how projects end up with a takedown notice. Live status for everything below is on the music category page, measured as described in our methodology.
Comparison
| API | Free tier | Auth | Rate limit | Best for |
|---|---|---|---|---|
| MusicBrainz | Free, unmetered | None (User-Agent required) | 1 req/s per IP | Canonical IDs, deduplication |
| iTunes Search | Free, unmetered | None | ~20 req/min per IP | Artwork, podcast feed lookup |
| Deezer | Free catalog; OAuth for user data | None (server-side only) | ~50 req / 5 s per IP | Search, BPM, 30-second previews |
| Lyrics.ovh | Free, hobby project | None | Unpublished | Demos only — see the caveat |
The providers
1. MusicBrainz
Free tier: Free, no key, no signup — a nonprofit foundation running on donated hardware
Auth: None
Rate limit: 1 request/second per IP, enforced
Coverage: Artists, release groups, releases, recordings, works, labels and the relationships between all of them, with stable MBIDs on every entity
Best for: Canonical identity — deduplicating a library, matching a scraped tracklist to real releases
MusicBrainz is the ID space the rest of the open music ecosystem is keyed on, and that is the reason to use it. MBIDs are the join key for Cover Art Archive, ListenBrainz, AcoustID and most open music tooling, so store the MBID next to every artist, release and recording from your first migration — retrofitting MBIDs onto a table of free-text artist names later is a fuzzy-matching problem, and those never have clean answers. Two things stop your very first request. A missing or generic User-Agent gets you blocked, not throttled: the API wants a header identifying your application with a version and a contact, and default agents like python-requests, axios and Go-http-client are rejected outright, so people blame their query syntax for a header problem. And it returns XML by default — append fmt=json to every request. One request per second means looping over 500 recordings takes eight minutes, so use the browse endpoints, which return 100 linked entities per call, with inc to pull relationships in the same request. This is a background enrichment job, not a user-facing lookup.
2. iTunes Search API
Free tier: Free, no key, no signup, no terms click-through
Auth: None
Rate limit: Roughly 20 requests/minute per IP, undocumented and enforced silently
Coverage: Apple's public catalog — music, podcasts, movies, TV, audiobooks and App Store apps, with album artwork and 30-second previews
Best for: Artwork, podcast feed resolution, fast search boxes with zero setup
Ancient, effectively undocumented, and still the thing every podcast client on the internet calls to resolve a show name to its RSS feed URL. Apple maintains it for affiliate partners: no versioning, no changelog, no status page, no support channel. It has worked for well over a decade, which is the only assurance you get. The artwork trick is worth the whole integration: results carry an artworkUrl100 ending in 100x100bb.jpg, and string-replacing that segment with 600x600bb or 1000x1000bb makes the CDN serve the larger asset. Undocumented, works everywhere, and you should still fall back to the original URL if the upsized one 404s. Two other traps: the response Content-Type is text/javascript, a JSONP-era leftover that strict typed deserializers in some Java, .NET and Swift stacks refuse to parse — read the body as bytes. And the rate limit is enforced by silently returning zero results rather than a 429, making an empty resultCount ambiguous: genuine miss, or throttling. Back off when results suddenly go empty.
3. Deezer public API
Free tier: Free catalog access with no key at all; user libraries and playlist writes need OAuth
Auth: None
Rate limit: About 50 requests per 5 seconds per IP, undocumented
Coverage: Search across tracks, albums, artists, playlists and podcasts, plus charts and genres — with ISRC codes, BPM, explicit flags, album art at four sizes and 30-second preview MP3s
Best for: Music search boxes and preview players where you want structured metadata without an OAuth dance
The comparison is what sells Deezer. Spotify's Web API demands an OAuth client and token refresh for even a public search; Apple Music demands a paid developer account and signed JWTs. Deezer needs a URL. The catch that costs everyone a day: there are no CORS headers, so browser fetch calls fail cross-origin and nothing client-side fixes it. Every browser integration needs a server-side proxy, and people routinely discover this after building an entire UI against a dev server with CORS checks disabled. Quota errors arrive as a JSON error object at HTTP 200, so status-code-based handling sails straight past them and you cache the error as data; check for an error key before parsing. Region restriction produces partial objects rather than errors — an unavailable track returns with readable false and fields zeroed — so your proxy returns your datacenter's catalog, not your user's. Previews are 30 seconds, full stop, and null for a nontrivial slice of the catalog.
4. Lyrics.ovh
Free tier: Free, no key — a hobby project with no company behind it
Auth: None
Rate limit: None published; treat any throughput as a courtesy
Coverage: Plain-text lyrics by artist and title, one endpoint, no search, no timing, no metadata
Best for: Weekend projects and demos where a missing lyric is acceptable
One endpoint, no key, and it returns a lyrics string — which is why it is in every tutorial. Be clear-eyed about what it is: a single-maintainer hobby service scraping lyrics it does not hold reproduction rights to. Coverage is patchy and skewed to English-language pop, matching is exact-string against artist and title so anything with a featured artist or a remaster suffix misses, and outages last as long as they last. The legal position matters more than the availability one: lyrics are copyrighted separately from recordings and licensed by publishers, not labels. Use it for a side project, cache what you get, and design the UI so a missing lyric is a normal state rather than an error.
Where free stops: lyrics
If your product displays lyrics to users and has revenue attached to it, no free option is defensible and you need a licensed provider. Lyrics are a separate copyright from the recording, administered by music publishers rather than labels, and the publishers enforce it. Genius returning only snippets is not a technical limitation; it is what a company without reproduction rights is permitted to serve.
The licensed answer is Musixmatch, which has the catalog and the publisher agreements behind it. Its developer plan is free at 2,000 calls a day but capped at 30 percent of any given lyric, and commercial plans unlocking full and time-synced lyrics start around 79 dollars a month. If you cannot justify that, ship without lyrics rather than shipping scraped ones.
Two patterns worth copying
Pattern 1 — MusicBrainz for the model, iTunes for the pixels
Resolve every incoming artist and track string against MusicBrainz once, in a background job, and store the MBIDs. That is your primary key from then on, and it survives typos, remasters and re-releases in a way free-text matching never does. MusicBrainz has no artwork, so join out to Cover Art Archive by release MBID, or hit iTunes Search and apply the 600x600bb upsize. One request per second works when identity resolution is a queue job, and never on the request path.
Pattern 2 — Deezer behind your own proxy
For a search box with audible previews, Deezer is the shortest path: no OAuth, clean JSON, ISRC and BPM included, a preview MP3 on most tracks. The missing CORS headers force you through your own origin, which is the right architecture anyway — the proxy is where you add a cache, normalize the region-restricted partial objects, and check for the error key Deezer returns at HTTP 200 on quota exhaustion.
Frequently Asked Questions
What is the best free music API?
There is no single answer, because the category splits into three problems and no free API solves more than one. MusicBrainz gives you canonical identity and IDs; iTunes Search and Deezer give you artwork and 30-second previews; lyrics have no free and legitimate answer at all. Most working projects use MusicBrainz for the data model and one of the other two for presentation.
Is there a free API for song lyrics?
Not one you can build a product on. Lyrics.ovh is free and keyless but is a hobby project scraping content it has no reproduction rights to, and Genius deliberately returns only snippets because it does not hold the rights either. Lyrics are licensed by music publishers, so the legitimate route is Musixmatch: a free 2,000 calls/day developer tier, commercial plans from around 79 dollars a month.
Which music API works without an API key?
MusicBrainz, iTunes Search and Deezer all serve their public catalogs with no key and no signup. The constraints differ sharply: MusicBrainz enforces 1 request per second and blocks requests without an identifying User-Agent, iTunes throttles at roughly 20 requests a minute by silently returning empty results, and Deezer sends no CORS headers so it cannot be called from a browser at all.
Can I still use the Spotify API for free?
For catalog data, yes — but the interesting endpoints are gone. In November 2024 Spotify removed audio-features, audio-analysis, recommendations, related-artists and 30-second preview URLs for newly registered applications, which is precisely the set that powered a decade of playlist-generator side projects. Existing apps were grandfathered; new ones are not. If you are starting today, Deezer gives you BPM and preview clips with no OAuth at all.
How do I get high-resolution album artwork for free?
The iTunes Search API is the fastest route. Its results embed a size segment in the artwork URL — the default ends in 100x100bb, and string-replacing that with 600x600bb or 1000x1000bb makes the CDN serve the larger file. It is undocumented, it has worked for over a decade, and you should fall back to the original URL if the upsized request 404s. The open alternative is Cover Art Archive, keyed on MusicBrainz release MBIDs.
Can I play full songs with a free music API?
No. Deezer and iTunes both cap free audio at 30-second preview clips, and those previews are null for part of the catalog. Full-length playback requires a licensed streaming SDK tied to a paid user subscription — Spotify's Web Playback SDK needs a Premium account, Apple MusicKit needs an Apple Music subscription. No free API anywhere delivers full-length commercial recordings.
Related on FreeAPI.watch
- Music API live status — hourly checks and 30-day uptime for every API above
- Free movie & TV APIs — TMDB, OMDb, TVmaze and the missing IMDb API
- Free sports APIs — fixtures, standings, and why live scores are never free
- Free APIs with no API key — the broader keyless list
- How we measure — the checks behind our uptime and free-tier scores
Last reviewed: August 2026. Free-tier terms verified against provider docs. Spotted a change? Tell us.