PUBLIC API · BUSINESS+

Your ASO data,
in your stack.

Pull the keyword rankings, research, ASO scores, competitors, and opportunities you already track into your own dashboards, BI tools, or scripts — by API key. Self-serve from the Business plan. No enterprise contract, no sales call.

Start 7-Day Trial 7-day free trial · cancel anytime
asoscan · v1
$ curl https://asoscan.com/api/public/v1/apps/{id}/keywords \
    -H "Authorization: Bearer asosk_live_…"

[
  { "term": "habit tracker", "rank": 6, "rankDelta": 4,
    "volume": 38000, "difficulty": 41, "isFavorite": true },
  { "term": "daily planner", "rank": 18, "rankDelta": -2,
    "volume": 21000, "difficulty": 52, "isFavorite": false }
]

Clean numbers, JSON, the same data you see in the dashboard. Every response carries your remaining-credit headers.

01

Everything you track, by key

Apps, tracked keywords with rank + movement, ASO score + pillar breakdown, competitors, pre-computed opportunities, and live keyword research — each a simple GET. Write-scoped keys can add keywords and competitors too.

02

Self-serve, mid-market price

Create keys from your dashboard on the Business plan — read-only or read-write, your call. A monthly credit allowance, an OpenAPI spec, and a Postman collection. No "contact sales," no enterprise minimum.

03

Honest by construction

Scoped keys, a live credit meter, per-request quota headers, and the same clean numbers as the app — no data-source noise. Revoke a key any time; it can never authenticate again.

WHAT YOU CAN CALL

A small, stable surface.

Versioned at /api/public/v1. Authenticate with Authorization: Bearer asosk_live_….

GET/appsYour tracked apps
GET/apps/{id}/keywordsRanks, movement, volume, difficulty
GET/apps/{id}/aso-scoreScore + pillars + recommendations
GET/apps/{id}/opportunitiesRanked keyword opportunities
GET/apps/{id}/competitorsThe competitors you track
GET/apps/{id}/keywords/researchLive volume + difficulty + top apps
GET/apps/{id}/keywords/{keywordId}/historyDaily rank history for a keyword
GET/apps/{id}/keywords/{keywordId}/metrics-historyVolume + difficulty over time
GET/apps/{id}/reviewsReviews (paginated)
GET/apps/{id}/reviews/insightsSentiment + top topics, bugs, requests
GET/apps/{id}/category-rankCategory-chart position over time
GET/apps/{id}/rating-historyAverage rating + total over time
GET/apps/{id}/metadataCurrent store metadata text
GET/apps/{id}/metadata/changelogField-level before/after history
GET/apps/{id}/keyword-spyEvery keyword this app ranks for
POST/apps/{id}/keywordsTrack new keywords (write scope)
POST/apps/{id}/competitorsTrack a competitor (write scope)
GET/usageYour credit balance + per-endpoint breakdown

Full reference + try-it console ↗

WEBHOOKS · PUSH, NOT POLL

Get a signed POST the moment things change.

Register an HTTPS endpoint and ASOScan delivers an HMAC-signed event when one fires:

alert.triggeredapp.sync_completedcompetitor.metadata_changedreview.analyzedkeyword.rank_updatedopportunities.ready

Every delivery is signed (X-ASOScan-Signature: t=…,v1=…), retried with backoff, and verifiable with a stdlib HMAC check — no SDK required.

Prefer chat? Point an endpoint at your Slack or Microsoft Teams incoming-webhook URL and events arrive as formatted channel messages — no code at all.

What the API doesn't do (yet). It reads and writes the data you track — it does not publish metadata to the App Store or Play Store on your behalf, and there are no official client SDKs yet (OpenAPI + a Postman collection cover code-gen). Webhooks notify you of events; like everything else at ASOScan, they're not a ranking signal and we never claim otherwise.
REASONABLE QUESTIONS

Honest answers,
including the "not yet"s.

Which plans include the API?

Business and above. Keys are created from your dashboard; lower tiers see an upgrade prompt instead. There's a monthly credit allowance per tier, with a live meter in settings and remaining-credit headers on every response.

Can a key only read, or also write?

You choose at creation. A read-only key can pull everything; a read-write key can also add keywords and competitors. Write endpoints reject a read-only key with a clear "insufficient scope" error.

Can one account's key see another's data?

No. Every call is scoped to the key owner — request another account's app id and you get a 404. Keys are stored hashed; the secret is shown once at creation and is never recoverable.

Are the numbers "estimated"?

We present clean numbers — the same values the dashboard shows, with no data-source labels. You read volume, difficulty, rank, and score as plain numbers and use them however you like.

Do you have SDKs?

Not yet — the API ships with an OpenAPI spec and a Postman collection, so you can generate a client in any language or import it into Postman. First-party SDKs are on the roadmap.

Build on
your numbers.

Start a trial, upgrade to Business, and mint your first key from settings in under a minute.

Already on Business? Open the API reference →