Skip to main content

Documentation Index

Fetch the complete documentation index at: https://usenaive.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

App Data is the primitive that gives your agent access to mobile application intelligence from Google Play and the Apple App Store. Search for apps by keyword, get detailed app metadata, collect user reviews, browse top charts, and search live app listings — all through a unified API. Most endpoints use the Standard (async) method; App Listings provides instant live results.

CLI First

# Google Play app search
naive app-data google app-searches --keyword "fitness tracker" --location-code 2840

# Apple App Store listings
naive app-data apple app-listings --title "fitness" --location-code 2840 --language-code en

Endpoints

EndpointTypeDescriptionSpeedCost
app-searchesStandardSearch apps by keyword~5-15s (async)1 credit
app-listStandardTop charts / category rankings~5-15s (async)1 credit
app-infoStandardDetailed app metadata and stats~5-15s (async)1 credit
app-reviewsStandardUser reviews and ratings~5-15s (async)1 credit
app-listingsLiveSearch app listings — instant resultsFast (~2s)1 credit
locationsMetaValid location codes for a platformFast (~1s)Free
languagesMetaValid language codes for a platformFast (~1s)Free
categoriesMetaApp store category listFast (~1s)Free
id-listUtilityList task IDs with status infoFast (~1s)Free
All Standard and Live endpoints are available for both Google Play and Apple App Store via the same route pattern: /v1/app-data/{google|apple}/{endpoint}.

Google Play Endpoints

Standard (Async) Endpoints

EndpointRouteDescription
app-searchesPOST /v1/app-data/google/app-searchesSearch Google Play by keyword
app-listPOST /v1/app-data/google/app-listGoogle Play top charts by category
app-infoPOST /v1/app-data/google/app-infoDetailed app metadata (installs, rating, description)
app-reviewsPOST /v1/app-data/google/app-reviewsUser reviews with ratings and text

Live Endpoint

EndpointRouteDescription
app-listingsPOST /v1/app-data/google/app-listingsSearch Google Play listings — instant results

Meta Endpoints

EndpointRouteDescription
locationsGET /v1/app-data/google/locationsValid location codes for Google Play
languagesGET /v1/app-data/google/languagesValid language codes for Google Play
categoriesGET /v1/app-data/google/categoriesGoogle Play category list

Apple App Store Endpoints

Standard (Async) Endpoints

EndpointRouteDescription
app-searchesPOST /v1/app-data/apple/app-searchesSearch App Store by keyword
app-listPOST /v1/app-data/apple/app-listApp Store top charts by category
app-infoPOST /v1/app-data/apple/app-infoDetailed app metadata (rating, description, price)
app-reviewsPOST /v1/app-data/apple/app-reviewsUser reviews with ratings and text

Live Endpoint

EndpointRouteDescription
app-listingsPOST /v1/app-data/apple/app-listingsSearch App Store listings — instant results

Meta Endpoints

EndpointRouteDescription
locationsGET /v1/app-data/apple/locationsValid location codes for App Store
languagesGET /v1/app-data/apple/languagesValid language codes for App Store
categoriesGET /v1/app-data/apple/categoriesApp Store category list

General Utility

EndpointRouteMethodDescription
id-listPOST /v1/app-data/id-listPOSTList all task IDs with status information

Async Workflow (Standard Endpoints)

Standard endpoints use a three-step async pattern:
  1. Submit a task via POST /v1/app-data/{platform}/{endpoint} — returns a task ID.
  2. Check readiness via GET /v1/app-data/{platform}/{endpoint}/tasks-ready — returns ready task IDs.
  3. Retrieve results via GET /v1/app-data/{platform}/{endpoint}/:task_id — returns full results.
Google Play standard endpoints also support an HTML format: GET /v1/app-data/google/{endpoint}/:task_id/html.
# Step 1: Submit a search task
curl -X POST https://api.usenaive.ai/v1/app-data/google/app-searches \
  -H "Authorization: Bearer nv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "fitness tracker",
    "location_code": 2840,
    "language_code": "en",
    "depth": 50
  }'

