API Reference
Everything you need to integrate ASO Maniac into your workflow.
Base URL: https://api.asomaniac.comAuthentication
All API requests require authentication via an API key. Include your key in the Authorization header of every request.
Header Format
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.
| Plan | Requests | Burst |
|---|---|---|
| Free | 100/day | 10/min |
| Pro | 10,000/day | 100/min |
| Enterprise | Unlimited | 1,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
Analyze keyword popularity and competition for a given storefront.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| keyword | string | Required | The keyword to analyze |
| storefront | string | Optional | Two-letter country code (default: "us") |
| device | string | Optional | "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 } ]}Analyze multiple keywords in a single request.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| keywords | string[] | Required | Array of keywords to analyze (max 50) |
| storefront | string | Optional | Two-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 AI-powered keyword recommendations based on your tracked app metadata.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Required | The tracked app ID |
| limit | number | Optional | Number 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
Start tracking an app by its App Store or Play Store ID.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Required | The app bundle ID or package name |
| store | string | Required | "apple" or "google" |
| keywords | string[] | Optional | Initial 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"}List all tracked apps for your account.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| store | string | Optional | Filter 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}Remove a tracked app and all associated ranking data.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Required | The 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 historical ranking data for a tracked app and keyword.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Required | The tracked app ID |
| keyword | string | Optional | Filter by specific keyword |
| from | string | Optional | Start date (ISO 8601) |
| to | string | Optional | End 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
Create a webhook subscription for ranking change events.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Required | The URL to receive webhook events |
| events | string[] | Required | Event types: "ranking.changed", "ranking.dropped", "keyword.trending" |
| secret | string | Optional | Signing 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"}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
Export ranking and keyword data as CSV or JSON.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| format | string | Optional | "csv" or "json" (default: "json") |
| appId | string | Optional | Filter by app ID |
| from | string | Optional | Start date (ISO 8601) |
| to | string | Optional | End 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}