> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/apple-app-store>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/apple-app-store.mdx>

---

# Apple App Store API. App data as JSON.

App records, details, reviews, in-app purchases, search, developer catalogues and charts, with the storefront and language you ask for.

- Any App Store storefront
- 8 JSON routes
- 1 credit per request

Social Fetch exposes eight routes under `/v1/apple-app-store`. Look up one app by numeric id, bundle id or App Store link with `GET /v1/apple-app-store/apps/{appId}`. Fetch up to 200 apps in one request with `GET /v1/apple-app-store/apps`, which reports a `lookupStatus` for each `url` you send. Search with `GET /v1/apple-app-store/apps/search`, and list a developer's apps with `GET /v1/apple-app-store/developers/{developerId}`.

Every route takes a two-letter `country` storefront, and the app, search and developer routes also take a `language`. Prices, ratings, review counts and text differ by storefront, and Apple does not publish a worldwide ratings total, so the storefront is part of every answer. Responses use the `{ data, meta }` envelope with `data.lookupStatus`. Detail routes answer `found` or `not_found`; list routes put their rows in `results`, `reviews`, `items`, `apps` or `entries`. The reviews route returns 20 reviews a page with four sorts and developer replies. Charts return up to 200 ranks for `top-free` and `top-paid`, and 100 for the grossing and new charts.

## What you can get

- One app by numeric id, bundle id or App Store link, with price, ratings, genres, version history and screenshots.
- App details with a ratings histogram, privacy label, version history, in-app purchases, similar apps and featured reviews.
- Customer reviews, 20 a page and four sorts, with developer replies and an explicit `depthLimited` flag.
- In-app purchases, 10 a page, including subscription periods and introductory offers.
- Storefront search up to 200 results, with no paging to follow.
- Developer catalogues: every app a developer publishes in a storefront, with `truncated` when the list could not be completed.
- Charts for iPhone, iPad and Mac by genre, with the app record kept on every rank.

