ベースURL: https://apkapi.com/api/v1. 登録し、APIキーを アカウントページで 作成してから、最初のリクエストを送信します:
機械可読なAPI記述: OpenAPI 3.1 · Postmanコレクション — Postman、Insomnia、またはクライアントジェネレーター(openapi-generator)にインポートすると、お使いの言語のSDKが手に入ります。
curl -H "X-API-Key: YOUR_KEY" "https://apkapi.com/api/v1/app?id=com.whatsapp"
データは米国ストアの英語版を基にした400万以上のGoogle Playアプリを対象とし(米国で提供されていないアプリは他の国から取得)、毎晩更新されます。ストアから消えたアプリも、最後のデータとともにデータベースに残ります。
/v1/health を除くすべてのリクエストには、ヘッダーにAPIキーが必要です:
X-API-Key: ak_live_…
以下も利用可能: Authorization: Bearer …。キーをURLパラメータで渡すことはできません。ログやブラウザの履歴に残ってしまうためです。
各呼び出しの費用は、レスポンスの行数(最大100)にかかわらず、エンドポイントに応じて0〜3クレジットです。appsの一括呼び出しは1アプリにつき1クレジットです。当月のプランのクレジットが先に使われ、その後プリペイド残高が使われます。当社側の問題でリクエストが失敗した場合、クレジットは返却されます。 プランとパック
| ヘッダー | 意味 |
|---|---|
X-Credits-Cost | このリクエストの消費クレジット |
X-Credits-Remaining | 残りクレジット(プラン+残高) |
X-Cache | HIT — キャッシュから応答(高速)、MISS — インデックスへの新規クエリ |
X-RateLimit-Limit / -Remaining | キーの毎分上限と残り |
X-Plan | free | pro | scale | business |
残りクレジットは、すべてのレスポンスの _credits フィールドと /v1/account(無料)でも確認できます。
すべてのレスポンスに ok フィールドがあります。リストには results、total、page、per、pages が含まれます。エラー時は ok = false で、error に説明、code に機械可読なコードが入ります。日付はUTCのISO 8601形式です。
{ "ok": true, "app": { "id": "com.whatsapp", "title": "WhatsApp", "installs": { "label": "10,000,000,000+", "min": 10000000000, "real": 12445120489 }, … },
"_credits": { "cost": 1, "plan_remaining": 1999, "balance": 0, "available": 1999, "cached": false } }
{ "ok": false, "code": "insufficient_credits", "error": "Not enough credits: this call costs 2, you have 1. …" }
| HTTP | code | 日時 |
|---|---|---|
| 400 | invalid_param, invalid_request | パラメータが無効または不足しています |
| 401 | missing_api_key, invalid_api_key | キーがないか、失効しています |
| 402 | insufficient_credits | クレジット不足 — チャージまたはプランのアップグレードが必要です |
| 403 | account_blocked, plan_required | アカウントがブロックされているか、エンドポイントに上位プランが必要です |
| 404 | not_found | アプリまたはデベロッパーがデータベースにないか、エンドポイントが不明です |
| 429 | rate_limited | 毎分のリクエスト上限を超えました |
| 503 | service_unavailable | データベースの一時的な問題です。後でもう一度お試しください。クレジットは消費されません |
すべてのエンドポイントは GET /api/v1/{name} です。ページ送り: page(1から)と per(1〜100)、10,000件目まで。並べ替え: sort + order=asc|desc。
プラン、プランのクレジットと残高、クレジットのリセット日、毎分の上限。
完全なアプリ記録: タイトル、説明、新機能、インストール数(区分と正確な数)、評価、評価数とレビュー数、星の分布、価格、アプリ内課金、広告、カテゴリ、コンテンツレーティング、バージョン、必要なAndroid、リリース日と更新日、アイコン、スクリーンショット、動画、デベロッパーとそのウェブサイト。削除済みアプリの場合: 最後に保存されたデータと削除日。
id * | アプリのパッケージ名 |
1回の呼び出しで最大100アプリ: GET ?ids=a,b,c、またはbodyにリストを入れたPOST(1行に1件、またはJSON {"ids": […]})。1アプリにつき1クレジット。データベースにないIDは not_found で返されます。
ids * | パッケージ名、カンマ区切り、最大100 |
データベース全体の検索とフィルター。フィルターは1つ以上必須です。qがない場合、結果はインストール数順です。
q | タイトル、説明、デベロッパー名を検索する語句 |
category | カテゴリID。例: GAME_PUZZLE(/v1/categories を参照) |
developer_id | Google PlayのデベロッパーID |
min_installs | 最低インストール数(Google Playの区分: 1000、10000…) |
max_installs | 最大インストール数 |
min_score | 最低評価、0〜5 |
min_ratings | 最小評価件数 |
free | true — 無料のみ、false — 有料のみ |
ads | true — 広告あり、false — 広告なし |
iap | true — アプリ内課金あり |
lang | タイトルの言語、ISOコード: en、de、pt… |
released_from | この日以降にリリース、YYYY-MM-DD |
released_to | この日までにリリース(当日を含む) |
updated_from | この日以降に更新 |
updated_to | この日までに更新(当日を含む) |
status | live(ストアに掲載中、デフォルト)、removed、all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
タイトルの先頭からの候補: 人気の上位10件。無料。
q * | タイトルの先頭、2文字以上 |
デベロッパーとその全アプリ: 件数(掲載中と削除済み)、合計インストール数、平均評価、初回リリース、カテゴリ、ウェブサイト。Businessプランではメール、電話番号、住所、法人名も利用できます。
id | デベロッパーID(アプリの developer.id) |
name | またはデベロッパーの正確な名前 |
status | all(デフォルト)、live、removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
初回リリース日順の新着アプリ。新しいものが上に表示されます。
since | この日から、YYYY-MM-DD(デフォルト: 7日前) |
until | この日まで(当日を含む) |
category | カテゴリID。例: GAME_PUZZLE(/v1/categories を参照) |
min_installs | 最低インストール数(Google Playの区分: 1000、10000…) |
lang | タイトルの言語、ISOコード: en、de、pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
Google Playから消えたアプリ(確認している19か国すべてで見つからないもの)を削除日順に表示。アプリの記録には最後のデータが残ります。
since | この日から、YYYY-MM-DD(デフォルト: 7日前) |
until | この日まで(当日を含む) |
category | カテゴリID。例: GAME_PUZZLE(/v1/categories を参照) |
min_installs | 最低インストール数(Google Playの区分: 1000、10000…) |
sort | removed_at | installs | score |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
言語ごとのアプリタイトルの単語とフレーズ: 使用しているアプリ数とデベロッパー数、そのうち強いアプリ(10万インストール以上)の数、合計インストール数、首位のシェア、機会スコア。
lang | 言語、デフォルトは en |
q | 単語またはフレーズ |
phrase | true — 2語のフレーズのみ、false — 1語のみ |
min_apps | 最小アプリ数 |
max_apps | 最大アプリ数 |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
アプリ数と合計インストール数付きの全カテゴリ。無料。
status | live(ストアに掲載中、デフォルト)、removed、all |
デベロッパーのウェブサイトのドメインが取得可能なアプリと、その人気度。Proプラン以上。
category | カテゴリID。例: GAME_PUZZLE(/v1/categories を参照) |
min_installs | 最低インストール数(Google Playの区分: 1000、10000…) |
status | live(ストアに掲載中、デフォルト)、removed、all |
tld | ドメインゾーン。例: com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
1か国・1カテゴリのGoogle Playランキング: 最大200位まで、前回のスナップショットからの順位変動(change: 上昇した順位数、新規の場合は "new")、アイコン、インストール数。
country * | 国、ISOコード: US、DE、BR… |
category * | カテゴリ。例: GAME_PUZZLE |
collection | free | paid | grossing |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
最新のスナップショットでアプリが掲載されているすべてのランキング: 国、カテゴリ、コレクション、順位、ランキング数と国数、最高順位。
id * | アプリのパッケージ名 |
country | 1か国のみ |
collection | free | paid | grossing |
Google Playでアプリが提供されている国(ストアのサイトマップのhreflangより)。190か国以上の場合は、リストなしで worldwide = true を返します。
id * | アプリのパッケージ名 |
無料ランキングに基づく市場の競争度: トップ100とトップ200の参入基準(その順位のアプリのインストール数)、上位に占める新規アプリ(過去12か月)とローカルアプリ(3か国以下)の割合、ローカル市場の規模。パラメータなし: 全ての国。country: 1か国のカテゴリ。category: 全ての国の1カテゴリ。
country | 国、ISOコード |
category | カテゴリID。例: GAME_PUZZLE(/v1/categories を参照) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | ページ、1から |
per | 1ページの行数、1〜100(デフォルト20) |
データベースの規模: ストアのアプリと削除済みアプリ、デベロッパー、過去7日間の新着と削除、最終更新時刻。無料。
* — 必須パラメータ
# curl — one app
curl -H "X-API-Key: $KEY" "https://apkapi.com/api/v1/app?id=org.telegram.messenger"
# curl — puzzle games with 10M+ installs, best rated first
curl -H "X-API-Key: $KEY" "https://apkapi.com/api/v1/search?category=GAME_PUZZLE&min_installs=10000000&sort=score"
# curl — up to 100 apps in one call (POST, one package per line)
curl -H "X-API-Key: $KEY" --data-binary $'com.whatsapp\norg.telegram.messenger' "https://apkapi.com/api/v1/apps"
# Python — apps removed from Google Play this week
import os, requests
r = requests.get("https://apkapi.com/api/v1/removed",
params={"since": "2026-10-20", "min_installs": 100000, "per": 100},
headers={"X-API-Key": os.environ["KEY"]}, timeout=30)
r.raise_for_status()
data = r.json()
for app in data["results"]:
print(app["removed_seen_at"], app["id"], app["installs"]["label"])
print("credits left:", data["_credits"]["available"])
// Node.js 18+ (サーバー側で、ブラウザではなく)
const res = await fetch("https://apkapi.com/api/v1/developer?id=5191370068110375942", { headers: { "X-API-Key": process.env.KEY } });
const d = await res.json();
if (!d.ok) throw new Error(d.error);
console.log(d.developer.name, d.developer.apps, d.developer.total_installs);
// PHP
$ch = curl_init('https://apkapi.com/api/v1/keywords?lang=en&q=vpn&per=50');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('KEY')]]);
$d = json_decode(curl_exec($ch), true);
foreach ($d['results'] as $k) echo $k['keyword'], ' — ', $k['apps'], PHP_EOL;
キーは アカウントページで作成できます。リクエストはブラウザから直接送信されます。キーはどこにも保存されず、ページを再読み込みすると消えます。 コンソールからのリクエストも通常どおりクレジットを消費します。