# Step 2: Check for ready tasks
curl -G https://api.usenaive.ai/v1/app-data/google/app-searches/tasks-ready \
  -H "Authorization: Bearer nv_sk_your_key"

# Step 3: Retrieve results (advanced format)
curl -G https://api.usenaive.ai/v1/app-data/google/app-searches/TASK_ID \
  -H "Authorization: Bearer nv_sk_your_key"

# Step 3 (alt): Retrieve results (HTML format — Google only)
curl -G https://api.usenaive.ai/v1/app-data/google/app-searches/TASK_ID/html \
  -H "Authorization: Bearer nv_sk_your_key"
Response (task submit):
{
  "task_id": "05241305-1535-0066-0000-c3a3f8e8e6a7",
  "status": "queued",
  "credits_used": 1
}
Response (task get — app-searches):
{
  "task_id": "05241305-1535-0066-0000-c3a3f8e8e6a7",
  "status": "completed",
  "results": [
    {
      "title": "Fitbit: Health & Fitness",
      "app_id": "com.fitbit.FitbitMobile",
      "url": "https://play.google.com/store/apps/details?id=com.fitbit.FitbitMobile",
      "icon": "https://play-lh.googleusercontent.com/...",
      "rating": 3.8,
      "reviews_count": 1245000,
      "price": 0,
      "is_free": true,
      "rank_absolute": 1,
      "rank_group": 1
    },
    {
      "title": "Google Fit: Activity Tracking",
      "app_id": "com.google.android.apps.fitness",
      "rating": 4.1,
      "reviews_count": 890000,
      "price": 0,
      "is_free": true,
      "rank_absolute": 2,
      "rank_group": 2
    }
  ]
}

Parameters (app-searches)

ParamTypeRequiredDefaultDescription
keywordstringYesSearch keyword
location_codenumberNoLocation code (e.g. 2840 for US)
language_codestringNoLanguage code (e.g. “en”)
depthnumberNo100Number of results to retrieve

When to use

  • Finding apps that rank for a keyword on Google Play or App Store
  • Competitive keyword research for ASO (App Store Optimization)
  • Tracking which apps appear for your target keywords

App Listings (Live)

Instant search across app listings — no async wait. Available for both platforms.
# Google Play listings
curl -X POST https://api.usenaive.ai/v1/app-data/google/app-listings \
  -H "Authorization: Bearer nv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "categories": ["HEALTH_AND_FITNESS"],
    "title": "fitness",
    "location_code": 2840,
    "language_code": "en"
  }'

# App Store listings
curl -X POST https://api.usenaive.ai/v1/app-data/apple/app-listings \
  -H "Authorization: Bearer nv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "categories": ["6013"],
    "title": "fitness",
    "location_code": 2840,
    "language_code": "en"
  }'
Response (app-listings):
{
  "results": [
    {
      "title": "Strava: Run, Ride, Hike",
      "app_id": "com.strava",
      "url": "https://play.google.com/store/apps/details?id=com.strava",
      "icon": "https://play-lh.googleusercontent.com/...",
      "rating": 4.2,
      "reviews_count": 2340000,
      "installs_count": 100000000,
      "price": 0,
      "is_free": true,
      "category": "Health & Fitness",
      "developer": "Strava Inc.",
      "last_update_date": "2026-04-28"
    }
  ],
  "credits_used": 1
}

Parameters (app-listings)

ParamTypeRequiredDefaultDescription
titlestringNoFilter by app title
categoriesstring[]NoFilter by category codes
location_codenumberNoLocation code
language_codestringNoLanguage code
limitnumberNo100Max results
offsetnumberNo0Pagination offset
filtersarrayNoFilter conditions
order_byarrayNoSort order

When to use

  • Browsing apps in a category without waiting for async tasks
  • Quick competitive scans of a market segment
  • Finding apps by title or category in real time

App Info

Retrieve detailed metadata for a specific app.
# Google Play app info
curl -X POST https://api.usenaive.ai/v1/app-data/google/app-info \
  -H "Authorization: Bearer nv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "app_id": "com.strava" }'

