Appearance
App Data API Fresh
App Data API provides structured data on mobile applications from the two major app marketplaces: Google Play and Apple App Store. Use it to track app rankings, pull reviews at scale, monitor competitor app metadata, and inform app store optimization (ASO) strategy.
Results are location-accurate — DataForSEO emulates the specified store, language, and location so results match what users in that market actually see.
Supported Platforms
| Platform | API |
|---|---|
| Google Play | Google App Data API |
| Apple App Store | Apple App Data API |
Additional platforms are planned for future support.
All Endpoints (29 total)
Google Play (16 endpoints across 5 sub-groups)
| Sub-Group | Endpoints | What It Returns |
|---|---|---|
| App Searches | 4 | Apps ranking for a keyword on Google Play |
| App List | 4 | Top app charts (top free, top paid, new releases) |
| App Info | 4 | Full app metadata: description, rating, reviews count, version, developer |
| App Reviews | 3 | App reviews with ratings, reviewer data, dates |
| App Listings | 1 | App collection listing data |
Apple App Store (13 endpoints across 5 sub-groups)
| Sub-Group | Endpoints | What It Returns |
|---|---|---|
| App Searches | 3 | Apps ranking for a keyword on App Store |
| App List | 3 | Top App Store charts |
| App Info | 3 | Full App Store listing data |
| App Reviews | 3 | Reviews with rating, text, reviewer, date |
| App Listings | 1 | App collection data |
Quick Endpoint Reference
| Endpoint | Method | Description |
|---|---|---|
/v3/app_data/google/app_searches/task_post | POST | Search Google Play by keyword |
/v3/app_data/google/app_searches/tasks_ready | GET | Get completed search tasks |
/v3/app_data/google/app_searches/task_get/{id}/advanced | GET | Retrieve search results |
/v3/app_data/google/app_info/task_post | POST | Get Google Play app details |
/v3/app_data/google/app_info/tasks_ready | GET | Get completed app info tasks |
/v3/app_data/google/app_info/task_get/{id}/advanced | GET | Retrieve app metadata |
/v3/app_data/google/app_reviews/task_post | POST | Queue app reviews task |
/v3/app_data/google/app_reviews/tasks_ready | GET | Get completed review tasks |
/v3/app_data/google/app_reviews/task_get/{id}/advanced | GET | Retrieve reviews |
/v3/app_data/google/app_list/task_post | POST | Queue top chart task |
/v3/app_data/google/app_list/task_get/{id}/advanced | GET | Retrieve chart data |
/v3/app_data/apple/app_searches/task_post | POST | Search App Store by keyword |
/v3/app_data/apple/app_info/task_post | POST | Get App Store app details |
/v3/app_data/apple/app_reviews/task_post | POST | Queue App Store reviews task |
/v3/app_data/apple/app_list/task_post | POST | Queue App Store chart task |
What You Can Retrieve
- App rankings for specific keywords in a store and location
- App reviews with ratings, reviewer data, and dates
- App details: description, icon, category, rating, review count, version, download counts
- App collections: top free, top paid, top grossing, new releases
- Related apps and competitor suggestions
Method
App Data API uses Standard method only — results are not available instantly.
- POST your task(s) to the task creation endpoint
- GET results after processing
For automated retrieval:
- Specify
postback_urlto receive results pushed to your server on completion. Also includefunction: "advanced"orfunction: "html"when usingpostback_url. - Specify
pingback_urlto receive a notification ping when the task is ready.
If neither is specified, poll the 'Tasks Ready' endpoint for completed task IDs, then retrieve each with the 'Task GET' endpoint.
Functions
| Function | Description |
|---|---|
| Advanced | Full structured data — app metadata, rankings, ratings, all available attributes |
| HTML | Raw HTML of the app store page (Google Play only) |
Note: HTML endpoints are only available for Google App Data API. Apple App Data API returns Advanced function only.
Priority Levels
| Priority | Value | Speed |
|---|---|---|
| Normal | 1 | Standard queue — lower cost |
| High | 2 | Faster processing — higher cost |
Google App Data API Examples
Search Apps by Keyword
POST https://api.dataforseo.com/v3/app_data/google/app_searches/task_post
Find apps that rank for a keyword on Google Play.
bash
curl --request POST \
--url https://api.dataforseo.com/v3/app_data/google/app_searches/task_post \
--header 'Authorization: Basic BASE64(login:password)' \
--header 'Content-Type: application/json' \
--data '[
{
"keyword": "budget tracker",
"location_code": 2840,
"language_code": "en",
"priority": 1
}
]'Get App Details
POST https://api.dataforseo.com/v3/app_data/google/app_info/task_post
Pull full metadata for a specific app by its Google Play app ID.
bash
curl --request POST \
--url https://api.dataforseo.com/v3/app_data/google/app_info/task_post \
--header 'Authorization: Basic BASE64(login:password)' \
--header 'Content-Type: application/json' \
--data '[
{
"app_id": "com.mint.android",
"location_code": 2840,
"language_code": "en",
"priority": 1
}
]'Get App Reviews
POST https://api.dataforseo.com/v3/app_data/google/reviews/task_post
Pull reviews for a specific app including rating, text, reviewer, and date.
bash
curl --request POST \
--url https://api.dataforseo.com/v3/app_data/google/reviews/task_post \
--header 'Authorization: Basic BASE64(login:password)' \
--header 'Content-Type: application/json' \
--data '[
{
"app_id": "com.mint.android",
"location_code": 2840,
"language_code": "en",
"depth": 100,
"sort_by": "most_relevant",
"priority": 1
}
]'Apple App Data API Examples
Search Apps on App Store
POST https://api.dataforseo.com/v3/app_data/apple/app_searches/task_post
Find apps ranking for a keyword on the Apple App Store.
bash
curl --request POST \
--url https://api.dataforseo.com/v3/app_data/apple/app_searches/task_post \
--header 'Authorization: Basic BASE64(login:password)' \
--header 'Content-Type: application/json' \
--data '[
{
"keyword": "expense tracker",
"location_code": 2840,
"language_code": "en",
"priority": 1
}
]'Get App Store App Details
POST https://api.dataforseo.com/v3/app_data/apple/app_info/task_post
Pull full App Store listing data for an app by its Apple app ID.
bash
curl --request POST \
--url https://api.dataforseo.com/v3/app_data/apple/app_info/task_post \
--header 'Authorization: Basic BASE64(login:password)' \
--header 'Content-Type: application/json' \
--data '[
{
"app_id": "284882215",
"location_code": 2840,
"language_code": "en",
"priority": 1
}
]'Python Example — App Competitor Intelligence
python
import requests
from requests.auth import HTTPBasicAuth
import json
import time
LOGIN = "your_login"
PASSWORD = "your_password"
auth = HTTPBasicAuth(LOGIN, PASSWORD)
headers = {"Content-Type": "application/json"}
BASE = "https://api.dataforseo.com/v3/app_data"
def post_app_task(platform, endpoint, params):
payload = [{**params, "priority": 1}]
r = requests.post(
f"{BASE}/{platform}/{endpoint}/task_post",
auth=auth, headers=headers, data=json.dumps(payload)
)
return r.json()["tasks"][0]["id"]
def get_app_task_result(platform, endpoint, task_id):
r = requests.get(
f"{BASE}/{platform}/{endpoint}/task_get/{task_id}/advanced",
auth=auth, headers=headers
)
return r.json()
def keyword_rank_snapshot(keyword, platform="google", location_code=2840):
"""Get the top apps ranking for a keyword in the app store."""
task_id = post_app_task(platform, "app_searches", {
"keyword": keyword,
"location_code": location_code,
"language_code": "en"
})
time.sleep(20) # Wait for processing
data = get_app_task_result(platform, "app_searches", task_id)
items = data["tasks"][0]["result"][0]["items"]
print(f"\nTop apps for '{keyword}' on {platform.title()}:")
for i, item in enumerate(items[:10], 1):
print(f" {i}. {item.get('title', 'N/A')} ({item.get('app_id', 'N/A')})")
print(f" Rating: {item.get('rating', 'N/A')} | Reviews: {item.get('reviews_count', 'N/A')}")
return items
def bulk_app_review_pull(app_ids, platform="google", location_code=2840):
"""Pull reviews for multiple apps concurrently."""
task_map = {}
# Post all tasks
for app_id in app_ids:
task_id = post_app_task(platform, "reviews", {
"app_id": app_id,
"location_code": location_code,
"language_code": "en",
"depth": 100,
"sort_by": "most_recent"
})
task_map[task_id] = app_id
print(f"Task created for {app_id}: {task_id}")
time.sleep(30)
# Collect results
all_reviews = {}
for task_id, app_id in task_map.items():
data = get_app_task_result(platform, "reviews", task_id)
try:
items = data["tasks"][0]["result"][0]["items"]
all_reviews[app_id] = items
print(f"Got {len(items)} reviews for {app_id}")
except (KeyError, IndexError):
all_reviews[app_id] = []
return all_reviews
# Usage
keyword_rank_snapshot("invoicing app", platform="apple")Response Fields (App Info — Advanced)
| Field | Type | Description |
|---|---|---|
app_id | string | App identifier in the store |
title | string | App name |
description | string | Full app description |
category_id | string | Primary category ID |
categories | array | All category tags |
rating | float | Average user rating |
reviews_count | integer | Total number of ratings |
price | float | App price (0 for free) |
developer | string | Developer name |
developer_url | string | Developer profile URL |
version | string | Current version |
updated_at | string | Last update date |
size | string | App file size |
installs | string | Download count range (Google Play) |
icon_url | string | App icon URL |
screenshots | array | Screenshot URLs |
Rate Limits
- Up to 2,000 POST and GET API calls per minute combined
- Each POST can contain up to 100 tasks
Notes
- Location emulation means results reflect the actual app store experience for that market, not a global average.
- Apple App Data API does not support the HTML function — Advanced only.
- Google App Data API supports both Advanced and HTML functions.
postback_urlis the preferred approach for bulk app data collection — avoid polling in high-volume pipelines.- App collection endpoints (top charts, new releases) let you pull entire category rankings without specifying a keyword.