Music — entry 012 of 32

iTunes Search

Verified Jul 2026

The iTunes Search API is Apple's free, keyless lookup service for the iTunes Store and Apple Books catalog — music, movies, podcasts, audiobooks, and TV shows — searchable by term or looked up directly by ID. It's throttled to roughly 20 calls per minute per Apple's own guidance, with an Enterprise Partner Feed suggested for heavier volume, and every response comes back as JSON. The docs have moved off the long-dead affiliate.itunes.apple.com host (which no longer resolves) onto Apple's Performance Partners site, but the API itself, at itunes.apple.com/search, is unchanged and live.

iTunes Search is a single keyless GET endpoint, `/search`, that queries Apple's Store/Books catalog by free-text `term` plus optional filters like `entity` and `limit`. A live GET to `/search?term=daft+punk&entity=song&limit=1` returned a 200 with real catalog data, but `content-type` came back as `text/javascript; charset=utf-8` — not `application/json` — and `access-control-allow-origin: *` was sent on every probe this run regardless of whether a request `Origin` header was present.

musicsearchkeylesscatalog
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score74out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs0/20No docs or spec available
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 74 on greatapis.com
<a href="https://greatapis.com/api/itunes-search/"><img src="https://greatapis.com/badge/itunes-search.svg" alt="Scored 74 on greatapis.com"></a>

Auth quickstart

  1. No API key, App ID, or signup required today — this run's own probes returned real catalog data with no auth header or credential sent at all.
  2. Apple's own docs at performance-partners.apple.com/search-api state: "The Search API is limited to approximately 20 calls per minute (subject to change)" — quoted here since it's a published guidance number, not something enforced via a live rate-limit response header on this run's probes.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Search for a track by an artist

GEThttps://itunes.apple.com/search?term=daft+punk&entity=song&limit=1

200 text/javascript; charset=utf-8

{
 "resultCount":1,
 "results": [
{"wrapperType":"track", "kind":"song", "artistId":5468295, "collectionId":697194953, "trackId":697195462, "artistName":"Daft Punk", "collectionName":"Discovery", "trackName":"One More Time", "collectionCensoredName":"Discovery", "trackCensoredName":"One More Time", "artistViewUrl":"https://music.apple.com/us/artist/daft-punk/5468295?uo=4", "collectionViewUrl":"https://music.apple.com/us/album/one-more-time/697194953?i=697195462&uo=4", "trackViewUrl":"https://music.apple.com/us/album/one-more-time/697194953?i=697195462&uo=4", 
"previewUrl":"https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview112/v4/98/96/f6/9896f638-8b47-3f76-c47e-19e43b53677c/mzaf_15900001332254520801.plus.aac.p.m4a", "artworkUrl30":"https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/fd/4a/77/fd4a77db-0ebc-d043-41a2-f32fa1bb0fb4/dj.qrikkdwj.jpg/30x30bb.jpg", "artworkUrl60":"https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/fd/4a/77/fd4a77db-0ebc-d043-41a2-f32fa1bb0fb4/dj.qrikkdwj.jpg/60x60bb.jpg", "artworkUrl100":"https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/fd/4a/77/fd4a77db-0ebc-d043-41a2-f32fa1bb0fb4/dj.qrikkdwj.jpg/100x100bb.jpg", "collectionPrice":9.99, "trackPrice":1.29, "releaseDate":"2000-11-30T08:00:00Z", "collectionExplicitness":"notExplicit", "trackExplicitness":"notExplicit", "discCount":1, "discNumber":1, "trackCount":14, "trackNumber":1, "trackTimeMillis":320357, "country":"USA", "currency":"USD", "primaryGenreName":"Dance", "isStreamable":true}]
}

Trimmed of the raw response's leading/trailing blank-line padding for readability (see gotchas) — the JSON payload itself is byte-for-byte from this run's live probe. Preview/artwork URLs and release date are stable per track; a different term or entity returns different real catalog data.

Developer reference

Base URLhttps://itunes.apple.com
Rate limit

~20 calls/minute per Apple's own guidance ("subject to change"), quoted from performance-partners.apple.com/search-api — not enforced via any response header

Gotchas & limits

  • The raw response body begins and ends with three blank lines (`\n\n\n`) around the JSON payload — confirmed on every probe this run. A strict `JSON.parse` still works since it tolerates leading/trailing whitespace, but a client that inspects the first byte before parsing will not see `{` immediately.
  • A GET to `/search` with no `term` param at all does not error: a live probe returned HTTP 200 with body `{ "resultCount":0, "results": [] }` rather than a 4xx — a client checking only the status code cannot distinguish a malformed/empty query from zero real matches.
  • An actually invalid parameter value does error: a live GET to `/search?term=abc&entity=bogus` returned HTTP 400 with `{"errorMessage":"Invalid value(s) for key(s): [resultEntity]","queryParameters":{...}}`, naming the offending key.
  • The docs for this API moved off the long-dead `affiliate.itunes.apple.com` host (confirmed NXDOMAIN) onto Apple's Performance Partners site — but the search endpoint itself, at `itunes.apple.com/search`, is unchanged and live, confirmed by every probe in this file.