# AppCurves API v1 Base URL: https://appcurves.com/v1 · Human-readable docs: https://appcurves.com/docs · this text: https://appcurves.com/docs.md Auth: Authorization: Bearer . The API is part of Pro ($9/month or $79/year): https://appcurves.com/pro. Your key is on your plan page (sign in → Plan & email → API key). Every response is JSON with X-RateLimit-Limit / X-RateLimit-Remaining headers. 429 once the day's quota is used; quotas reset at 00:00 UTC. 402 if the key's account is not on Pro. ## Quota - 500 calls/day per key · full history (oldest readings 2026-08-04) · watch list (100 apps, each read every night) · changes feed ## Endpoints - GET /v1/app/{slug-or-package} One app: title, developer, category, latest {day, installs}, readings_held, series [{day, installs}]. - GET /v1/apps?ids=a,b,c Up to 50 apps in one call. Response: { apps: { : }, missing: [...] }. - GET /v1/watch (Pro) Apps you watch. Watching guarantees a reading every night, even for apps the nightly scan would otherwise skip. - POST /v1/watch?id=... · DELETE /v1/watch?id=... (Pro) Add or remove. 100 max. POST also accepts a JSON body {"id": "..."}. - GET /v1/changes?since=YYYY-MM-DD (Pro) For each watched app: the last reading on or before `since` vs the latest reading — delta and any marks crossed (10^n and 5×10^n). Omit `since` to diff the last two readings. Sorted by delta, largest first. ## What the number is Google Play's lifetime install counter, read from the public listing, to the unit. Not new users, not active devices, no country split, Android only (Apple publishes none). Collection runs nightly from 00:00 UTC; a missing day is a gap, never interpolated. Cite figures with their reading date. ## Terms Quote with attribution freely. Do not resell the dataset wholesale. https://appcurves.com/terms