APK API दस्तावेज़

Google Play डेटा वाला REST API: 40 लाख ऐप, डेवलपर, नए और हटाए गए ऐप, शीर्षक के कीवर्ड। फ़ॉर्मेट: JSON, एन्कोडिंग: UTF-8, CORS चालू।

त्वरित शुरुआत

बेस 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"

डेटा में अमेरिकी स्टोर से अंग्रेज़ी में 40 लाख से अधिक Google Play ऐप शामिल हैं (अगर ऐप अमेरिका में नहीं है तो किसी दूसरे देश से), और यह हर रात अपडेट होता है। स्टोर से हटे ऐप अपने अंतिम डेटा के साथ डेटाबेस में बने रहते हैं।

प्रमाणीकरण

/v1/health को छोड़कर हर अनुरोध के हेडर में API कुंजी होनी चाहिए:

X-API-Key: ak_live_…

यह भी स्वीकार्य है: Authorization: Bearer …. कुंजी को URL पैरामीटर में भेजने की अनुमति नहीं है: वह लॉग और ब्राउज़र इतिहास में पहुँच जाएगी।

कुंजी अपने सर्वर पर रखें। पेज के JavaScript में डालने पर कोई भी आगंतुक उसे कॉपी कर सकता है। फ़्रंटएंड के अनुरोध अपने बैकएंड से भेजें।

क्रेडिट और सीमाएँ

उत्तर में पंक्तियों की संख्या (100 तक) चाहे जो हो, हर कॉल का खर्च एंडपॉइंट के अनुसार 0–3 क्रेडिट है; apps बैच कॉल प्रति ऐप 1 क्रेडिट लेता है। पहले चालू महीने के प्लान क्रेडिट खर्च होते हैं, फिर प्रीपेड शेष राशि। हमारी ओर से अनुरोध विफल होने पर क्रेडिट लौटा दिए जाते हैं। प्लान और पैक

हेडरअर्थ
X-Credits-Costइस अनुरोध के क्रेडिट
X-Credits-Remainingबचे क्रेडिट (प्लान + शेष राशि)
X-CacheHIT — कैश से (तेज़), MISS — इंडेक्स से नई क्वेरी
X-RateLimit-Limit / -Remainingकुंजी की प्रति मिनट सीमा और जो बचा है
X-Planfree | 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. …" }
HTTPcodeकब
400invalid_param, invalid_requestअमान्य या गायब पैरामीटर
401missing_api_key, invalid_api_keyकुंजी नहीं है, या रद्द कर दी गई है
402insufficient_creditsपर्याप्त क्रेडिट नहीं — टॉप-अप करें या प्लान अपग्रेड करें
403account_blocked, plan_requiredखाता ब्लॉक है, या एंडपॉइंट के लिए ऊँचा प्लान चाहिए
404not_foundऐप या डेवलपर डेटाबेस में नहीं है, या एंडपॉइंट अज्ञात है
429rate_limitedप्रति मिनट अनुरोध सीमा पार
503service_unavailableडेटाबेस की अस्थायी समस्या — बाद में फिर कोशिश करें; क्रेडिट नहीं कटते

एंडपॉइंट

सभी एंडपॉइंट GET /api/v1/{name} हैं। पेज: page (1 से) और per (1–100), 10,000वें नतीजे तक। क्रम: sort + order=asc|desc।

GET/api/v1/accountमुफ़्त

आपका प्लान, प्लान क्रेडिट और शेष राशि, क्रेडिट रीसेट की तारीख और प्रति मिनट सीमा।

ऐप
GET/api/v1/app 1 क्रे.

पूरा ऐप रिकॉर्ड: शीर्षक, विवरण, नया क्या है, इंस्टॉल (सीमा और सटीक संख्या), रेटिंग, रेटिंग और समीक्षाओं की संख्या, स्टार वितरण, कीमत, इन-ऐप खरीदारी, विज्ञापन, श्रेणी, कंटेंट रेटिंग, संस्करण, न्यूनतम Android, रिलीज़ और अपडेट तारीखें, आइकन, स्क्रीनशॉट, वीडियो, डेवलपर और उसकी वेबसाइट। हटाए गए ऐप के लिए: अंतिम सहेजा गया डेटा और हटाने की तारीख।

id *ऐप का पैकेज नाम
GET · POST/api/v1/apps प्रति ऐप 1 क्रेडिट

एक कॉल में 100 ऐप तक: GET ?ids=a,b,c या body में सूची के साथ POST (प्रति पंक्ति एक, या JSON {"ids": […]})। प्रति ऐप 1 क्रेडिट; जो id हमारे पास नहीं हैं वे not_found में लौटते हैं।

ids *पैकेज नाम, कॉमा से अलग, 100 तक
GET/api/v1/suggest मुफ़्त

शीर्षक की शुरुआत से सुझाव: 10 सबसे लोकप्रिय मिलान। मुफ़्त।

q *शीर्षक की शुरुआत, 2+ अक्षर
डेवलपर
GET/api/v1/developer 2 क्रे.

डेवलपर और उसके सभी ऐप: संख्या (स्टोर में और हटाए गए), कुल इंस्टॉल, औसत रेटिंग, पहली रिलीज़, श्रेणियाँ, वेबसाइट। Business प्लान में: ईमेल, फ़ोन, पता और कानूनी नाम।

