Apple Music Charts API
Scrape Apple Music Charts data with one API call. Returns what a country is playing most on Apple Music right now: the Top Songs, Top Albums, Top Music Videos or Top Playlists chart, with no keyword in. Each item is a Post: `content.text` is the title, `author.username` the artist, `url` the Apple Music link and `content.thumbnail_url` the artwork. The chart position is on `ext.trend`: `rank` (1 is the top), `country_code`, `chart` and Apple's own `chart_title` and `updated_at`. `ext.apple_music` carries `kind`, `release_date`, `artist_id`, `artist_url`, `genres` and `content_advisory`. `published_at` is the release date at midnight UTC. Playlists have no artist or release date, so those are null. The item ids work with /v1/apple_music/track and /v1/apple_music/album for the full record. A country Apple Music does not publish a chart for is a free 400. Exact repeats within an hour are served from cache at 0 credits.
Last updated September 2026Maintained by the SocialCrawl team
Returns a country's Apple Music chart for songs, albums, music videos or playlists, ranked from the top, with artist, artwork, release date and genres.
Use it to see what a market is playing right now without naming a track, or to track chart positions country by country over time.
Searching 67 platforms in parallel
What can you do with the Charts API?
The Charts endpoint gives you structured Apple Music data with computed fields in a single request. No scraping infrastructure to build or maintain.
Example Request
curl -H "x-api-key: YOUR_API_KEY" \
"https://www.socialcrawl.dev/v1/apple_music/charts?country=de&type=songs&limit=10"import requests
response = requests.get(
"https://www.socialcrawl.dev/v1/apple_music/charts",
params={
'country': 'de',
'type': 'songs',
'limit': '10',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/apple_music/charts?country=de&type=songs&limit=10",
{
headers: { "x-api-key": "YOUR_API_KEY" },
},
);
const data = await response.json();Parameters
| Parameter | Required | Description |
|---|---|---|
| country | No | Country as an ISO 3166-1 alpha-2 code, in any case (`us`, `DE`, `kr`). Apple Music publishes a chart for most countries where it is sold; one it does not is rejected with a free 400. `uk` is read as `gb`. Defaults to `us`. |
| type | No | Which chart: `songs` (the default), `albums`, `music-videos` or `playlists`. (songs | albums | music-videos | playlists) |
| limit | No | How many chart positions to return, from the top, 1 to 100. Defaults to 50. |
What does the Apple Music Charts API return?
This example shows the endpoint's response shape and fields. Values are illustrative; this is not a live capture.
Example response
{
"success": true,
"platform": "apple_music",
"endpoint": "/v1/apple_music/charts",
"data": {
"items": [
{
"post": {
"id": "6769070199",
"url": "https://music.apple.com/de/album/movin-to-the-sun/6769069923?i=6769070199",
"content": {
"text": "Movin' To The Sun",
"media_urls": null,
"thumbnail_url": "https://is1-ssl.mzstatic.com/image/thumb/Music211/v4/96/61/7a/96617ab5-51da-7cfc-97e5-c5a6a893c210/1087654.jpg/100x100bb.jpg",
"duration_seconds": null
},
"author": {
"username": "HUGEL, Imael Angel & Ultra Naté",
"display_name": "HUGEL, Imael Angel & Ultra Naté",
"avatar_url": null,
"verified": null
},
"engagement": {
"views": null,
"likes": null,
"comments": null,
"shares": null,
"saves": null
},
"flags": {
"nsfw": null,
"spoiler": null,
"pinned": null,
"deleted": false
},
"published_at": "2026-05-22T00:00:00.000Z",
"ext": {
"apple_music": {
"kind": "songs",
"release_date": "2026-05-22",
"artist_id": "978839124",
"artist_url": "https://music.apple.com/de/artist/hugel/978839124",
"genres": [
{
"id": "7",
"name": "Electronic"
},
{
"id": "34",
"name": "Musik"
},
{
"id": "17",
"name": "Dance"
}
],
"content_advisory": null
},
"trend": {
"rank": 1,
"country_code": "DE",
"chart": "songs",
"chart_title": "Top-Titel",
"updated_at": "2026-09-23T01:27:30.000Z"
}
}
},
"computed": {
"engagement_rate": null,
"language": null,
"content_category": "other",
"estimated_reach": null
}
}
],
"total": 10,
"dropped": 0
},
"credits_used": 1,
"credits_remaining": 9999,
"request_id": "req-a1b2c3d4e5f6",
"pagination": {
"next_cursor": null,
"has_more": false,
"page_size": 10
}
}Illustrative fixture for the documented response shape. Values are examples, not a production capture.
How does the Apple Music Charts API work?
Send a GET request with your API key and get back clean, structured JSON in our unified schema. Supported computed fields are populated when the source provides the required inputs.
Method
GET
Response
JSON
How do you scrape social media data in seconds?
The fastest social media scraping API for developers. Scrape profiles, posts, comments, and analytics from 67 platforms covering 10B+ monthly active users.
One schema, every platform
Query 67 platforms with identical response structures. Write your integration once.
Computed fields, not just scraped
When an endpoint supports these metrics and the source provides the required inputs, the normalized record includes engagement_rate, estimated_reach, content_category, and language. Ready to use.
See your data before you code
Visual Data Explorer. Paste any URL, get rich result cards, sortable tables, CSV export.
import requests
response = requests.get(
'https://www.socialcrawl.dev/v1/tiktok/profile',
params={'handle': 'charlidamelio'},
headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}Ready to scrape Apple Music Charts data?
Get your API key and start pulling Apple Music data in under 60 seconds.