## Apple App Store endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| App | GET /v1/apple-app-store/apps/{appId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/get) |
| App details | GET /v1/apple-app-store/apps/{appId}/details | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/details/get) |
| Reviews | GET /v1/apple-app-store/apps/{appId}/reviews | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/reviews/get) |
| In-app purchases | GET /v1/apple-app-store/apps/{appId}/in-app-purchases | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/in-app-purchases/get) |
| Apps (batch) | GET /v1/apple-app-store/apps | 1 credit per app reference Up to 200 app references per request Max 200 credits Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/get) |
| Search | GET /v1/apple-app-store/apps/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/search/get) |
| Charts | GET /v1/apple-app-store/charts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/charts/get) |
| Developer | GET /v1/apple-app-store/developers/{developerId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/apple-app-store/developers/developerid/get) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_...`). New accounts get 100 free credits, enough to try every App Store route on a few apps.
2. **Pick the route and storefront.** Use `GET /v1/apple-app-store/apps/284882215?country=us` for one app, or `GET /v1/apple-app-store/apps/search?query=photo%20editor&country=gb` for search. Send `x-api-key` on every request.
3. **Branch on the answer.** Check `data.lookupStatus` before you store a row, follow `data.page.nextPage` while `data.page.hasMore` is true, and bill from `meta.creditsCharged`.

## Pricing

Each App Store route charges one credit per completed request, except the batch route, which charges one credit per unique requested app id or bundle id. A details request that returns only one of its two parts is still billed, and `sources` says which part failed. `meta.creditsCharged` on every response is the billing source of truth.

## Compared with the official API

App records, app details, reviews, in-app purchases, charts and developer catalogues each come with their own shape and limits. Social Fetch puts them behind one `{ data, meta }` envelope with `lookupStatus`, echoes the storefront back, keeps the same app shape across routes, and uses the same API key and credit meter as the rest of Social Fetch. A details answer names which parts are present in `sources`, so a partial answer is visible instead of quietly thinner.

## FAQ

### Is there an Apple App Store API?

Yes. Social Fetch has eight Apple App Store routes under /v1/apple-app-store: one app, many apps in a batch, app details, reviews, in-app purchases, search, developer catalogues and charts. Authenticate with your Social Fetch API key in x-api-key.

### How do I look up an app?

Use GET /v1/apple-app-store/apps/{appId} with a numeric id such as 284882215, a bundle id such as com.facebook.Facebook, an App Store link, or an id with the id prefix used in links. Read data.lookupStatus: found puts the record in data.app, not_found puts null there.

### What is the difference between the app route and the details route?

The app route returns the app record: id, bundle id, name, URL, developer, seller, price, ratings, genres, current version, release date, size, languages, description, icon and screenshots. The details route returns what the app record does not carry, including the ratings histogram, privacy label, version history, in-app purchases, similar apps, featured reviews, per-platform records, requirements and chart positions.

### Which storefront should I use?

Pass a two-letter country code in country, for example us, gb or jp. Prices, ratings, review counts and text are specific to that storefront. An app that is not sold in the storefront answers not_found on the app, details and in-app purchases routes; the reviews route can still return the old reviews Apple keeps for it. There is no worldwide ratings total to divide around.

### Why is part of a details response null?

The details route returns two parts and reports the state of each in data.sources.page and data.sources.catalogue as ok, failed or skipped. When one part fails, the other is still returned and the failed field is null, and the request is still billed. Retry the request or fall back to the app route if the missing part matters.

### Why do in-app purchases repeat across pages?

Apple's order for the in-app purchase list can differ between requests, so a product can appear on more than one page. The page offsets are exact, but the list is not stable. De-duplicate on items[].id when you walk pages.

### How do charts work?

Call GET /v1/apple-app-store/charts with chart, platform, genre and limit. top-free and top-paid return up to 200 ranks on iphone, ipad and mac; top-grossing returns up to 100 and is on iphone and ipad; new, new-free and new-paid return up to 100 and are on iphone. Each entry has a rank, the app id and the app record, which is null when that app's record is unavailable. The rank is always kept.

### How much does the Apple App Store API cost?

Each route charges one credit per completed request, except the batch route, which charges one credit per unique requested app id or bundle id. A details answer with a failed part is still billed. Check meta.creditsCharged on every response. New accounts start with 100 free credits.

### Does HTTP 200 mean the app or list exists?

No. HTTP 200 means the request finished. Check data.lookupStatus for app, details, reviews, developer and chart answers. Search always returns found, and a nonsense query can still return loosely related apps, so check the names; the batch route reports found or not_found on every row.

## Related

- [App API](https://www.socialfetch.dev/platforms/apple-app-store/apps-appid): One app by id, bundle id or link (`GET /v1/apple-app-store/apps/{appId}`).
- [App Details API](https://www.socialfetch.dev/platforms/apple-app-store/apps-appid-details): Ratings histogram, privacy label, version history and similar apps (`GET /v1/apple-app-store/apps/{appId}/details`).
- [Reviews API](https://www.socialfetch.dev/platforms/apple-app-store/apps-appid-reviews): Customer reviews with developer replies, 20 a page (`GET /v1/apple-app-store/apps/{appId}/reviews`).
- [In-App Purchases API](https://www.socialfetch.dev/platforms/apple-app-store/apps-appid-in-app-purchases): Products and subscriptions with prices (`GET /v1/apple-app-store/apps/{appId}/in-app-purchases`).
- [Search API](https://www.socialfetch.dev/platforms/apple-app-store/apps-search): Search a storefront for up to 200 apps (`GET /v1/apple-app-store/apps/search`).
- [Developer API](https://www.socialfetch.dev/platforms/apple-app-store/developers-developerid): A developer and every app they publish (`GET /v1/apple-app-store/developers/{developerId}`).
- [Charts API](https://www.socialfetch.dev/platforms/apple-app-store/charts): Top free, paid, grossing and new charts by storefront and genre (`GET /v1/apple-app-store/charts`).
- [Ask in plain English](https://www.socialfetch.dev/ask): Route a natural-language App Store question to the matching operation.
- [Hosted MCP](https://www.socialfetch.dev/mcp): Call App Store tools from Cursor or Claude with the same credit metering as REST.
