Get competitor App Store reviews without an App Store Connect key
Last updated:
Apple's App Store Connect API is built for apps your own team owns — authenticating into it to read a competitor's reviews isn't an option, because Apple's Customer Reviews endpoint only serves reviews for apps linked to your own developer account. This Actor instead reads Apple's public, unauthenticated customer-review feed (JSON, with an automatic XML fallback), which works for any app on the App Store, yours or a competitor's, with no login, no Connect key, and no CAPTCHA bypass.
Why App Store Connect doesn't work for this
Apple's own Customer Reviews documentation frames the endpoint around an app the authenticated developer account owns — there's no parameter that lets you query someone else's app by id. That's a deliberate scope limit, not a bug to route around: this Actor doesn't attempt to defeat it. It uses a separate, genuinely public surface — the same review feed the App Store's own web and app clients read from — which Apple exposes without authentication for every published app.
What you get
One row per review (rating 1–5, title, text, version, date, helpfulness voteCount/voteSum), plus an optional app-details row per app × country with name, developer, price, average rating and rating count. Real review row:
{
"type": "review",
"appId": "570060128",
"appName": "Duolingo: Language Lessons",
"country": "us",
"reviewId": "14612250135",
"title": "Fun",
"text": "Very fun and get one month free for unlimited power",
"rating": 5,
"version": "7.142.0",
"date": "2026-09-30T13:01:34-07:00",
"voteCount": 0,
"voteSum": 0,
"developerResponse": null,
"source": "rss-json"
}Run it
curl -s -X POST "https://api.apify.com/v2/acts/dropin-apis~app-store-reviews/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"apps":["<competitor app id or apps.apple.com URL>"],"countries":["us","gb"],"maxReviewsPerApp":200}'Pass a numeric app id or a full apps.apple.com URL — both work. Add every country storefront you care about: reviews, ratings and even pricing genuinely differ by storefront (see the companion page on why totals differ by country, linked below).
Honest boundary
This is public-feed data, not every review that has ever existed for an app. developerResponse is always null — developer replies aren't part of Apple's public feed at all, so there's no reply text to scrape for a competitor or for yourself. Apple's feed is occasionally empty for a run; the Actor retries and falls back from JSON to XML before giving up, and only adds a type:"warning" row (never a silent empty success) if both stay empty for an app known to have ratings.
Limits
Up to 500 reviews per app per country — Apple's own public feed stops at 10 pages of 50, not an Actor-side cap. Query more countries for more coverage, since each storefront has its own review pool. No developer-response text. Review language follows the storefront's dominant language.
Pricing
Pay per event — $0.0002 per row ($0.20 per 1,000), review rows and app-details rows both counted, no subscription.
Open App Store Reviews Scraper on Apify
FAQ
Can I get a competitor's App Store reviews without their cooperation?
Yes, for public reviews. App Store Connect needs the app owner's own account; this Actor instead reads Apple's public customer-review feed, which is readable for any published app without authentication. It does not access anything private, unpublished, or owner-only (like developer-reply text, which isn't in the public feed for any app, including your own).
Do I need an Apple developer account at all?
No developer account, Connect key, or Apple login of any kind. You need an Apify account and token to run the Actor.
Why would two runs of the same app return slightly different review counts?
New reviews post continuously, and Apple's own feed pagination can shift slightly between requests. Treat a run as a snapshot at that time, not an immutable historical record — rerun on a schedule if you're tracking trends.
Is this allowed under Apple's terms?
The Actor only reads Apple's own public, unauthenticated endpoints — the same ones the App Store's web and app clients use — and does not bypass any login, CAPTCHA, or rate limit designed to block it. It does not use Apple's authenticated web API (which needs a session token and returns HTTP 401 without one). Review your own use against Apple's terms for your specific case; this page isn't legal advice.
What's the difference between this page and the main App Store Reviews Scraper page?
That page covers the full Actor: inputs, output shapes, pricing, and the general use cases. This page answers the specific question of collecting a competitor's reviews without owning their Connect account — see also why review counts differ by country if your counts look incomplete.