API reference
A read-only REST API to pull your reviews, ratings, and trends — for BI tools, data warehouses, or custom workflows. Available on the Studio plan. Create a key on the API keys page.
Authentication
Pass your key as a Bearer token. Keys are scoped to your workspace and only ever return your own data.
curl https://reviewcast.co/api/v1/apps \ -H "Authorization: Bearer rc_live_xxxxxxxx..."
Base URL & limits
- Base URL:
https://reviewcast.co/api/v1 - Rate limit: 60 requests/minute per key (429 with a retry hint when exceeded).
- All responses are JSON. Dates are ISO-8601 (UTC).
/appsYour tracked apps. Use each app’s id to filter the other endpoints.
{
"apps": [
{ "id": "clx…", "name": "Pocket Peaks", "store": "googleplay",
"externalAppId": "com.pocketpeaks.app", "appIcon": "https://…" }
]
}/reviewsYour reviews, newest first, cursor-paginated. Query params (all optional): app (an app id), store, from/to (YYYY-MM-DD), rating (1–5), sentiment, topic, limit (≤100), cursor.
Each review’s topics, and the ?topic= filter, reflect your workspace’s own topic edits: a topic removed from or added to a review in the dashboard is removed or added here too.
{
"reviews": [
{
"id": "…", "store": "appstore", "externalAppId": "6569248884",
"author": "Jane", "rating": 5, "title": "Love it", "text": "…",
"translatedText": null, "translatedFrom": null,
"version": "1.4.0", "country": "us", "date": "2026-06-26T10:12:00.000Z",
"sentiment": { "label": "positive", "score": 0.9 }, "topics": ["UI/UX"]
}
],
"nextCursor": "…" // pass back as ?cursor= for the next page, or null
}/ratings?app=<id>Latest all-time rating summary for one app (from our daily snapshots).
{
"app": { "id": "clx…", "store": "appstore", "externalAppId": "6569248884" },
"rating": {
"average": 4.42, "total": 12500,
"histogram": { "1": 400, "2": 300, "3": 900, "4": 2950, "5": 7950 },
"capturedOn": "2026-06-28"
}
}/trends?app=<id>Weekly series for one app — volume by store, average rating, sentiment mix, and top topics. Each app is one store listing, so trends cover one store per app and only that store’s count is non-zero. Optional from/to (YYYY-MM-DD).
weekly buckets are whole ISO weeks (Monday–Sunday, UTC), keyed by the Monday: every week that overlaps from–to is returned complete, so the first and last buckets can include a few days outside the range. Weeks with no reviews are omitted rather than returned as zeros. totals, ratingDistribution and topTopics count only reviews dated inside from–to. Like /reviews, topTopics reflects your workspace’s own topic edits.
{
"weekly": [ { "week": "2026-06-22", "label": "Jun 22",
"appstore": 52, "googleplay": 0, "total": 52,
"positive": 30, "neutral": 8, "negative": 10, "mixed": 4,
"analyzed": 52, "avgScore": 4.25 } ],
"totals": { "total": 52, "analyzed": 52,
"positive": 30, "neutral": 8, "negative": 10, "mixed": 4 },
"ratingDistribution": [ { "score": 1, "count": 3 }, { "score": 2, "count": 3 },
{ "score": 3, "count": 3 }, { "score": 4, "count": 12 }, { "score": 5, "count": 31 } ],
"topTopics": [ { "topic": "Performance", "count": 14 } ]
}Need write access, more resources, or a higher rate limit? Tell us — this is v1 and we’re expanding it.