API reference · Reviews

Review Search

Search every review Appleak has collected, or only your pulls, or one pull, with a sentence ("subscription complaints in meditation apps"). The sentence is read for its topic, ratings and apps; the matching reviews come back grouped into themes, each with the quotes that show it, with the apps and the phrases they share. Counted with no model, and free.

GET/api/v1/reviews/search
Costs
Free
MCP tool
search_reviews
Answers
At once (200)
curl "https://appleak.app/api/v1/reviews/search?q=subscription+complaints+in+meditation+apps&scope=all&limit=20" \
  -H "Authorization: Bearer $APPLEAK_KEY"
Response200 OK
{
  "query": "subscription complaints in meditation apps",
  "reading": {
    "topic": "subscription",
    "stars": [
      1,
      2
    ],
    "apps": [],
    "kindOfApp": "meditation",
    "notes": [
      "Complaints: 1–2★."
    ]
  },
  "scope": {
    "kind": "all",
    "label": "Everything collected",
    "pull": null,
    "apps": [
      {
        "store": "apple",
        "appId": "1234567890",
        "title": "Example Meditation",
        "why": [
          "genre"
        ],
        "reviews": 5120
      }
    ],
    "everyApp": false,
    "note": null
  },
  "totals": {
    "candidates": 812,
    "read": 812,
    "matched": 403,
    "truncated": false,
    "unthemed": 37
  },
  "ratingMix": {
    "1": 290,
    "2": 113,
    "3": 0,
    "4": 0,
    "5": 0
  },
  "apps": [
    {
      "store": "apple",
      "appId": "1234567890",
      "title": "Example Meditation",
      "matched": 403,
      "share": 1,
      "avgRating": 1.3,
      "reviewsOnFile": 5120,
      "rate": 0.08
    }
  ],
  "themes": [
    {
      "id": "price",
      "label": "Price and subscription",
      "polarity": "neg",
      "group": "Money",
      "count": 211,
      "share": 0.52,
      "avgRating": 1.2,
      "apps": [
        {
          "store": "apple",
          "appId": "1234567890",
          "count": 211
        }
      ],
      "quotes": [
        {
          "reviewId": "c7d1…",
          "text": "Charged me for a year after I cancelled the trial.",
          "store": "apple",
          "appId": "1234567890",
          "rating": 1,
          "date": "2026-09-30T00:00:00.000Z",
          "helpful": 12
        }
      ]
    }
  ],
  "phrases": [
    {
      "phrase": "free trial",
      "count": 64,
      "quote": null
    }
  ],
  "reviews": [
    {
      "id": "c7d1…",
      "store": "apple",
      "appId": "1234567890",
      "app": "Example Meditation",
      "rating": 1,
      "title": "Billing trap",
      "text": "Charged me for a year after I cancelled the trial.",
      "date": "2026-09-30T00:00:00.000Z",
      "country": "us",
      "version": "6.1",
      "helpful": 12,
      "replied": false,
      "themes": [
        "price"
      ]
    }
  ],
  "tookMs": 2310,
  "notes": []
}

#Parameters

Query parameters

  • qstringrequired

    What to look for, as a sentence: a topic, and the kind of app or the apps if you like. 2–200 characters

  • scope"all" | "mine" | "pull"optionaldefault "all"

    all: every review collected; mine: your pulls; pull: one pull (give `pull`).

  • pulluuidoptional

    The pull’s id: `result.pull.id` of a finished pull job, or an id from GET /reviews/pulls.

  • starsstringoptional

    Ratings to keep, comma-separated, e.g. 1,2. Replaces the ratings the sentence implies.

  • limitintegeroptionaldefault 50

    How many of the best-matching reviews to include, 0–300. The themes count every match either way. 0–300

#Returns

The answer as JSON, beside. Free, and does not count against your credits.

MCP: search_reviews — Search the store reviews Appleak has collected (all of them, your pulls, or one pull) with a sentence like "subscription complaints in meditation apps". Returns themes with counts and quotes, the apps, shared phrases and the best-matching reviews. Counted, not generated. Free.