Adresa de bază: https://apkapi.com/api/v1. Înregistrați-vă, creați o cheie API în cont și trimiteți prima cerere:
Descrierea API pentru mașini: OpenAPI 3.1 · colecție Postman — importați-l în Postman, Insomnia sau într-un generator de clienți (openapi-generator) și veți obține un SDK gata făcut pentru limbajul dvs.
curl -H "X-API-Key: CHEIA_DVS" "https://apkapi.com/api/v1/app?id=com.whatsapp"
Datele acoperă peste 4 milioane de aplicații Google Play din vitrina din SUA, în engleză (din altă țară, dacă aplicația nu e disponibilă acolo), actualizate în fiecare noapte. Aplicațiile dispărute din magazin rămân în bază cu ultimele date.
Fiecare cerere, cu excepția /v1/health, trebuie să conțină cheia API într-un antet:
X-API-Key: ak_live_…
Se acceptă și Authorization: Bearer …. Cheia nu poate fi transmisă în parametrii URL: ar ajunge în loguri și în istoricul browserului.
Fiecare apel costă 0–3 tokenuri, în funcție de endpoint, indiferent de numărul de rânduri din răspuns (până la 100); cererea în lot apps costă 1 token per aplicație. Mai întâi se consumă tokenurile lunare, apoi cele cumpărate. Dacă o cerere eșuează din vina noastră, tokenurile sunt returnate. Planuri și pachete
| Antet | Semnificație |
|---|---|
X-Tokens-Cost | câte tokenuri a costat această cerere |
X-Tokens-Remaining | câte tokenuri au rămas (lunare + cumpărate) |
X-Cache | HIT — răspuns din cache (mai rapid), MISS — interogare nouă a indexului |
X-RateLimit-Limit / -Remaining | limita de cereri pe minut a cheii și ce a rămas |
X-Plan | free | pro | business |
Tokenurile rămase se găsesc și în câmpul _tokens al fiecărui răspuns și în /v1/account (gratuit). Vechile denumiri _credits și X-Credits-* sunt învechite, dar încă funcționează.
Fiecare răspuns are câmpul ok. Listele conțin results, total, page, per, pages. Eroare: ok = false, error este explicația, code este un cod pentru mașini. Datele sunt în format ISO 8601, 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. …" }
| HTTP | code | Când apare |
|---|---|---|
| 400 | invalid_param, invalid_request | parametru invalid sau lipsă |
| 401 | missing_api_key, invalid_api_key | lipsește cheia sau este revocată |
| 402 | insufficient_credits | tokenuri insuficiente — cumpărați un pachet |
| 403 | account_blocked, plan_required | contul este blocat sau endpointul se deblochează după prima achiziție de tokenuri |
| 404 | not_found | aplicația sau dezvoltatorul nu există în bază, sau endpoint necunoscut |
| 429 | rate_limited | limita de cereri pe minut a fost depășită |
| 503 | service_unavailable | o problemă temporară a bazei de date — încercați mai târziu; nu se taxează tokenuri |
Toate endpointurile sunt GET /api/v1/{nume}. Paginare: page (de la 1) și per (1–100), până la al 10 000-lea rezultat. Sortare: sort + order=asc|desc.
Planul dvs., soldul de tokenuri, data reînnoirii tokenurilor lunare și limita pe minut.
Fișa completă a aplicației: titlu, descriere, „Noutăți”, instalări (prag și număr exact), evaluare, numărul de evaluări și recenzii, distribuția stelelor, preț, achiziții, reclame, categorie, clasificare după vârstă, versiune, Android minim, date de lansare și de actualizare, pictogramă, capturi de ecran, video, dezvoltator și site-ul său. Pentru cele eliminate — ultimele date salvate și data dispariției.
id * | numele pachetului aplicației |
Până la 100 de fișe într-o singură cerere: GET ?ids=a,b,c sau POST cu lista în corp (câte una pe rând sau JSON {"ids": […]}). 1 token per aplicație; ID-urile negăsite sunt returnate în not_found.
ids * | nume de pachete separate prin virgulă, până la 100 |
Căutare și filtre în toată baza. Este necesar cel puțin un filtru. Fără q, sortarea se face după instalări.
q | cuvinte de căutat în titlu, descriere și numele dezvoltatorului |
category | ID categorie, de ex. GAME_PUZZLE (vezi /v1/categories) |
developer_id | ID dezvoltator în Google Play |
min_installs | minimum de instalări (praguri Google Play: 1000, 10000…) |
max_installs | maximum de instalări |
min_score | evaluare minimă, 0–5 |
min_ratings | minimum de evaluări |
free | true — doar gratuite, false — doar cu plată |
ads | true — cu reclame, false — fără |
iap | true — cu achiziții în aplicație |
lang | limba titlului, cod ISO: en, de, pt… |
released_from | lansate de la această dată, YYYY-MM-DD |
released_to | lansate până la această dată, inclusiv |
updated_from | actualizate de la această dată |
updated_to | actualizate până la această dată, inclusiv |
status | live (în magazin, implicit), removed sau all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Sugestii după începutul titlului: cele mai populare 10 potriviri. Gratuit.
q * | începutul titlului, de la 2 caractere |
Un dezvoltator și toate aplicațiile sale: număr (în magazin și eliminate), instalări totale, evaluare medie, prima lansare, categorii, site. În planul Business — email, telefon, adresă și denumire juridică.
id | ID dezvoltator (din fișa aplicației: developer.id) |
name | sau numele exact al dezvoltatorului |
status | all (implicit), live sau removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Aplicații noi după data primei lansări, cele mai noi primele.
since | de la această dată, YYYY-MM-DD (implicit: acum 7 zile) |
until | până la această dată, inclusiv |
category | ID categorie, de ex. GAME_PUZZLE (vezi /v1/categories) |
min_installs | minimum de instalări (praguri Google Play: 1000, 10000…) |
lang | limba titlului, cod ISO: en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Aplicații dispărute din Google Play (nu există în niciuna dintre cele 19 țări verificate de noi), după data dispariției. Fișa păstrează ultimele date.
since | de la această dată, YYYY-MM-DD (implicit: acum 7 zile) |
until | până la această dată, inclusiv |
category | ID categorie, de ex. GAME_PUZZLE (vezi /v1/categories) |
min_installs | minimum de instalări (praguri Google Play: 1000, 10000…) |
sort | removed_at | installs | score |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Cuvinte și expresii din titlurile aplicațiilor, separat pentru fiecare limbă: câte aplicații și câți dezvoltatori le folosesc, câte dintre ele sunt puternice (peste 100 mii de instalări), instalări totale, ponderea liderului și scorul de oportunitate (opportunity).
lang | limba, implicit en |
q | cuvânt sau expresie |
phrase | true — doar expresii din două cuvinte, false — doar cuvinte singure |
min_apps | minimum de aplicații |
max_apps | maximum de aplicații |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Toate categoriile cu numărul de aplicații și instalările totale. Gratuit.
status | live (în magazin, implicit), removed sau all |
Aplicații al căror domeniu al site-ului dezvoltatorului este liber pentru înregistrare, cu popularitatea aplicației. Se deblochează după prima achiziție de tokenuri.
category | ID categorie, de ex. GAME_PUZZLE (vezi /v1/categories) |
min_installs | minimum de instalări (praguri Google Play: 1000, 10000…) |
status | live (în magazin, implicit), removed sau all |
tld | zonă de domeniu, de ex. com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Clasamentul top Google Play pentru o țară și o categorie: până la 200 de poziții, schimbarea locului față de instantaneul anterior (change: cu câte locuri a urcat, "new" — nou în clasament), pictogramă și instalări.
country * | țară, cod ISO: US, DE, BR… |
category * | categorie, de ex. GAME_PUZZLE |
collection | free | paid | grossing |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Toate clasamentele în care apare aplicația în ultimul instantaneu: țară, categorie, colecție, poziție; numărul de clasamente, de țări și cea mai bună poziție.
id * | numele pachetului aplicației |
country | o singură țară |
collection | free | paid | grossing |
Țările în care aplicația este disponibilă în Google Play (după hreflang din sitemap-ul magazinului). Dacă sunt peste 190 de țări, se returnează worldwide = true, fără listă.
id * | numele pachetului aplicației |
Concurența piețelor pe baza clasamentelor gratuite: pragul de intrare în top 100 și top 200 (instalările aplicației de pe acea poziție), ponderea aplicațiilor noi (din ultimele 12 luni) și locale (≤3 țări) în top, dimensiunea pieței locale. Fără parametri — toate țările; country — categoriile unei țări; category — o categorie în toate țările.
country | țară, cod ISO |
category | ID categorie, de ex. GAME_PUZZLE (vezi /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | pagina, de la 1 |
per | rânduri pe pagină, 1–100 (implicit 20) |
Dimensiunea bazei: aplicații în magazin și eliminate, dezvoltatori, noi și eliminate în ultimele 7 zile, ora ultimei actualizări. Gratuit.
* — parametru obligatoriu
# 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("tokens left:", data["_tokens"]["available"])
// Node.js 18+ (pe server — nu în browser)
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;
Puteți crea o cheie în cont. Cererea pleacă direct din browserul dvs. Cheia nu este stocată nicăieri și dispare după reîncărcarea paginii. Cererile din consolă consumă tokenuri ca oricare altele.