What you get#
Onekey exposes App Store as 7 endpoints behind one API key: 7 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 App Store also works for the rest of the e-commerce & marketplaces category.
Endpoints#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
app_chart | App Store chart for a storefront, including top grossing and new apps. | app_collection, country | 1 | stable |
app_list | Apple App Store top charts for a storefront (free or paid). | app_collection, country | 1 | stable |
app_listings_search | Search Apple App Store apps by title: rating, price, developer, category, version. | title*, country | 1 | stable |
categories | App Store app categories (genre ids and names) for a storefront. | country | 1 | stable |
languages | Languages supported for App Store lookups (code and name). | - | 2 | beta needs a pack |
locations | Storefront locations supported for App Store lookups (code, name, country). | - | 2 | beta needs a pack |
search_suggestions | App Store search autocomplete suggestions for a partial keyword. | query* | 1 | 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 app_store.app_chart (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/app_store/app_chart?app_collection=topgrossingapplications" \
-H "x-api-key: YOUR_API_KEY"Fields you get back#
These unified fields come back from App Store, with the same names as on every other platform. The count is how many of its 7 mapped endpoints return the field; a field the source lacks is null, never missing. 1 platform-specific field (ext.<name>) come on top, documented on each endpoint page.
| Field | Type | Endpoints |
|---|---|---|
entity.id | string | 6 |
entity.name | string | 6 |
entity.url | URL | 4 |
author.displayName | string | 3 |
entity.category | string | 3 |
media.thumbnailUrl | URL | 3 |
entity.description | string | 2 |
entity.releaseDate | ISO 8601 date | 2 |
listing.currency | string | 2 |
listing.price | number | 2 |
content.title | string | 1 |
content.url | URL | 1 |
entity.country | string | 1 |
entity.stats.rating | number | 1 |
entity.stats.ratingCount | integer | 1 |
entity.type | string | 1 |
package.version | string | 1 |
The full schema is in Unified schema.
Pricing#
App Store calls cost 1 to 2 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.