# App Store app info
curl -X POST https://api.usenaive.ai/v1/app-data/apple/app-info \
  -H "Authorization: Bearer nv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "app_id": "426826491" }'
Response (task get — app-info, Google Play):
{
  "task_id": "05241305-1535-0066-0000-d4b4g9f9f7b8",
  "status": "completed",
  "results": [
    {
      "app_id": "com.strava",
      "title": "Strava: Run, Ride, Hike",
      "url": "https://play.google.com/store/apps/details?id=com.strava",
      "description": "Track your running, cycling, and hiking activities...",
      "icon": "https://play-lh.googleusercontent.com/...",
      "rating": 4.2,
      "reviews_count": 2340000,
      "installs": "100,000,000+",
      "installs_count": 100000000,
      "price": 0,
      "is_free": true,
      "category": "Health & Fitness",
      "developer": "Strava Inc.",
      "developer_email": "support@strava.com",
      "minimum_os_version": "7.0",
      "size": "45M",
      "released_date": "2012-08-29",
      "last_update_date": "2026-04-28",
      "content_rating": "Everyone",
      "screenshots": [
        "https://play-lh.googleusercontent.com/screenshot1...",
        "https://play-lh.googleusercontent.com/screenshot2..."
      ]
    }
  ]
}

Parameters (app-info)

ParamTypeRequiredDefaultDescription
app_idstringYesApp package name (Google: “com.example.app”) or numeric ID (Apple: “426826491”)
location_codenumberNoLocation code
language_codestringNoLanguage code

When to use

  • Getting full metadata for a specific app (installs, ratings, screenshots)
  • Building competitive intelligence reports
  • Monitoring app store listing changes over time

Task Retrieval Formats

Google Play standard endpoints support two retrieval formats via the task-get URL:
FormatURL PatternDescription
Advanced (default)GET /v1/app-data/google/{endpoint}/:task_idStructured JSON with parsed fields
HTMLGET /v1/app-data/google/{endpoint}/:task_id/htmlRaw HTML from the app store page
Apple App Store endpoints only support the advanced (default) format.

Credit Costs

OperationEndpointsCost
Task submission (task_post)app-searches, app-list, app-info, app-reviews1 credit
Liveapp-listings1 credit
Task retrieval (task_get)All standard endpointsFree (included with submission)
Tasks ready checkAll standard endpointsFree
Meta / Utilitylocations, languages, categories, id-listFree

Error Handling

ErrorCauseRecovery
insufficient_creditsNot enough credits for the operationCheck balance with GET /v1/status
invalid_platformUnknown platform slugUse "google" or "apple"
invalid_app_idMissing or malformed app identifierProvide a valid package name (Google) or numeric ID (Apple)
task_not_foundTask ID doesn’t exist or has expiredResubmit the task
task_not_readyTask is still processingPoll tasks-ready or wait and retry
provider_errorData provider returned an errorRetry after a few seconds
Google Play endpoints support HTML format for task retrieval — append /html to the task-get URL to receive raw app store HTML instead of parsed JSON. This is useful when you need the full page layout or want to extract fields not covered by the advanced format.

Typical Workflow

Agent receives task: "Analyze our fitness app competitors"

    ├─ POST /v1/app-data/google/app-searches              → Find competitor apps
    │   { keyword: "fitness tracker", location_code: 2840 }
    │   → Task ID returned

    ├─ GET /v1/app-data/google/app-searches/:task_id       → Get search results
    │   → List of apps with rankings and ratings

    ├─ POST /v1/app-data/google/app-info                   → Get full app details
    │   { app_id: "com.strava" }
    │   → Task ID → installs, rating, description, screenshots

    ├─ POST /v1/app-data/google/app-reviews                → Read user reviews
    │   { app_id: "com.strava", depth: 100 }
    │   → Task ID → reviews with ratings and text

    ├─ POST /v1/app-data/apple/app-listings                → Cross-platform check
    │   { title: "fitness tracker", categories: ["6013"] }
    │   → Instant App Store listing results

    └─ POST /v1/app-data/apple/app-info                    → App Store details
        { app_id: "426826491" }
        → Task ID → price, rating, App Store metadata