APK API -dokumentaatio

REST API Google Play -tiedoilla: 4 miljoonaa sovellusta, kehittäjät, uudet ja poistetut sovellukset, nimien avainsanat. Muoto: JSON, UTF-8-koodaus, CORS käytössä.

Pikaopas

Perusosoite: https://apkapi.com/api/v1. Rekisteröidy, luo API-avain tililläsi ja lähetä ensimmäinen pyyntösi:

API:n koneluettava kuvaus: OpenAPI 3.1 · Postman-kokoelma — tuo se Postmaniin, Insomniaan tai asiakasgeneraattoriin (openapi-generator) ja saat valmiin SDK:n omalle kielellesi.

curl -H "X-API-Key: AVAIMESI" "https://apkapi.com/api/v1/app?id=com.whatsapp"

Tiedot kattavat yli 4 miljoonaa Google Play -sovellusta Yhdysvaltain kaupasta englanniksi (jos sovellusta ei siellä ole, toisesta maasta), päivitys joka yö. Kaupasta poistuneet sovellukset jäävät tietokantaan viimeisine tietoineen.

Todennus

Jokaisen pyynnön, paitsi /v1/health, on sisällettävä API-avain otsakkeessa:

X-API-Key: ak_live_…

Hyväksytään myös: Authorization: Bearer …. Avainta ei saa välittää URL-parametreissa: silloin se päätyisi lokeihin ja selaimen historiaan.

Pidä avain omalla palvelimellasi. Jos upotat sen sivun JavaScriptiin, kuka tahansa kävijä voi kopioida sen. Tee käyttöliittymän pyynnöt oman taustajärjestelmäsi kautta.

Tokenit ja rajat

Jokainen kutsu maksaa 0–3 tokenia päätepisteestä riippuen, riippumatta vastauksen rivien määrästä (enintään 100); erä-pyyntö apps maksaa 1 tokenin sovellusta kohden. Ensin käytetään kuukausitokenit, sitten ostetut. Jos pyyntö epäonnistuu meidän puolellamme, tokenit palautetaan. Tasot ja paketit

OtsakeMerkitys
X-Tokens-Costkuinka monta tokenia tämä pyyntö maksoi
X-Tokens-Remainingkuinka monta tokenia on jäljellä (kuukausi + ostetut)
X-CacheHIT — vastaus välimuistista (nopeampi), MISS — uusi kysely hakemistoon
X-RateLimit-Limit / -Remainingavaimen minuuttikohtainen pyyntöraja ja jäljellä oleva määrä
X-Planfree | pro | business

Jäljellä olevat tokenit näkyvät myös jokaisen vastauksen kentässä _tokens ja osoitteessa /v1/account (ilmaiseksi). Vanhat nimet _credits ja X-Credits-* ovat vanhentuneita, mutta toimivat vielä.

Vastauksen muoto ja virheet

Jokaisessa vastauksessa on kenttä ok. Luettelot sisältävät kentät results, total, page, per, pages. Virhe: ok = false, error on selitys, code on koneluettava koodi. Päivämäärät ovat ISO 8601 -muodossa UTC-aikana.

{ "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. …" }
HTTPcodeMilloin ilmenee
400invalid_param, invalid_requestvirheellinen tai puuttuva parametri
401missing_api_key, invalid_api_keyavainta ei ole tai se on peruutettu
402insufficient_creditstokeneita ei riitä — osta paketti
403account_blocked, plan_requiredtili on estetty, tai päätepiste avautuu ensimmäisen tokenioston jälkeen
404not_foundsovellusta tai kehittäjää ei ole tietokannassa, tai päätepiste on tuntematon
429rate_limitedminuuttikohtainen pyyntöraja ylitetty
503service_unavailabletilapäinen tietokantaongelma — yritä myöhemmin uudelleen; tokeneita ei veloiteta

Päätepisteet

Kaikki päätepisteet ovat GET /api/v1/{nimi}. Sivutus: page (alkaen 1) ja per (1–100), enintään 10 000. tulokseen asti. Lajittelu: sort + order=asc|desc.

GET/api/v1/accountilmainen

Tasosi, tokenisaldo, kuukausitokenien uusiutumispäivä ja minuuttikohtainen raja.

Sovellukset
GET/api/v1/app 1 tokenia

Sovelluksen täydet tiedot: nimi, kuvaus, “Mitä uutta”, asennukset (kynnys ja tarkka luku), arvosana, arvosanojen ja arvostelujen määrä, tähtijakauma, hinta, ostot, mainokset, kategoria, ikäluokitus, versio, Android-vähimmäisversio, julkaisu- ja päivityspäivät, kuvake, kuvakaappaukset, video, kehittäjä ja hänen sivustonsa. Poistetuille: viimeisimmät tallennetut tiedot ja poistumispäivä.

id *sovelluksen pakettinimi
GET · POST/api/v1/apps 1 token sovellusta kohden

Enintään 100 sovelluksen tiedot yhdellä pyynnöllä: GET ?ids=a,b,c tai POST, jossa luettelo rungossa (yksi per rivi tai JSON {"ids": […]}). 1 token per sovellus; tuntemattomat palautetaan kentässä not_found.

ids *pakettinimet pilkulla erotettuina, enintään 100
GET/api/v1/suggest ilmainen

Ehdotukset nimen alun perusteella: 10 suosituinta osumaa. Ilmainen.

