Apple Music Track Lookup
Resolve an Apple Music track id to the record Apple keeps for it in the store of one country: title, artist, album, genre, release date, duration, position, and whether it is explicit.
Overview
Every track on Apple Music carries a number. In a song address such as
music.apple.com/de/song/one-more-time/697195462 it is the last part; in an album address such as
music.apple.com/de/album/one-more-time/697194953?i=697195462 it is the number after
?i=, and the number before it belongs to the album.
The lookup asks Apple's public iTunes lookup, which needs no key. Apple answers per store country: the id is the same in every country, but whether the track is in a country's store is not.
Web interface
Paste the number, or a song or album address. An address is reduced to the track number, and the country it names is selected as the store country. Otherwise the country comes from the picker below the field, which lists the 184 countries Apple has a store for and can be searched by name. The dice in the field looks up one of ten sample tracks, each of them present in the US and the German store.
The result shows the cover beside title, artist, album, release year and duration, and below that the metadata as rows. A click on a row copies its value. Apple Music asks before it leaves the site.
URL parameters
| Pattern | Example |
|---|---|
/lookup/apple/track/{trackid} | /lookup/apple/track/697195462 |
/lookup/apple/track/{country}/{trackid} | /lookup/apple/track/de/697195462 |
Without a country the US store is asked. The page looks the track up as soon as it opens, and every lookup made on the page updates the address with the country it used.
API
/v1/lookup/apple/track?trackid={trackid}&country={country}
/v1/lookup/apple/track
Both return JSON. POST takes the same fields as a form. On api.troubleshooting.tools the path
also answers without /v1; on the main site that shorter path is the tool page.
| Name | Type | Default | Description |
|---|---|---|---|
| trackid | integer | required | The number of an Apple Music track, at most 15 digits. Everything but digits is removed first. |
| country | string | us |
The store to ask, as a two letter country code such as de. Upper or lower
case. |
$ curl -s "https://api.troubleshooting.tools/v1/lookup/apple/track?trackid=697195462&country=de" | jq .
# Without a country, the US store answers
$ curl -s "https://api.troubleshooting.tools/v1/lookup/apple/track?trackid=697195462" | jq -r '.trackName, .country'
One More Time
USA
# The same as a form post
$ curl -s -d trackid=697195462 -d country=de https://api.troubleshooting.tools/v1/lookup/apple/track
Shortened; the full answer has more fields:
{
"wrapperType": "track",
"kind": "song",
"artistId": 5468295,
"collectionId": 697194953,
"trackId": 697195462,
"artistName": "Daft Punk",
"collectionName": "Discovery",
"trackName": "One More Time",
"trackViewUrl": "https://music.apple.com/de/album/one-more-time/697194953?i=697195462&uo=4",
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/fd/4a/77/fd4a77db-0ebc-d043-41a2-f32fa1bb0fb4/dj.qrikkdwj.jpg/100x100bb.jpg",
"releaseDate": "2000-11-30T08:00:00Z",
"trackExplicitness": "notExplicit",
"discCount": 1,
"discNumber": 1,
"trackCount": 14,
"trackNumber": 1,
"trackTimeMillis": 320357,
"country": "DEU",
"currency": "EUR",
"primaryGenreName": "Dance",
"isStreamable": true
}
The body is Apple's record for that one track, passed through as Apple sends it,
without the resultCount and results wrapper of the iTunes lookup.
Response fields
| Field | Type | Description |
|---|---|---|
| trackId | integer | The track id that was looked up. |
| trackName | string | Title of the track. |
| artistName | string | Artist as Apple credits it. |
| collectionName | string | The album the track is on. |
| artistId, collectionId | integer | Apple's ids for the artist and the album. |
| primaryGenreName | string | The genre Apple files the track under. |
| releaseDate | string | Release date and time, ISO 8601 in UTC. |
| trackNumber, trackCount | integer | Position on the disc, and how many tracks it has. |
| discNumber, discCount | integer | Disc of the album, and how many there are. |
| trackTimeMillis | integer | Length in milliseconds. |
| trackExplicitness | string | explicit, cleaned or notExplicit. |
| isStreamable | boolean | Whether Apple marks the track as streamable in that store. |
| country, currency | string | The store that answered, as a three letter code such as DEU, and its currency. |
| trackViewUrl | string | The track's address on Apple Music. |
| artworkUrl30, artworkUrl60, artworkUrl100 | string | The cover at 30, 60 and 100 pixels. |
| error | string | Present instead of the above when the lookup failed. |
Store countries
Apple has a store for 184 of the country codes: those for which the iTunes lookup answered with a record
or an empty result, rather than a refusal, on 2026-09-12. A code without a store is answered with
400.
A track can be in one store and missing from the next. 1440650711, Queen's Bohemian
Rhapsody, is in the US store and not in the German one, so the same request answers with the record for
country=us and with 404 for country=de.
Errors
A failure answers with a status code and a JSON body of the form {"error": "…"}.
| Status | Message | Meaning |
|---|---|---|
400 | trackid parameter is required: the number of an Apple Music track. | No trackid, one without a digit in it, or one longer than 15 digits. |
400 | country must be a two letter store code, such as us or de. | The country is not two letters. |
400 | Apple has no store for the country code {CC}. | Two letters, but not a country Apple has a store for. |
404 | No track with this ID in the {CC} store. | The id does not exist, or the track is not in that store. |
404 | That number is an album, not a track. In an album address the track is the number after ?i=. | An album id was sent. The lookup does not pick a track from it. |
404 | That number is not a song on Apple Music. | The id belongs to something other than a song, such as a music video. |
405 | Method not allowed. Allowed: GET, POST | Any other method. |
502 | Apple Music could not be reached. | No answer from Apple within 10 seconds, or no connection within 5. |
502 | Apple Music answered with HTTP {status}. | Apple answered with a status this lookup does not expect. |
Rate limits
50 requests per second per IP address, burst 100, at most 50 concurrent connections, HTTP 429
over the limit.
Every request is also a request to Apple, which limits how often its lookup may be asked. A request Apple
refuses comes back as 502 with Apple's status in the message, not as 429.
Privacy
The track id and the store country are sent to this site, which asks Apple from the server. Apple sees the server, not you. Lookups appear in server logs for operational purposes and are not sold, shared or used to build profiles.
On the tool page the cover is the one thing your browser loads from Apple directly, from
mzstatic.com. An API caller receives the cover addresses and decides for itself whether to load
them.