Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Scrape App Store and Google Play reviews in a single run: rating, text, author, app version, date and developer reply, for any country and sort order. One clean dataset at a flat price per review. Runs on Apify Store: https://apify.com/josh99smith/app-reviews-scraper
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
An App Store and Google Play reviews scraper that collects public user reviews from both stores in a single run. Paste app links or ids from either store and get back every review as a clean JSON record: star rating, title, text, reviewer display name, app version, date, helpful votes and the developer's reply where one exists. Apps that cannot be found are reported free of charge; you pay a small flat price per review.
Built for product managers, app marketers, researchers and developers who need review data as an API rather than copied from store pages.查看完整 README ↗An App Store and Google Play reviews scraper that collects public user reviews from both stores in a single run. Paste app links or ids from either store and get back every review as a clean JSON record: star rating, title, text, reviewer display name, app version, date, helpful votes and the developer's reply where one exists. Apps that cannot be found are reported free of charge; you pay a small flat price per review.
Built for product managers, app marketers, researchers and developers who need review data as an API rather than copied from store pages.
For Apple the Actor reads the public customer-reviews feed that the App Store publishes for every app and country, plus the public lookup API for the app name, developer, average rating and rating count. For Google Play it uses the public web endpoints behind the Play store page (via the MIT-licensed google-play-scraper library). No login, no browser, low request rates: a run for two apps with 200 reviews each finishes in a few seconds.
Limits you should know: Apple exposes at most 500 reviews per app per country (10 pages of 50) and does not filter by language; the Apple feed also has no developer replies. Google Play returns reviews in pages of 150 and can go much deeper.
{
"apps": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580", "com.spotify.music"],
"country": "us",
"language": "en",
"sort": "newest",
"maxReviewsPerApp": 200,
"minRating": 1,
"maxRating": 5
}
Start a run and get the reviews back in one HTTP call:
curl -X POST "https://api.apify.com/v2/acts/josh99smith~app-reviews-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"apps": ["com.spotify.music"], "maxReviewsPerApp": 50}'
Python, with the apify-client package:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("josh99smith/app-reviews-scraper").call(
run_input={"apps": ["com.spotify.music", "324684580"], "maxReviewsPerApp": 50, "minRating": 1, "maxRating": 2}
)
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
print(review["rating"], review["text"])
JavaScript or TypeScript, with the apify-client package:
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });
const run = await client.actor("josh99smith/app-reviews-scraper").call({
apps: ["com.spotify.music", "324684580"],
maxReviewsPerApp: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
The Actor is exposed as a tool by the Apify MCP server, so an AI agent can call it by name. Add this to your MCP client configuration (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and others):
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=josh99smith/app-reviews-scraper",
"headers": { "Authorization": "Bearer <YOUR_API_TOKEN>" }
}
}
}
Then ask, for example: "Pull the 100 newest 1-2 star Google Play reviews of com.spotify.music with josh99smith/app-reviews-scraper and summarise the complaints." The agent fills in the input, runs the Actor and reads the dataset back; you pay the same per-result price as in the Console.
The Actor can also be scheduled, or connected to Zapier, Make, n8n and Google Sheets in the Integrations tab.
One record per review, identical shape for both stores:
{
"store": "google",
"appId": "com.spotify.music",
"appName": "Spotify: Music and Podcasts",
"developer": "Spotify AB",
"reviewId": "4cac1797-5266-4c68-b3f6-f86f63b2c5f5",
"title": null,
"text": "too much ad",
"rating": 2,
"authorName": "HIMANSHU RANJAN BEHERA",
"version": "9.1.30.1993",
"date": "2026-09-17T19:23:03.181Z",
"helpfulVotes": 0,
"developerReply": {
"text": "Hi! We welcome your feedback and we'll pass it along to the ads team. ...",
"date": "2026-09-17T19:45:13.542Z"
},
"country": "us",
"language": "en",
"url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=4cac1797-5266-4c68-b3f6-f86f63b2c5f5",
"fetchedAt": "2026-09-18T19:46:00.886Z"
}
{
"store": "apple",
"appId": "324684580",
"appName": "Spotify: Music and Podcasts",
"developer": "Spotify",
"reviewId": "14560977347",
"title": "Excelente servicio",
"text": "Todo es mejor sin comerciales",
"rating": 5,
"authorName": "MoruXx",
"version": "9.1.82",
"date": "2026-09-17T16:18:01.000Z",
"helpfulVotes": 0,
"developerReply": null,
"country": "us",
"language": null,
"url": "https://apps.apple.com/us/app/id324684580?see-all=reviews",
"fetchedAt": "2026-09-18T19:46:00.626Z"
}
Apps that could not be processed are recorded too, so nothing silently disappears from your list:
{
"success": false,
"input": "com.this.package.does.not.exist",
"store": "google",
"appId": "com.this.package.does.not.exist",
"errorType": "not-found",
"error": "App not found (404)",
"fetchedAt": "..."
}
The SUMMARY record in the key-value store lists, for every app, the name, developer, average rating, total rating count and how many reviews were fetched and stored.
| Field | Description |
|---|---|
store | apple or google. |
appId / appName / developer | Apple track id or Android package name, plus the store listing name and developer. |
reviewId | Store-assigned review id, unique per store. |
title | Review headline (Apple only; always null on Google Play). |
text / rating | Review body and star rating 1-5. |
authorName | The public display name shown next to the review. |
version | App version the review was written for, when the store provides it. |
date | ISO 8601 timestamp of the review. |
helpfulVotes | Helpful votes (Apple voteSum, Google Play thumbs-up). |
developerReply | { text, date } when the developer answered (Google Play only), otherwise null. |
country / language | Store country of the review; language is the requested Play language and null for Apple. |
url | Direct review link on Google Play, or the app's reviews page on the App Store. |
errorType | Failures only: invalid-url, not-found, blocked, rate-limited, timeout, http-error, network or other. |
You pay a flat price per review stored (shown next to the Start button); 1,000 reviews cost well under a dollar. Invalid identifiers, apps that do not exist and store errors are never charged, and there is no start-up fee. The Actor stops as soon as the maximum cost you set for the run is reached, so a long app list never produces a surprise bill.
How it compares (September 2026). Per-review pricing here is $0.00015, in line with the cheapest single-store Actors, and unlike them this Actor covers both stores in one run with one fixed output schema. Apps that cannot be found are free, an error on one app never stops the run, and reviews filtered out by rating or date are never billed.
country set to gb, de, fr, jp and so on (or several runs on a schedule) and merge the datasets by reviewId.minRating 1 and maxRating 2 to collect negative reviews; the Actor keeps paging until it finds enough or the store runs out.Up to 500 per app and country from the App Store (the limit of Apple's public feed) and up to 10,000 per app from Google Play, controlled by Max reviews per app. Runs are also capped by the maximum cost you set.
Apple's feed serves up to 500 of the most recent (or most helpful) reviews per country, fewer for apps that do not have that many. Run per country for wider coverage.
language null for Apple reviews?The App Store feed does not accept a language parameter; it returns reviews in whatever language reviewers used in that country's store.
No. Only the public display name shown on the store page is stored, exactly as the store publishes it. Reviewer names are personal data in many jurisdictions; you are responsible for using the results in compliance with the privacy laws that apply to you (GDPR, CCPA and similar) and with the store terms.
The Actor only reads pages and feeds that Apple and Google publish to everyone without a login, at low request rates, and stores what the stores show publicly. Using the data lawfully and within the store terms is your responsibility.
No. Output fields are stable: existing fields are never renamed or removed without a major version bump announced in the changelog, and new fields are only ever added. You can build integrations on the schema without checking it after every run.
Best Damn App Reviews Scraper plugs into the tools you already use through Apify integrations, so results can flow on without anyone downloading a file. Ready-made connectors include:
You can also attach webhooks to trigger your own endpoint whenever a run succeeds, fails or times out. For example, post new one-star reviews to a Slack channel, or open a GitHub issue for every bug report users leave.
Found an app that is not parsed correctly or need an extra field? Open a ticket in the Issues tab of this Actor. The source code is MIT licensed. If this Actor saved you time, a review on its Store page helps other people find it.
The full source code is on GitHub: josh99smith/app-reviews-scraper. Stars and pull requests are welcome.