List an app's user reviews, newest first, with filters (rating, version, date, text).

GEThttps://api.appgoat.ai/v1/apps/{app}/reviews
1+ credits1 per page + 1 if the US reviews are refreshedMCP tool get_reviewsoperationId listReviews

Up to 100 reviews per page (1 credit per page). Combine rating=1-2 with since to find recent complaints, q for full-text search, version to see what users say about a release. The latest US reviews are refreshed when older than max_age (default 1 day). AI tags (sentiment, intent, severity, topic) are filled for tagged reviews (popular apps first) and null otherwise; filtering by them excludes untagged reviews. intent=bug,crash&since=… is the "what broke in the last release" query.

Request

curl "https://api.appgoat.ai/v1/apps/com.spotify.music/reviews?rating=1-2&since=2026-10-01" \
  -H "x-api-key: $APPGOAT_API_KEY"

Path parameters

appstringrequired
Any app identifier: App Store id (284882215, id284882215), Play package (com.spotify.music), Apple bundle id (com.spotify.client), store URL (URL-encoded), apple:<id> / play:<id>, or a name (spotify).

Query parameters

store"apple" | "play"
Disambiguates {app} (a bundle id vs a Play package, or a name).
countrystring
ISO country code(s): us (default), a comma list (paid plans), or all (Studio).

Default "us"

ratingstring
Star rating filter, 1, 1,2 or a range 1-3.
versionstring
Only reviews written for this app version.
sincestring
Only items at or after this ISO date / datetime.
untilstring
Only reviews created before this ISO date / datetime.
qstring
Case-insensitive text search in the title and body.
sentimentstring
AI sentiment filter (comma list): positive, neutral, negative.
intentstring
AI intent filter (comma list): bug, crash, feature_request, pricing, ux, praise, spam, other.
topicstring
AI topic filter (comma list of topic labels, case-insensitive, or topic ids).
max_ageinteger
Refresh the latest US reviews when older than this many seconds. Default 86400 (1 day).

Default 86400

waitboolean
Block up to ~25 s for a refresh (default). false = answer immediately from cache with a job id.

Default true

limitinteger

Default 50

cursorstring
meta.next_cursor from the previous page.
fieldsstring
Comma list of top-level fields to return (identifiers are always kept), e.g. title,rating,version.

Response

200 with data: Review[]. See the envelope for meta.

review_idstring
countrystring
ratinginteger
titlestring | null
bodystring | null
authorstring | null
versionstring | null
thumbs_upinteger | null
replystring | null
The developer's reply.
replied_atstring | null
created_atstring | null
sentiment"positive" | "neutral" | "negative" | null
AI tag; null = not tagged yet.
intent"bug" | "crash" | "feature_request" | "pricing" | "ux" | "praise" | "spam" | "other" | null
AI tag.
severityinteger | null
0 none, 1 minor, 2 major, 3 critical.
topicstring | null
AI topic label (one per review, per-app taxonomy).
topic_idinteger | null
confidencenumber | null
Probability of the chosen intent (0–1).
Example
{
  "data": [
    {
      "review_id": "string",
      "country": "us",
      "rating": 1,
      "title": "Spotify: Music and Podcasts",
      "body": "string",
      "author": "string",
      "version": "string",
      "thumbs_up": 1,
      "reply": "string",
      "replied_at": "2026-10-22T10:00:00Z",
      "created_at": "2026-10-22T10:00:00Z",
      "sentiment": "positive",
      "intent": "bug",
      "severity": 0,
      "topic": "string",
      "topic_id": 1,
      "confidence": 4.5
    }
  ],
  "meta": {
    "credits_used": 1,
    "credits_remaining": 9981,
    "request_id": "req_123"
  }
}

Status codes

200
A page of reviews.
A parameter is missing or invalid (error.param names it).
Missing or invalid API key.
insufficient_credits (the call costs more than you have left; nothing was done) or plan_limit (a feature of a higher plan).
Nothing matches {app}, or the store does not have it.
Too many requests per second for your plan.