What you get#
Onekey exposes iTunes as 23 endpoints behind one API key: 4 endpoints return one record (data is an object) and 19 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for iTunes also works for the rest of the music & audio category.
Endpoints#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
lookup_album | iTunes album by collection id. | id*, country | 1 | stable |
lookup_album_tracks | Tracks of an iTunes album (first row is the album itself). | id*, country | 5 | stable |
lookup_app | App Store app by id. | id*, country | 1 | stable |
lookup_artist | iTunes/Apple Music artist by id. | id*, country | 1 | stable |
lookup_artist_albums | Albums of an iTunes artist (first row is the artist itself). | id*, country | 5 | stable |
lookup_podcast | Apple Podcasts show by id. | id*, country | 1 | stable |
lookup_podcast_episodes | Recent episodes of an Apple Podcasts show (first row is the show). | id*, country | 5 | stable |
search_albums | Search iTunes albums. | q*, country | 5 | stable |
search_apps | Search App Store iOS apps. | q*, country | 5 | stable |
search_artists | Search iTunes music artists. | q*, country | 5 | stable |
search_audiobooks | Search Apple audiobooks. | q*, country | 5 | stable |
search_ebooks | Search Apple Books ebooks. | q*, country | 5 | stable |
search_movies | Search iTunes movies. | q*, country | 5 | beta |
search_music | Search iTunes music tracks. | q*, country | 5 | stable |
search_music_videos | Search iTunes music videos. | q*, country | 5 | stable |
search_podcasts | Search Apple Podcasts shows. | q*, country | 5 | stable |
search_tv_seasons | Search iTunes TV seasons. | q*, country | 5 | stable |
top_albums | Apple Music most-played albums chart. | country, limit | 5 | stable |
top_free_apps | App Store top free apps chart. | country, limit | 5 | stable |
top_free_books | Apple Books top free books chart. | country, limit | 5 | stable |
top_paid_apps | App Store top paid apps chart. | country, limit | 5 | stable |
top_podcasts | Apple Podcasts top shows chart. | country, limit | 5 | stable |
top_songs | Apple Music most-played songs chart. | country, limit | 5 | stable |
A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.
Make a request#
This calls itunes.lookup_album (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.
curl "https://api.onekey.dev/v1/itunes/lookup_album?id=1097861387" \
-H "x-api-key: YOUR_API_KEY"Fields you get back#
These unified fields come back from iTunes, with the same names as on every other platform. The count is how many of its 23 mapped endpoints return the field; a field the source lacks is null, never missing. 6 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.
| Field | Type | Endpoints |
|---|---|---|
author.displayName | string | 23 |
media.thumbnailUrl | URL | 20 |
content.createdAt | ISO 8601 date | 11 |
content.id | string | 11 |
content.title | string | 11 |
content.url | URL | 11 |
content.category | string | 10 |
entity.id | string | 10 |
entity.name | string | 10 |
entity.url | URL | 10 |
entity.category | string | 9 |
entity.releaseDate | ISO 8601 date | 4 |
entity.stats.itemCount | integer | 4 |
media.previewUrl | URL | 4 |
author.id | string | 3 |
entity.description | string | 3 |
entity.stats.rating | number | 3 |
listing.price | number | 3 |
author.url | URL | 2 |
content.text | string | 2 |
entity.stats.ratingCount | integer | 2 |
package.version | string | 2 |
The full schema is in Unified schema.
Pricing#
iTunes calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.