📱 App Store & Google Play Metadata Scraper — One Schema avatar

📱 App Store & Google Play Metadata Scraper — One Schema

Pricing

from $2.00 / 1,000 app records

Go to Apify Store
📱 App Store & Google Play Metadata Scraper — One Schema

📱 App Store & Google Play Metadata Scraper — One Schema

Scrape public Apple App Store and Google Play app metadata by app ID — title, developer, description, category, price, rating, rating count, version, icon, screenshots. Watch mode returns changed records. Public, logged-out.

Pricing

from $2.00 / 1,000 app records

Rating

0.0

(0)

Developer

NexGen Watch

NexGen Watch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

ASO teams and analysts pay for one normalized app record across both major mobile stores — not two brittle scrapers with mismatched fields.

What you get

  • Public catalog metadata from Apple and Google Play in one 17-field app-record schema
  • Title, developer, description, category, price, currency, rating, and rating count
  • Current version, last-updated date, icon URL, and screenshot URLs
  • Store, country, source URL, and collection timestamp on every record
  • Optional watch mode that emits only records that changed since the last run

Use cases by team

  • ASO teams: Benchmark your listing's metadata against competitors across both stores at once.
  • Analysts: Pull a clean cross-store app record for dashboards without normalizing fields by hand.
  • Growth: Watch competitor price, rating, and version changes and react when they move.
  • Data engineering: Get one contract for iOS and Android instead of maintaining two parsers.

Example inputs

Both stores in one run

{
"app_ids": [
"284882215",
"com.spotify.music"
],
"watchMode": false
}

Apple only

{
"app_ids": [
"284882215"
],
"country": "us"
}

Watch for metadata changes

{
"app_ids": [
"com.spotify.music"
],
"watchMode": true
}

📊 Sample Output

{
"store": "apple",
"app_id": "284882215",
"title": "Facebook",
"developer": "Meta Platforms, Inc.",
"category": "Social Networking",
"price": 0,
"currency": "USD",
"rating": 4.1,
"rating_count": 21500000,
"version": "500.0",
"updated_at": "2026-07-15",
"icon_url": "https://.../icon.png",
"country": "us",
"source_url": "https://apps.apple.com/us/app/id284882215",
"collected_at": "2026-07-21T00:00:00Z"
}

How it works

Pass a mix of Apple numeric IDs and Google Play package names in one app_ids list. It queries Apple's public Search/Lookup surface and Google Play, then normalizes both into a single app-record contract so downstream code never has to branch per store. Public catalog surfaces only.

Pricing

EventPrice (FREE tier)
Actor start (apify-actor-start)$0.02
App record (app-record)$0.00150
Watch check (watch-check)$0.05

Flat list prices; Apify applies its automatic FREE→DIAMOND plan discount on top. Worked example: 100 app records = $0.02 start + 100 × $0.0015 = $0.17. Blocked or zero-result runs do not intentionally charge; watch runs with no delta charge only the watch check. New to Apify? Start free.

Run it — API, CLI, MCP

API:

curl -X POST "https://api.apify.com/v2/acts/nexgenwatch~app-store-metadata/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" -d @input.json

CLI:

$apify call nexgenwatch/app-store-metadata -i @input.json

MCP: expose nexgenwatch/app-store-metadata through Apify's MCP server, select it as a tool, and pass the same input object.

ActorWhat it does
Review Sentiment AnalyzerTurn any review set into themes, complaints, sentiment % and trends.
Apple App Store ReviewsScrape public Apple App Store reviews for any app.
Google Play ReviewsScrape public Google Play reviews for any app.
App Rankings TrackerTrack Apple App Store top-chart rankings by country.
ASO Keyword TrackerTrack keyword rankings across App Store & Google Play.

Compliance & honest limits

  • Public catalog metadata only — no login, CAPTCHA, paywall, or access-control defeating.
  • Fields reflect what each store exposes publicly; a field absent at the source is returned empty, not guessed.
  • A source-confirmed empty result is SUCCEEDED-0: GENUINE_EMPTY; exhausted retries fail and truncated runs are PARTIAL.

FAQ

Can I mix iOS and Android IDs?

Yes — that is the point. Put Apple numeric IDs and Play package names in the same app_ids list; both normalize to one schema.

Which fields come back?

17: store, app_id, title, developer, description, category, price, currency, rating, rating_count, version, updated_at, icon_url, screenshots, country, source_url, collected_at.

Does zero mean blocked?

No. A confirmed-empty lookup is GENUINE_EMPTY; only exhausted retries fail.

How does watch mode work?

Set watchMode: true. Later runs emit only records whose metadata changed since the baseline.

How is it priced?

$0.02 per run start plus $0.0015 per app record; watch checks with no change cost $0.05.

Can I get screenshots and icons?

Yes — icon_url and screenshots URLs are included where the store exposes them.

Does it pair with rankings and keywords?

Yes — it's the metadata anchor for the App Store Rankings Tracker and ASO Keyword Tracker.

Troubleshooting

  • Missing fields? A store not exposing a field returns it empty by design — it is never fabricated.
  • Wrong country's record? Set country; it defaults to US.
  • Play app not found? Use the exact package name from the store URL's id= parameter.
  • Watch mode emitting everything? The first run seeds the baseline; change-only deltas start on the second run.
  • Need the reviews too? Pair with the Apple or Google Play reviews scrapers.

About

Part of the NexGenData App Intelligence cluster — the normalized cross-store anchor the ranking and keyword actors build on. Built by NexGenData. Questions or need a custom feed? Open an issue on the Actor page.