appreviews
300 free credits, no card

Every app review, one JSON API.

App metadata and user reviews from the iOS App Store and Google Play, normalised to one schema. One request, one credit. Failures are free.

Get an API key See sample app Read the docs

App Store, 175 storefronts Google Play

Also an MCP server. Works in ChatGPT, Claude, Cursor and Grok with a sign-in, no key to paste.

GET /v1/demo/apple-whatsapp No token · sample response
WhatsApp MessengerWhatsApp Inc. · apple/310633997
4.6818,523,223 ratings
response.json sample
{
  "store": "apple",
  "app_id": "310633997",
  "country": "us",
  "sort": "recent",
  "reviews": [
    {
      "author": "krissy grilz",
      "rating": 1,
      "title": "Stop compressing our statuses",
      "body": "Can you stop compressing our videos or photos when we want to share them",
      "created_at": "2026-09-02T01:57:32Z"
    },
    {
      "author": "alcoco76",
      "rating": 5,
      "title": "Love 💗",
      "body": "It’s wonderful— I can connect with you, anytime anywhere!",
      "created_at": "2026-09-02T00:54:15Z"
    },
    {
      "author": "Sergei Jin Dragunov",
      "rating": 4,
      "title": "Passkey",
      "body": "Passkeys are unable to be used for restoring backups that sucks.",
      "created_at": "2026-09-01T22:56:33Z"
    }
  ],
  "demo": true
}

Your first 300 calls are free.

Sign up, copy the key, and have reviews in your terminal in under a minute.

Get an API key
2stores, one schema
50reviews per page, signed cursors
1credit per successful call
0charged on 4xx, 429 or 503
With vs without

Same reviews. One request.

Without appreviews you own the scrape: store feeds, opaque HTML blobs, field cleanup, and the breakage when Google reshuffles the page. With it: one authenticated call, one schema, MCP ready.

Without appreviews

DIY scraping

scrape.sh
# 1. Fetch — Apple has a limited RSS feed; Play has no public API
curl "https://itunes.apple.com/us/rss/customerreviews/id=310633997/json"
curl "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en&gl=us" \
  -H "User-Agent: …"

# 2. Dig — Play hides reviews in AF_initDataCallback + batchexecute
#    Pull the ds:5 blob, dig paths like [1, 2, 51, 0, 1] for rating,
#    POST f.req (rpcids=oCPfdb), then JSON.parse the escaped chunk twice.

# 3. Clean — two shapes → one: author, rating, body, created_at
#    Apple labels vs Play positional arrays. Nulls, locales, timezones.

# 4. Page — RSS stops around page 10; Play needs opaque next tokens.

# 5. Maintain — Google blocks IPs, moves indexes, renames rpcids.
#    Re-record fixtures, patch dig paths, ship before your pipeline dies.
  • Fetch, dig blobs, clean fields, page tokens — every release
  • Play HTML and batchexecute break without warning
  • Country, language, and IP rotation are your problem
  • Agents cannot call this cleanly
With appreviews

One JSON call

terminal
# Same shape for Apple and Google. One credit on 200.
curl https://appreviews.vibeserved.com/v1/apps/apple/310633997/reviews?sort=recent \
  -H "Authorization: Bearer $APPREVIEWS_KEY"

curl https://appreviews.vibeserved.com/v1/apps/google/com.whatsapp/reviews?sort=recent \
  -H "Authorization: Bearer $APPREVIEWS_KEY"

# Or point Cursor / Claude at /mcp and skip the curl.
  • One schema: rating, author, body, created_at
  • Signed cursors, 50 reviews a page
  • Failures and balance checks are free
  • MCP built in for ChatGPT, Claude, Cursor, Grok
Connect your agent

One-click agent integration.

Point ChatGPT, Claude, Cursor or Grok at https://appreviews.vibeserved.com/mcp. They install and sign you in with OAuth. Claude Code can take a key from the dashboard if you prefer headers over sign-in.

Also Claude Code, VS Code, Windsurf and anything else that speaks MCP over HTTP. All clients · Open dashboard.

What you get

Built for the people who read reviews for a living.

Sentiment dashboards, competitor trackers, ASO tools, support triage. Skip the scraping and the store-specific quirks.

One schema for both stores

Same fields for App Store and Play: rating, author, body, version, created_at, developer_reply. Fields a store does not publish are null, never missing.

Cursor paging that cannot drift

Pages of 50, sorted by recent, helpful or rating. Cursors are signed and bound to the app, storefront and sort, so a stale or forged cursor is a 400, not a wrong page.

Honest metering

Only a 200 costs a credit. Every metered response carries X-Credits-Remaining, and /v1/me is free so your monitors never pay to check the balance.

MCP server built in

Point Cursor, Claude Code or any MCP client at /mcp with your key and your agent reads reviews by itself. Same credits, same limits, one config block.

Keys you can rotate

Keys are shown once and stored hashed. Create as many as you need, name them per service, revoke one without touching the others.

Credits that never expire

Buy a pack once, use it whenever. No subscription, no monthly minimum, no tiers to outgrow. 300 credits are on the house when you sign up.

Real data

This is what a page of reviews looks like.

Straight from GET /v1/apps/apple/310633997/reviews?sort=recent, as recorded. Every language, every rating, developer replies where the store has them.

WhatsApp MessengerWhatsApp Inc. · Social Networking · net.whatsapp.WhatsApp
4.68 18,523,223 ratings
Sep 2, 2026 · v26.34.72

Stop compressing our statuses

Can you stop compressing our videos or photos when we want to share them

krissy grilz
Sep 2, 2026 · v26.34.72

Love 💗

It’s wonderful— I can connect with you, anytime anywhere!

alcoco76
Sep 1, 2026 · v26.34.72

Passkey

Passkeys are unable to be used for restoring backups that sucks.

Sergei Jin Dragunov
Pricing

Pay for what you pull.

One credit per successful request. Bigger packs cost less per thousand. Full pricing.

Starter 5,000 credits $9 $1.80 per 1,000 requests Get started
Scale 100,000 credits $79 $0.79 per 1,000 requests Get started

Your first 300 calls are free.

Sign up, copy the key, and have reviews in your terminal in under a minute.

Get an API key