q *nimen alku, vähintään 2 merkkiä
Kehittäjät
GET/api/v1/developer 2 tokenia

Kehittäjä ja kaikki hänen sovelluksensa: määrä (kaupassa ja poistetut), asennukset yhteensä, keskiarvosana, ensimmäinen julkaisu, kategoriat, sivusto. Business-tasolla: sähköposti, puhelin, osoite ja oikeudellinen nimi.

idkehittäjän tunnus (sovelluksen tiedoista: developer.id)
nametai kehittäjän tarkka nimi
statusall (oletus), live tai removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
Muutokset kaupassa
GET/api/v1/new 2 tokenia

Uudet sovellukset ensimmäisen julkaisun päivän mukaan, uusimmat ensin.

sincepäivästä alkaen, YYYY-MM-DD (oletus: 7 päivää sitten)
untilviimeistään tänä päivänä
categorykategorian tunnus, esim. GAME_PUZZLE (katso /v1/categories)
min_installsasennuksia vähintään (Google Playn kynnys: 1000, 10000…)
langnimen kieli, ISO-koodi: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
GET/api/v1/removed 2 tokenia

Google Playsta poistuneet sovellukset (ei löydy yhdestäkään tarkistamastamme 19 maasta) poistumispäivän mukaan. Sovelluksen tiedot säilyttävät viimeiset tiedot.

sincepäivästä alkaen, YYYY-MM-DD (oletus: 7 päivää sitten)
untilviimeistään tänä päivänä
categorykategorian tunnus, esim. GAME_PUZZLE (katso /v1/categories)
min_installsasennuksia vähintään (Google Playn kynnys: 1000, 10000…)
sortremoved_at | installs | score
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
Markkina
GET/api/v1/keywords 2 tokenia

Sanat ja fraasit sovellusten nimistä kielikohtaisesti: kuinka monta sovellusta ja kehittäjää niitä käyttää, kuinka moni niistä on vahva (yli 100 000 asennusta), asennukset yhteensä, johtajan osuus ja mahdollisuuspisteet (opportunity).

langkieli, oletus en
qsana tai fraasi
phrasetrue — vain kahden sanan fraasit, false — vain yksittäiset sanat
min_appssovelluksia vähintään
max_appssovelluksia enintään
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
GET/api/v1/categories ilmainen

Kaikki kategoriat sovellusmäärineen ja asennuksineen yhteensä. Ilmainen.

statuslive (kaupassa, oletus), removed tai all
GET/api/v1/free_domains 3 tokeniaensimmäisen oston jälkeen

Sovellukset, joiden kehittäjän sivuston verkkotunnus on rekisteröitävissä, sovelluksen suosiotietoineen. Avautuu ensimmäisen tokenioston jälkeen.

categorykategorian tunnus, esim. GAME_PUZZLE (katso /v1/categories)
min_installsasennuksia vähintään (Google Playn kynnys: 1000, 10000…)
statuslive (kaupassa, oletus), removed tai all
tldverkkotunnuksen pääte, esim. com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
GET/api/v1/charts 2 tokenia

Yhden maan ja kategorian Google Play -huippulista: enintään 200 sijaa, sijamuutos edellisestä tilanteesta (change: kuinka monta sijaa noussut, "new" — uusi listalla), kuvake ja asennukset.

country *maa, ISO-koodi: US, DE, BR…
category *kategoria, esim. GAME_PUZZLE
collectionfree | paid | grossing
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
GET/api/v1/rankings 1 tokenia

Kaikki listat, joilla sovellus on viimeisimmässä tilanteessa: maa, kategoria, kokoelma, sija; listojen ja maiden määrä sekä paras sija.

id *sovelluksen pakettinimi
countryvain yksi maa
collectionfree | paid | grossing
GET/api/v1/availability 1 tokenia

Maat, joissa sovellus on saatavilla Google Playssa (kaupan sitemapin hreflangin mukaan). Jos maita on yli 190, palautetaan worldwide = true ilman luetteloa.

id *sovelluksen pakettinimi
GET/api/v1/markets 1 tokenia

Markkinoiden kilpailu ilmaisten listojen perusteella: pääsykynnys top 100- ja top 200 -listoille (sovelluksen asennukset kyseisellä sijalla), uusien (12 kuukauden aikana) ja paikallisten (≤3 maata) sovellusten osuus kärjessä sekä paikallisen markkinan koko. Ilman parametreja: kaikki maat; country: yhden maan kategoriat; category: yksi kategoria kaikissa maissa.

countrymaa, ISO-koodi
categorykategorian tunnus, esim. GAME_PUZZLE (katso /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pagesivu, alkaen 1
perriviä sivulla, 1–100 (oletus 20)
GET/api/v1/stats ilmainen

Tietokannan koko: sovellukset kaupassa ja poistetut, kehittäjät, uudet ja poistetut 7 päivässä, viimeisimmän päivityksen aika. Ilmainen.

* — pakollinen parametri

Koodiesimerkit

# 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+ (palvelimella — ei selaimessa)
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;

Kokeile

Avaimen voi luoda tililläsi. Pyyntö lähetetään suoraan selaimestasi. Avainta ei tallenneta mihinkään, ja se katoaa sivun uudelleenlatauksessa. Konsolista tehdyt pyynnöt kuluttavat tokeneita kuten muutkin.