Skip to main content
Use POST /web/scrape with formats.parse: true and parseParams: {"type": "prebuilt", "parser": "app-store"}. Read the result in parsed.data, with parsed.type: "app-store". See the Quickstart for authentication and SDK setup. Don’t send custom rules with this parser. For CSS selectors and rules, use the Custom parser.

Request

Use an apps.apple.com app URL with a numeric id in the path. The app name is optional, so https://apps.apple.com/us/app/id324684580 also works. The two-letter country in the path selects the storefront, including prices and currency, and defaults to us when omitted.

Output

When parsed.success is true, the parsed output has this shape:

App fields

All fields are present. Unavailable scalar values are null; missing lists are []. app_id, developer IDs, and category IDs are strings. file_size_bytes is a number when available. price.amount is in currency units. released_at and updated_at contain the source date strings. For reviews, use App Store reviews.

Empty results and errors

An app missing from the selected storefront produces NOT_FOUND. Try the correct country in the URL if the app is available in another storefront. Read parsed.success before using the data. A failed parse has data: null and can coexist with successful outputs. parsed.type remains "app-store" even when parsing fails. See timeouts and errors for handling failures.

Request options

This parser fetches source data separately from the rendered page, using a US exit. Content filters and browser actions do not change its results. Browser profiles are unsupported with this parser. Other Scrape controls, including caching, timeouts, and zero data retention, still apply.