Dokumentácia APK Surge

REST API s údajmi z Google Play: 4 mil. aplikácií, vývojári, nové a odstránené aplikácie, kľúčové slová z názvov. Formát JSON, kódovanie UTF-8, CORS zapnuté.

Rýchly štart

Základná adresa: https://apksurge.com/api/v1. Zaregistrujte sa, vytvorte API kľúč vo svojom účte a odošlite prvú požiadavku:

Strojový popis API: OpenAPI 3.1 · kolekcia Postman — importujte do Postmanu, Insomnie alebo generátora klientov (openapi-generator) a získate hotové SDK pre svoj jazyk.

curl -H "X-API-Key: VÁŠ_KĽÚČ" "https://apksurge.com/api/v1/app?id=com.whatsapp"

Údaje pokrývajú viac ako 4 mil. aplikácií z Google Play z amerického obchodu v angličtine (ak tam aplikácia nie je, z inej krajiny), aktualizácia každú noc. Aplikácie, ktoré z obchodu zmizli, zostávajú v databáze s posledními údajmi.

Autorizácia

Každá požiadavka okrem /v1/health musí obsahovať API kľúč v hlavičke:

X-API-Key: ak_live_…

Akceptuje sa aj: Authorization: Bearer …. Kľúč sa nesmie posielať v parametroch URL: dostal by sa do logov a do histórie prehliadača.

Kľúč majte na svojom serveri. Ak ho vložíte do JavaScriptu na stránke, ktorýkoľvek návštevník si ho môže skopírovať. Požiadavky z frontendu posielajte cez svoj backend.

Tokeny a limity

Každé volanie stojí 0–3 tokeny podľa endpointu, bez ohľadu na počet riadkov v odpovedi (do 100); hromadná požiadavka apps stojí 1 token za aplikáciu. Najprv sa míňajú mesačné tokeny, potom kúpené. Ak požiadavka zlyhá z našej strany, tokeny sa vrátia. Plány a balíky

HlavičkaVýznam
X-Tokens-Costkoľko tokenov stála táto požiadavka
X-Tokens-Remainingkoľko tokenov zostáva (mesačné + kúpené)
X-CacheHIT — odpoveď z cache (rýchlejšie), MISS — nová požiadavka na index
X-RateLimit-Limit / -Remaininglimit požiadaviek za minútu pre kľúč a zostávajúci počet
X-Planfree | pro | business

Zostatok tokenov nájdete aj v poli _tokens každej odpovede a v /v1/account (zadarmo). Staré názvy _credits a X-Credits-* sú zastarané, ale zatiaľ fungujú.

Formát odpovede a chyby

Každá odpoveď obsahuje pole ok. Zoznamy obsahujú results, total, page, per, pages. Chyba: ok = false, error je vysvetlenie, code je strojový kód. Dátumy sú v ISO 8601 v UTC.

{ "ok": true, "app": { "id": "com.whatsapp", "title": "WhatsApp", "installs": { "label": "10,000,000,000+", "min": 10000000000, "real": 12445120489 }, … },
  "_tokens": { "cost": 1, "monthly_remaining": 999, "balance": 0, "available": 999, "cached": false } }

{ "ok": false, "code": "insufficient_credits", "error": "Not enough tokens: this call costs 2, you have 1. …" }
HTTPcodeKedy nastáva
400invalid_param, invalid_requestnesprávny alebo chýbajúci parameter
401missing_api_key, invalid_api_keychýba kľúč alebo je zrušený
402insufficient_creditsnedostatok tokenov — kúpte balík
403account_blocked, plan_requiredúčet je zablokovaný alebo sa endpoint sprístupní po prvom nákupe tokenov
404not_foundaplikácia alebo vývojár nie je v databáze, alebo je endpoint neznámy
429rate_limitedprekročený limit požiadaviek za minútu
503service_unavailabledočasný problém s databázou — skúste neskôr; tokeny sa nestrhávajú

Endpointy

Všetky endpointy sú GET /api/v1/{názov}. Stránkovanie: page (od 1) a per (1–100), najďalej po 10 000. výsledok. Zoradenie: sort + order=asc|desc.

GET/api/v1/accountzadarmo

Váš plán, zostatok tokenov, dátum obnovenia mesačných tokenov a limit za minútu.

Aplikácie
GET/api/v1/app 1 tok.

Úplná karta aplikácie: názov, popis, „Čo je nové“, inštalácie (prah a presné číslo), hodnotenie, počet hodnotení a recenzií, rozdelenie hviezdičiek, cena, nákupy, reklama, kategória, vekové hodnotenie, verzia, minimálny Android, dátumy vydania a aktualizácie, ikona, snímky obrazovky, video, vývojár a jeho web. Pri odstránených aplikáciách posledné uložené údaje a dátum zmiznutia.

id *názov balíka aplikácie
GET · POST/api/v1/apps 1 token za aplikáciu

Až 100 kariet jednou požiadavkou: GET ?ids=a,b,c alebo POST so zoznamom v tele (jeden na riadok alebo JSON {"ids": […]}). 1 token za každú aplikáciu; nenájdené sa vrátia v not_found.

ids *názvy balíkov oddelené čiarkou, najviac 100
GET/api/v1/suggest zadarmo

Návrhy podľa začiatku názvu: 10 najpopulárnejších zhôd. Zadarmo.

q *začiatok názvu, aspoň 2 znaky
Vývojári
GET/api/v1/developer 2 tok.

