ASO MANIAC

API Reference

Everything you need to integrate ASO Maniac into your workflow.

Base URL: https://api.asomaniac.com

Authentication

All API requests require authentication via an API key. Include your key in the Authorization header of every request.

Header Format

Authorization: Bearer <api_key>

Your API key starts with sk_live_ (production) or sk_test_ (sandbox). Get your key from the Dashboard Settings.

Rate Limits

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

PlanRequestsBurst
Free100/day10/min
Pro10,000/day100/min
EnterpriseUnlimited1,000/min

Example Request

curl -X POST https://api.asomaniac.com/v1/keywords/analyze \  -H "Authorization: Bearer sk_live_your_api_key" \  -H "Content-Type: application/json" \  -d '{"keyword": "fitness tracker"}'

Keywords

POST/api/v1/keywords/analyze

Analyze keyword popularity and competition for a given storefront.

Parameters

NameTypeRequiredDescription
keywordstringRequiredThe keyword to analyze
storefrontstringOptionalTwo-letter country code (default: "us")
devicestringOptional"iphone" or "ipad" (default: "iphone")

Request Body

{  "keyword": "fitness tracker",  "storefront": "us",  "device": "iphone"}

Request Example

curl -X POST https://api.asomaniac.com/v1/keywords/analyze \  -H "Authorization: Bearer sk_live_your_key" \  -H "Content-Type: application/json" \  -d '{"keyword": "fitness tracker", "storefront": "us"}'

Response

{  "keyword": "fitness tracker",  "popularity": 62,  "difficulty": 45,  "competitorCount": 185,  "topApps": [    { "name": "Fitbit", "rank": 1 }  ]}
POST/api/v1/keywords/batch

Analyze multiple keywords in a single request.

Parameters

NameTypeRequiredDescription
keywordsstring[]RequiredArray of keywords to analyze (max 50)
storefrontstringOptionalTwo-letter country code (default: "us")

Request Body

{  "keywords": ["fitness tracker", "step counter", "workout log"],  "storefront": "us"}

Request Example

curl -X POST https://api.asomaniac.com/v1/keywords/batch \  -H "Authorization: Bearer sk_live_your_key" \  -H "Content-Type: application/json" \  -d '{"keywords": ["fitness tracker", "step counter"], "storefront": "us"}'

Response

{  "results": [    { "keyword": "fitness tracker", "popularity": 62, "difficulty": 45 },    { "keyword": "step counter", "popularity": 48, "difficulty": 32 },    { "keyword": "workout log", "popularity": 35, "difficulty": 28 }  ],  "creditsUsed": 3}
GET/api/v1/keywords/recommendations

Get AI-powered keyword recommendations based on your tracked app metadata.

Parameters

NameTypeRequiredDescription
appIdstringRequiredThe tracked app ID
limitnumberOptionalNumber of recommendations (default: 20, max: 100)

Request Example

curl "https://api.asomaniac.com/v1/keywords/recommendations?appId=com.example.app&limit=20" \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "recommendations": [    {      "keyword": "health monitor",      "popularity": 55,      "difficulty": 30,      "relevance": 0.89,      "reason": "Related to your tracked keywords"    }  ]}

Apps

POST/api/v1/apps/track

Start tracking an app by its App Store or Play Store ID.

Parameters

NameTypeRequiredDescription
appIdstringRequiredThe app bundle ID or package name
storestringRequired"apple" or "google"
keywordsstring[]OptionalInitial keywords to track

Request Body

{  "appId": "com.example.fitness",  "store": "apple",  "keywords": ["fitness tracker", "workout"]}

Request Example

curl -X POST https://api.asomaniac.com/v1/apps/track \  -H "Authorization: Bearer sk_live_your_key" \  -H "Content-Type: application/json" \  -d '{"appId": "com.example.fitness", "store": "apple"}'

Response

