API Documentation

Apple App Store Inbound Keyword API

Explore Google organic keywords leading to apps.apple.com by month and page, with clicks, search volume, CPC, difficulty, intent and Apple App Store destination URLs.

Test API

Explore Google organic keywords leading to apps.apple.com by month and page, with clicks, search volume, CPC, difficulty, intent and Apple App Store destination URLs.

Open the product page and API Tester

Workflow

First call the free batches endpoint and read months from data.result["apps.apple.com"], then query keywords with month and page. The host is fixed to apps.apple.com; host and custom domains are not accepted. Both endpoints require an API key and follow account rate limits.

Available months and status

GET https://api.goanyapi.com/api/v1/app-store-inbound-keyword/batches
ParameterRules
—No parameters.

This endpoint is free and does not consume credits.

curl "https://goanyapi.com/api/v1/app-store-inbound-keyword/batches" \
  -H "Authorization: Bearer $GOANYAPI_API_KEY"

SUCCESS means update complete; RUNNING means updating. month identifies the data month.

The batch page field is the total number of keyword pages available for that month. For RUNNING batches, this total may change as the update progresses.

Paginated keywords

GET https://api.goanyapi.com/api/v1/app-store-inbound-keyword/list
ParameterRules
monthRequired. Month in YYYY-MM format. Use a month returned by goanyapi_app_store_inbound_keyword_batches.
pageOptional. One-based page. Each nonempty successful page is billed separately; empty pages and failures are free.

With the current configuration, each successful request costs 1 credit.

curl "https://goanyapi.com/api/v1/app-store-inbound-keyword/list?month=2026-09&page=1" \
  -H "Authorization: Bearer $GOANYAPI_API_KEY"

Each request retrieves one page; page defaults to 1. Nonempty successful pages use the current database rate. Empty arrays and failures are free; repeated requests are billed separately. The Tester uses available months as a keyword-list filter and loads the choices through the free batches query. Changing the month or page does not request the keyword list. Do not infer total keywords from one page or the batch page field.

Response structure and fields

Successful responses use code: "ok". data contains endpoint, query, result, creditsUsed and remainingCredits. Batch result is an object keyed by apps.apple.com; keyword result is an array.

JSON
data.result[].keyword
data.result[].clicks
data.result[].organic_clicks
data.result[].desktop_clicks
data.result[].previous_clicks_pop
data.result[].share
data.result[].previous_share_pop
data.result[].clicks_change
data.result[].change_ratio
data.result[].change_state
data.result[].keyword_volume
data.result[].keyword_volume_average
data.result[].zero_clicks_share
data.result[].cpc
data.result[].cpc_low_bid
data.result[].cpc_high_bid
data.result[].difficulty
data.result[].competition
data.result[].primary_intent
data.result[].top_url
data.result[].url_count
data.result[].latest_keyword_serp_date
data.result[].keyword_window_volume
data.result[].previous_volume
data.result[].volume_change_state
data.result[].serp_features

Public business fields preserve actual values, null, empty strings, empty arrays and absent fields. No default values are invented and records are not dropped for missing fields. top_url preserves its returned address. Clicks, volume, CPC and difficulty are returned metrics, not Apple App Store internal search, app installs or Apple attribution.

Errors and billing

Invalid parameters return 400; missing authentication 401; insufficient credits 402; rate limits 429; request failures 502; missing pricing 503. HTTP failures, invalid JSON and explicit business failures do not charge query credits. Empty business fields alone are not failures. HEAD returns 405 without executing a query.