idडेवलपर ID (ऐप से: developer.id)
nameया डेवलपर का सटीक नाम
statusall (डिफ़ॉल्ट), live या removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
स्टोर में बदलाव
GET/api/v1/new 2 क्रे.

पहली रिलीज़ तारीख के अनुसार नए ऐप, सबसे नए ऊपर।

sinceइस तारीख से, YYYY-MM-DD (डिफ़ॉल्ट: 7 दिन पहले)
untilइस तारीख तक, सहित
categoryश्रेणी ID, जैसे GAME_PUZZLE (देखें /v1/categories)
min_installsन्यूनतम इंस्टॉल (Google Play सीमाएँ: 1000, 10000…)
langशीर्षक की भाषा, ISO कोड: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
GET/api/v1/removed 2 क्रे.

Google Play से गायब हुए ऐप (हमारे जाँचे गए सभी 19 देशों में नहीं हैं), हटाने की तारीख के अनुसार। ऐप के रिकॉर्ड में उसका अंतिम डेटा रहता है।

sinceइस तारीख से, YYYY-MM-DD (डिफ़ॉल्ट: 7 दिन पहले)
untilइस तारीख तक, सहित
categoryश्रेणी ID, जैसे GAME_PUZZLE (देखें /v1/categories)
min_installsन्यूनतम इंस्टॉल (Google Play सीमाएँ: 1000, 10000…)
sortremoved_at | installs | score
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
बाज़ार
GET/api/v1/keywords 2 क्रे.

हर भाषा के लिए ऐप शीर्षकों से शब्द और वाक्यांश: कितने ऐप और डेवलपर इन्हें उपयोग करते हैं, उनमें कितने मज़बूत हैं (100K+ इंस्टॉल), कुल इंस्टॉल, अग्रणी का हिस्सा और अवसर स्कोर।

langभाषा, डिफ़ॉल्ट en
qशब्द या वाक्यांश
phrasetrue — केवल दो शब्दों के वाक्यांश, false — केवल एकल शब्द
min_appsन्यूनतम ऐप
max_appsअधिकतम ऐप
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
GET/api/v1/categories मुफ़्त

ऐप की संख्या और कुल इंस्टॉल के साथ सभी श्रेणियाँ। मुफ़्त।

statuslive (स्टोर में, डिफ़ॉल्ट), removed या all
GET/api/v1/free_domains 3 क्रे.Pro+

वे ऐप जिनके डेवलपर की वेबसाइट का डोमेन पंजीकरण के लिए उपलब्ध है, ऐप की लोकप्रियता के साथ। Pro प्लान और ऊपर।

categoryश्रेणी ID, जैसे GAME_PUZZLE (देखें /v1/categories)
min_installsन्यूनतम इंस्टॉल (Google Play सीमाएँ: 1000, 10000…)
statuslive (स्टोर में, डिफ़ॉल्ट), removed या all
tldडोमेन ज़ोन, जैसे com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
GET/api/v1/charts 2 क्रे.

एक देश और श्रेणी का Google Play चार्ट: 200 स्थान तक, पिछले स्नैपशॉट से रैंक बदलाव (change: कितने स्थान ऊपर गया, नए के लिए "new"), आइकन और इंस्टॉल।

country *देश, ISO कोड: US, DE, BR…
category *श्रेणी, जैसे GAME_PUZZLE
collectionfree | paid | grossing
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
GET/api/v1/rankings 1 क्रे.

नवीनतम स्नैपशॉट में ऐप के सभी चार्ट: देश, श्रेणी, संग्रह, स्थान; चार्ट और देशों की संख्या, और सबसे अच्छा स्थान।

id *ऐप का पैकेज नाम
countryकेवल एक देश
collectionfree | paid | grossing
GET/api/v1/availability 1 क्रे.

वे देश जहाँ ऐप Google Play पर उपलब्ध है (स्टोर के sitemap के hreflang से)। 190+ देश होने पर सूची के बिना worldwide = true लौटता है।

id *ऐप का पैकेज नाम
GET/api/v1/markets 1 क्रे.

मुफ़्त चार्ट पर आधारित बाज़ार प्रतिस्पर्धा: शीर्ष 100 और शीर्ष 200 की प्रवेश सीमा (उस स्थान के ऐप के इंस्टॉल), शीर्ष में नए (पिछले 12 महीने) और स्थानीय (≤3 देश) ऐप का हिस्सा, और स्थानीय बाज़ार का आकार। बिना पैरामीटर: सभी देश; country: एक देश की श्रेणियाँ; category: सभी देशों में एक श्रेणी।

countryदेश, ISO कोड
categoryश्रेणी ID, जैसे GAME_PUZZLE (देखें /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pageपेज, 1 से
perप्रति पेज पंक्तियाँ, 1–100 (डिफ़ॉल्ट 20)
GET/api/v1/stats मुफ़्त

डेटाबेस का आकार: स्टोर के और हटाए गए ऐप, डेवलपर, पिछले 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;

आज़माएँ

कुंजी आप अपने खाते में बना सकते हैं। अनुरोध सीधे आपके ब्राउज़र से जाता है। कुंजी कहीं सहेजी नहीं जाती और पेज दोबारा लोड करने पर हट जाती है। कंसोल से किए गए अनुरोध भी दूसरों की तरह क्रेडिट खर्च करते हैं।