---
title: "Calculate an ASO optimization score (0–100)"
method: GET
path: "/api/v1/apps/aso-score"
tags: ["Apps"]
---

# Calculate an ASO optimization score (0–100)

`GET /api/v1/apps/aso-score`

## Request

- Base URL: `https://api.trysonar.app`
- URL: `https://api.trysonar.app/api/v1/apps/aso-score`
- Auth: one of:
  - none
  - HTTP bearer

Calculate an ASO optimization score (0–100)

## Query parameters

- `store` 'ios' | 'android', required
- `id` string, required
- `country` string

## Response `200`

ASO score breakdown

- object
  - `data` object, required: Result payload — full field reference at https://trysonar.app/docs/api

## Other responses

- `400`: Missing or invalid request parameters
- `401`: Missing or invalid API key
- `429`: Rate limited — see `error.reason`: daily_limit (Indie plan: 1,000 requests/day, resets 00:00 UTC; see `reset_at`), anonymous_daily_limit / batch_too_large (keyless free tier), store_rate_limited or concurrency_limit (transient, honor `retry_after_seconds`)
- `500`: Unexpected server error

---

[API](https://skmtc.dev/trysonar/apis/sonar-api.md) · [All operations](https://skmtc.dev/trysonar/apis/sonar-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trysonar/apis/sonar-api/revisions/73fe8bc46522?raw)
