API docs
Base URL https://api.appumi.sorakiton.com. All endpoints are GET and return JSON. CORS is open.
Authentication
No key needed. For higher limits, create a key on your account page and send it in the X-API-Key header.
curl -H "X-API-Key: YOUR_KEY" "https://api.appumi.sorakiton.com/api/apps?q=email&limit=3"
Keep keys server side.
Rate limits
- Anonymous: 60 requests per minute per IP address
- Free key: 120 requests per minute per key
- Pro key: 600 requests per minute per key
The X-RateLimit-Limit header shows your limit. See pricing.
Errors
- 401
- The X-API-Key header is invalid or the key is revoked.
{"error":"invalid or inactive api key"}- 404
- Unknown app handle.
{"error":"not found"}- 429
- Rate limit exceeded. Retry after the seconds in the Retry-After header.
{"error":"rate limit exceeded","retryAfter":60}- 500
- Server error. Retry later.
{"error":"failed to fetch stats"}
App fields
id, handle- The app's App Store handle (same value).
name- App name.
developer- Developer name, or null.
category- Primary category slug, or null.
pricingModel- free, freemium, free_to_install, free_trial, recurring, one_time, or null.
rating- Average star rating, or null.
reviewCount- Number of reviews, or null.
firstSeen- Date the app first appeared in Appumi (YYYY-MM-DD, UTC).
lastSeen- Date of the latest update (YYYY-MM-DD, UTC).
GET /api/stats
Totals for the whole dataset.
newToday and newThisWeek count apps added in that window. date is today in UTC.
curl "https://api.appumi.sorakiton.com/api/stats"
{
"totalApps": 12345,
"avgRating": 4.21,
"newToday": 4,
"newThisWeek": 37,
"categories": 52,
"topCategory": "store-design",
"topCategoryCount": 1830,
"date": "2026-10-31"
}GET /api/apps
Search and list apps.
q- Substring match on the app name, up to 100 characters.
category- Exact category slug, as returned in the category field.
limit- 1 to 200, default 50.
offset- 0 to 10000, default 0.
total is the number of matches, ignoring limit and offset.
curl "https://api.appumi.sorakiton.com/api/apps?q=email&limit=1"
{
"data": [
{
"id": "example-app",
"handle": "example-app",
"name": "Example App",
"developer": "Example Developer",
"category": "marketing-and-conversion",
"pricingModel": "free_to_install",
"rating": 4.8,
"reviewCount": 1250,
"firstSeen": "2026-09-12",
"lastSeen": "2026-10-31"
}
],
"total": 1,
"limit": 1,
"offset": 0
}GET /api/apps/:handle
One app by its App Store handle, with its latest snapshot.
The handle is the last part of the app's URL on apps.shopify.com. Unknown handles return 404.
curl "https://api.appumi.sorakiton.com/api/apps/example-app"
{
"id": "example-app",
"handle": "example-app",
"name": "Example App",
"developer": "Example Developer",
"category": "marketing-and-conversion",
"pricingModel": "free_to_install",
"rating": 4.8,
"reviewCount": 1250,
"firstSeen": "2026-09-12",
"lastSeen": "2026-10-31",
"latestSnapshot": {
"date": "2026-10-31",
"rating": 4.8,
"reviewCount": 1250
}
}GET /api/apps/:handle/history
Daily snapshots of rating and review count, newest first.
days- 1 to 365, default 30.
At most one snapshot per app per day.
curl "https://api.appumi.sorakiton.com/api/apps/example-app/history?days=7"
{
"handle": "example-app",
"days": 7,
"data": [
{
"date": "2026-10-31",
"rating": 4.8,
"reviewCount": 1250
}
]
}GET /api/movers
Apps whose review count changed the most over a window.
days- 1 to 90, default 7.
limit- 1 to 100, default 20.
Sorted by the absolute review count change. Fields in this response are snake_case.
curl "https://api.appumi.sorakiton.com/api/movers?days=7&limit=1"
{
"days": 7,
"data": [
{
"handle": "example-app",
"name": "Example App",
"developer": "Example Developer",
"category": "marketing-and-conversion",
"app_id": "example-app",
"review_count_start": 1190,
"review_count_end": 1250,
"review_delta": 60,
"rating_start": 4.8,
"rating_end": 4.8,
"rating_delta": 0
}
]
}GET /api/new
Apps added recently, newest first.
days- 1 to 90, default 7.
limit- 1 to 100, default 20.
curl "https://api.appumi.sorakiton.com/api/new?days=7&limit=1"
{
"days": 7,
"data": [
{
"id": "example-app",
"handle": "example-app",
"name": "Example App",
"developer": "Example Developer",
"category": "marketing-and-conversion",
"pricingModel": "free_to_install",
"rating": 4.8,
"reviewCount": 1250,
"firstSeen": "2026-10-30",
"lastSeen": "2026-10-31"
}
]
}