The App Store Connect Metrics API returns aggregated sales data from your connected App Store Connect account. Data is synced daily from Apple’s Sales and Trends reports into Appeeky — no need to pass ASC credentials on each request.
Pro feature — requires Indie plan or higher. API key path: 2 credits per request. JWT (web): plan check only.
Overview
| Endpoint | Description |
|---|
GET /v1/connect/metrics | Overview: totals, per-app breakdown, daily rows |
GET /v1/connect/metrics/apps | List app IDs that have metrics data |
GET /v1/connect/metrics/apps/:appId | Single app: daily series + country breakdown |
Data available
- App Units (downloads)
- Revenue (USD)
- In-App Purchases (count)
- Subscriptions (snapshot)
- Free Trials (snapshot)
- Country/Territory breakdown (per-app detail only)
Sync fetches up to 90 days of data. Use from and to to filter the range.
Get Overview Metrics
Returns totals and per-app breakdown for the date range.
Query parameters
| Name | Type | Default | Description |
|---|
from | string | 30 days ago | Start date YYYY-MM-DD |
to | string | today | End date YYYY-MM-DD |
appId | string | — | Optional: filter to one app |
curl "https://api.appeeky.com/v1/connect/metrics?from=2026-02-19&to=2026-03-21" \
-H "X-API-Key: apk_your_key_here"
Response (200 OK):
{
"data": {
"from": "2026-02-19",
"to": "2026-03-21",
"totals": {
"downloads": 1250,
"revenue": 89.5,
"subscriptions": 42,
"trials": 12,
"iap_count": 320
},
"apps": [
{
"appId": "6759740679",
"appName": "Voice Tape Record",
"downloads": 1100,
"revenue": 75.2,
"subscriptions": 38,
"trials": 10,
"iap_count": 280
}
],
"rows": [
{
"app_apple_id": "6759740679",
"app_name": "Voice Tape Record",
"metric_date": "2026-03-20",
"downloads": 45,
"revenue": 3.2,
"subscriptions": 2,
"trials": 0,
"iap_count": 12
}
]
}
}
List Apps with Metrics
GET /v1/connect/metrics/apps
Returns distinct app IDs that have metrics data (for linking to app detail).
curl "https://api.appeeky.com/v1/connect/metrics/apps" \
-H "X-API-Key: apk_your_key_here"
Response (200 OK):
{
"data": [
{ "app_apple_id": "6759740679", "app_name": "Voice Tape Record" }
]
}
Get App Detail (Daily + Countries)
GET /v1/connect/metrics/apps/:appId
Returns daily time series and country/territory breakdown for a single app.
Path parameters
| Name | Description |
|---|
appId | App Store Connect app ID (numeric) |
Query parameters
| Name | Type | Default | Description |
|---|
from | string | 90 days ago | Start date YYYY-MM-DD |
to | string | today | End date YYYY-MM-DD |
curl "https://api.appeeky.com/v1/connect/metrics/apps/6759740679?from=2026-02-19&to=2026-03-21" \
-H "X-API-Key: apk_your_key_here"
Response (200 OK):
{
"data": {
"appId": "6759740679",
"appName": "Voice Tape Record",
"from": "2026-02-19",
"to": "2026-03-21",
"totals": {
"downloads": 1100,
"revenue": 75.2,
"subscriptions": 38,
"trials": 10,
"iap_count": 280
},
"daily": [
{
"metric_date": "2026-03-20",
"downloads": 45,
"revenue": 3.2,
"subscriptions": 2,
"trials": 0,
"iap_count": 12
}
],
"countries": [
{ "country": "US", "downloads": 520, "revenue": 42.1 },
{ "country": "GB", "downloads": 180, "revenue": 12.5 }
]
}
}
Error Codes
| Status | Code | When |
|---|
| 401 | MISSING_AUTH | No Authorization or X-API-Key header |
| 401 | INVALID_TOKEN | Invalid or expired JWT |
| 401 | INVALID_API_KEY | Invalid or inactive API key |
| 403 | PRO_FEATURE | Free plan — upgrade to Indie or higher |
| 404 | USER_NOT_FOUND | User not in system (connect ASC first) |
| 429 | RATE_LIMIT_EXCEEDED | Not enough credits (2 per request) |
| 500 | METRICS_ERROR | Database or sync error |