Vývojár a všetky jeho aplikácie: počet (v obchode aj odstránených), celkové inštalácie, priemerné hodnotenie, prvé vydanie, kategórie, web. V pláne Business aj e-mail, telefón, adresa a právny názov.

idID vývojára (z karty aplikácie: developer.id)
namealebo presné meno vývojára
statusall (predvolené), live alebo removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
Zmeny v obchode
GET/api/v1/new 2 tok.

Nové aplikácie podľa dátumu prvého vydania, najnovšie ako prvé.

sinceod dátumu, YYYY-MM-DD (predvolene pred 7 dňami)
untildo tohto dátumu vrátane
categoryID kategórie, napr. GAME_PUZZLE (pozri /v1/categories)
min_installsminimum inštalácií (prahy Google Play: 1000, 10000…)
langjazyk názvu, kód ISO: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
GET/api/v1/removed 2 tok.

Aplikácie, ktoré zmizli z Google Play (nie sú v žiadnej z 19 krajín, ktoré kontrolujeme), podľa dátumu zmiznutia. Karta uchováva posledné údaje.

sinceod dátumu, YYYY-MM-DD (predvolene pred 7 dňami)
untildo tohto dátumu vrátane
categoryID kategórie, napr. GAME_PUZZLE (pozri /v1/categories)
min_installsminimum inštalácií (prahy Google Play: 1000, 10000…)
sortremoved_at | installs | score
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
Trh
GET/api/v1/keywords 2 tok.

Slová a frázy z názvov aplikácií osobitne pre každý jazyk: koľko aplikácií a vývojárov ich používa, koľko z nich je silných (100 tis.+ inštalácií), celkové inštalácie, podiel lídra a skóre príležitosti (opportunity).

langjazyk, predvolene en
qslovo alebo fráza
phrasetrue — iba dvojslovné frázy, false — iba jednotlivé slová
min_appsminimum aplikácií
max_appsmaximum aplikácií
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
GET/api/v1/categories zadarmo

Všetky kategórie s počtom aplikácií a celkovými inštaláciami. Zadarmo.

statuslive (v obchode, predvolené), removed alebo all
GET/api/v1/free_domains 3 tok.po prvom nákupe

Aplikácie, ktorých doména webu vývojára je voľná na registráciu, spolu s popularitou aplikácie. Sprístupní sa po prvom nákupe tokenov.

categoryID kategórie, napr. GAME_PUZZLE (pozri /v1/categories)
min_installsminimum inštalácií (prahy Google Play: 1000, 10000…)
statuslive (v obchode, predvolené), removed alebo all
tlddoménová zóna, napr. com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
GET/api/v1/charts 2 tok.

Top rebríček Google Play jednej krajiny a kategórie: až 200 pozícií, zmena miesta oproti predchádzajúcej snímke (change: o koľko miest stúpol, "new" — nový v rebríčku), ikona a inštalácie.

country *krajina, kód ISO: US, DE, BR…
category *kategória, napr. GAME_PUZZLE
collectionfree | paid | grossing
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
GET/api/v1/rankings 1 tok.

Všetky rebríčky, v ktorých je aplikácia v poslednej snímke: krajina, kategória, kolekcia, miesto; počet rebríčkov, krajín a najlepšie miesto.

id *názov balíka aplikácie
countryiba jedna krajina
collectionfree | paid | grossing
GET/api/v1/availability 1 tok.

Krajiny, kde je aplikácia dostupná v Google Play (podľa hreflang v sitemape obchodu). Pri 190+ krajinách sa vráti worldwide = true bez zoznamu.

id *názov balíka aplikácie
GET/api/v1/markets 1 tok.

Konkurencia na trhoch podľa bezplatných rebríčkov: prah vstupu do top 100 a top 200 (inštalácie aplikácie na tomto mieste), podiel nových (za 12 mesiacov) a lokálnych (≤3 krajiny) aplikácií v rebríčku, veľkosť lokálneho trhu. Bez parametrov všetky krajiny; country — kategórie jednej krajiny; category — jedna kategória vo všetkých krajinách.

countrykrajina, kód ISO
categoryID kategórie, napr. GAME_PUZZLE (pozri /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pagestrana, od 1
perriadkov na stranu, 1–100 (predvolene 20)
GET/api/v1/stats zadarmo

Veľkosť databázy: aplikácie v obchode a odstránené, vývojári, nové a odstránené za 7 dní, čas poslednej aktualizácie. Zadarmo.

* — povinný parameter

Ukážky kódu

# curl — one app
curl -H "X-API-Key: $KEY" "https://apksurge.com/api/v1/app?id=org.telegram.messenger"

# curl — puzzle games with 10M+ installs, best rated first
curl -H "X-API-Key: $KEY" "https://apksurge.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://apksurge.com/api/v1/apps"
# Python — apps removed from Google Play this week
import os, requests
r = requests.get("https://apksurge.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("tokens left:", data["_tokens"]["available"])
// Node.js 18+ (na serveri — nie v prehliadači)
const res = await fetch("https://apksurge.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://apksurge.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;

Vyskúšať

Kľúč môžete vytvoriť vo svojom účte. Požiadavka ide priamo z vášho prehliadača. Kľúč sa nikde neukladá a po opätovnom načítaní stránky zmizne. Požiadavky z konzoly míňajú tokeny rovnako ako bežné.