Build on the AppWanderer App Store data API
First-party JSON — record boards, per-app metrics, publisher catalogues, category reports, and data studies, the same figures behind every page. Computed from public App Store metadata. Single-resource lookups are public (rate-limited per IP); list and bulk endpoints are by approved API key.
Quickstart
The API is versioned under /api/v1 and returns JSON. Apply for a free key below, then send it as a bearer token:
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://appwanderer.com/api/v1/record/biggest-app?limit=5
Authentication
Send your approved key on every request, as either header:
Authorization: Bearer YOUR_API_KEY # or X-API-Key: YOUR_API_KEY
Two tiers. The three single-resource endpoints — record/{slug}, studies/{slug} and app/{id} — are public and rate-limited per IP, so an agent can fetch one specific fact with no key. Every list/bulk endpoint (records, apps, publishers, categories, studies, almanac, movers, search) requires an approved key and returns a JSON 401 without one:
{
"error": "authentication_required",
"message": "A valid API key is required...",
"hint": "Send your approved key as: Authorization: Bearer YOUR_KEY",
"docs": "https://appwanderer.com/developers"
}
All errors are structured JSON with a machine-readable error code, a message, a resolution hint, and the matching HTTP status — 400 bad request, 401 missing/invalid key, 404 unknown resource, 429 rate limited.
Rate limits
Every response carries the rate-limit state so agents can self-throttle in real time. We emit both the RFC-draft and the X- headers:
RateLimit-Limit: 5000 RateLimit-Remaining: 4998 RateLimit-Reset: 2731 # seconds until the window resets RateLimit-Policy: 5000;w=3600 X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset
The keyed budget is 5,000 requests/hour per key; the public single-resource tier is 240 requests/hour per IP (a valid key raises it to the keyed budget). Both use a rolling one-hour window. Exceeding it returns 429 with a Retry-After header (seconds to wait). Cache where you can — the underlying figures update on a schedule, not per second.
Versioning & deprecation policy
- Path-versioned. The current version is
/api/v1. Additive changes (new fields, new endpoints) ship withinv1and will not break clients. Breaking changes ship under a new path, e.g./api/v2. - Deprecation signals. When an endpoint or version is deprecated we return the
Deprecationheader (RFC 8594) with the deprecation date, and aSunsetheader with the retirement date, plus aLinkto the successor. Deprecated surfaces keep working for at least 6 months after theDeprecationdate. - Changelog. Version changes are announced on this page and to every active key by email before the
Sunsetdate.
Official CLI
A small, dependency-free command-line client wraps the API for scripting and agents. Download it and make it executable:
curl -fsSL https://appwanderer.com/appwanderer-cli.py -o appwanderer && chmod +x appwanderer export APPWANDERER_API_KEY=YOUR_API_KEY ./appwanderer record biggest-app --limit 5 ./appwanderer study app-store-pricing ./appwanderer search weather
Endpoints
Fifteen read-only endpoints. The three marked Public need no key (rate-limited per IP); the rest need an approved key. See the OpenAPI spec for typed parameters and response schemas, and /data for the annotated reference and example payloads.
| Method | Path | Returns | Access |
|---|---|---|---|
| GET | /api/v1 | API index: version, catalogue counts, endpoint list | Public |
| GET | /api/v1/records | All record boards (paginated) | Key |
| GET | /api/v1/record/{slug} | One board with its ranked entries | Public |
| GET | /api/v1/apps | Tracked apps by rating count (paginated) | Key |
| GET | /api/v1/app/{id} | Per-app metrics + record positions | Public |
| GET | /api/v1/publishers | Publisher directory (paginated) | Key |
| GET | /api/v1/developer/{id} | One publisher: dossier + apps | Key |
| GET | /api/v1/categories | All categories | Key |
| GET | /api/v1/category/{slug} | Category report | Key |
| GET | /api/v1/studies | All data studies | Key |
| GET | /api/v1/studies/{slug} | One study's computed figures | Public |
| GET | /api/v1/almanac | Almanac editions | Key |
| GET | /api/v1/almanac/{week} | One almanac edition | Key |
| GET | /api/v1/movers | Board movers (7-day climbers) | Key |
| GET | /api/v1/search?q= | Find apps by name | Key |
Get an API key
Keys are free and issued per application while the API is in beta. Tell us what you would build:
- /openapi.json — OpenAPI 3.1 specification (bearer auth)
- /llms.txt — agent orientation and when-to-use guidance
- /sitemap.xml — indexable pages
- /appwanderer-cli.py — official command-line client