Skip to content

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

PlatformAPI
Google PlayGoogle App Data API
Apple App StoreApple App Data API

Additional platforms are planned for future support.

All Endpoints (29 total)

Google Play (16 endpoints across 5 sub-groups)

Sub-GroupEndpointsWhat It Returns
App Searches4Apps ranking for a keyword on Google Play
App List4Top app charts (top free, top paid, new releases)
App Info4Full app metadata: description, rating, reviews count, version, developer
App Reviews3App reviews with ratings, reviewer data, dates
App Listings1App collection listing data

Apple App Store (13 endpoints across 5 sub-groups)

Sub-GroupEndpointsWhat It Returns
App Searches3Apps ranking for a keyword on App Store
App List3Top App Store charts
App Info3Full App Store listing data
App Reviews3Reviews with rating, text, reviewer, date
App Listings1App collection data

Quick Endpoint Reference

EndpointMethodDescription
/v3/app_data/google/app_searches/task_postPOSTSearch Google Play by keyword
/v3/app_data/google/app_searches/tasks_readyGETGet completed search tasks
/v3/app_data/google/app_searches/task_get/{id}/advancedGETRetrieve search results
/v3/app_data/google/app_info/task_postPOSTGet Google Play app details
/v3/app_data/google/app_info/tasks_readyGETGet completed app info tasks
/v3/app_data/google/app_info/task_get/{id}/advancedGETRetrieve app metadata
/v3/app_data/google/app_reviews/task_postPOSTQueue app reviews task
/v3/app_data/google/app_reviews/tasks_readyGETGet completed review tasks
/v3/app_data/google/app_reviews/task_get/{id}/advancedGETRetrieve reviews
/v3/app_data/google/app_list/task_postPOSTQueue top chart task
/v3/app_data/google/app_list/task_get/{id}/advancedGETRetrieve chart data
/v3/app_data/apple/app_searches/task_postPOSTSearch App Store by keyword
/v3/app_data/apple/app_info/task_postPOSTGet App Store app details
/v3/app_data/apple/app_reviews/task_postPOSTQueue App Store reviews task
/v3/app_data/apple/app_list/task_postPOSTQueue 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.

  1. POST your task(s) to the task creation endpoint
  2. GET results after processing

For automated retrieval:

  • Specify postback_url to receive results pushed to your server on completion. Also include function: "advanced" or function: "html" when using postback_url.
  • Specify pingback_url to 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

FunctionDescription
AdvancedFull structured data — app metadata, rankings, ratings, all available attributes
HTMLRaw 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

PriorityValueSpeed
Normal1Standard queue — lower cost
High2Faster 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)

FieldTypeDescription
app_idstringApp identifier in the store
titlestringApp name
descriptionstringFull app description
category_idstringPrimary category ID
categoriesarrayAll category tags
ratingfloatAverage user rating
reviews_countintegerTotal number of ratings
pricefloatApp price (0 for free)
developerstringDeveloper name
developer_urlstringDeveloper profile URL
versionstringCurrent version
updated_atstringLast update date
sizestringApp file size
installsstringDownload count range (Google Play)
icon_urlstringApp icon URL
screenshotsarrayScreenshot 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_url is 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.

Internal SOP reference — not affiliated with DataForSEO.