{  "id": "app_abc123",  "appId": "com.example.fitness",  "name": "FitTracker Pro",  "store": "apple",  "trackedKeywords": ["fitness tracker", "workout"],  "createdAt": "2026-03-21T10:00:00Z"}
GET/api/v1/apps

List all tracked apps for your account.

Parameters

NameTypeRequiredDescription
storestringOptionalFilter by store: "apple" or "google"

Request Example

curl "https://api.asomaniac.com/v1/apps?store=apple" \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "apps": [    {      "id": "app_abc123",      "appId": "com.example.fitness",      "name": "FitTracker Pro",      "store": "apple",      "trackedKeywords": 12,      "lastUpdated": "2026-03-21T10:00:00Z"    }  ],  "total": 1}
DELETE/api/v1/apps/:id

Remove a tracked app and all associated ranking data.

Parameters

NameTypeRequiredDescription
idstringRequiredThe tracked app ID

Request Example

curl -X DELETE https://api.asomaniac.com/v1/apps/app_abc123 \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "deleted": true,  "id": "app_abc123"}

Rankings

GET/api/v1/rankings

Get historical ranking data for a tracked app and keyword.

Parameters

NameTypeRequiredDescription
appIdstringRequiredThe tracked app ID
keywordstringOptionalFilter by specific keyword
fromstringOptionalStart date (ISO 8601)
tostringOptionalEnd date (ISO 8601)

Request Example

curl "https://api.asomaniac.com/v1/rankings?appId=app_abc123&keyword=fitness+tracker&from=2026-03-01" \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "appId": "app_abc123",  "rankings": [    {      "keyword": "fitness tracker",      "date": "2026-03-21",      "rank": 12,      "change": -3    },    {      "keyword": "fitness tracker",      "date": "2026-03-20",      "rank": 15,      "change": 2    }  ]}

Webhooks

POST/api/v1/webhooks

Create a webhook subscription for ranking change events.

Parameters

NameTypeRequiredDescription
urlstringRequiredThe URL to receive webhook events
eventsstring[]RequiredEvent types: "ranking.changed", "ranking.dropped", "keyword.trending"
secretstringOptionalSigning secret for webhook verification

Request Body

{  "url": "https://your-app.com/webhooks/asomaniac",  "events": ["ranking.changed", "ranking.dropped"],  "secret": "whsec_your_secret"}

Request Example

curl -X POST https://api.asomaniac.com/v1/webhooks \  -H "Authorization: Bearer sk_live_your_key" \  -H "Content-Type: application/json" \  -d '{"url": "https://your-app.com/webhooks", "events": ["ranking.changed"]}'

Response

{  "id": "wh_xyz789",  "url": "https://your-app.com/webhooks/asomaniac",  "events": ["ranking.changed", "ranking.dropped"],  "active": true,  "createdAt": "2026-03-21T10:00:00Z"}
GET/api/v1/webhooks

List all webhook subscriptions.

Request Example

curl "https://api.asomaniac.com/v1/webhooks" \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "webhooks": [    {      "id": "wh_xyz789",      "url": "https://your-app.com/webhooks/asomaniac",      "events": ["ranking.changed"],      "active": true,      "lastDelivery": "2026-03-21T09:55:00Z"    }  ]}

Export

GET/api/v1/export

Export ranking and keyword data as CSV or JSON.

Parameters

NameTypeRequiredDescription
formatstringOptional"csv" or "json" (default: "json")
appIdstringOptionalFilter by app ID
fromstringOptionalStart date (ISO 8601)
tostringOptionalEnd date (ISO 8601)

Request Example

curl "https://api.asomaniac.com/v1/export?format=csv&appId=app_abc123&from=2026-03-01" \  -H "Authorization: Bearer sk_live_your_key"

Response

{  "format": "json",  "data": [    {      "app": "FitTracker Pro",      "keyword": "fitness tracker",      "rank": 12,      "popularity": 62,      "date": "2026-03-21"    }  ],  "totalRows": 1}