APK API-dokumentation

REST API med Google Play-data: 4 mio. apps, udviklere, nye og fjernede apps, nøgleord fra titler. Format: JSON, UTF-8-kodning, CORS slået til.

Kom hurtigt i gang

Basis-URL: https://apkapi.com/api/v1. Tilmeld dig, opret en API-nøgle i din konto og send din første anmodning:

Maskinlæsbar API-beskrivelse: OpenAPI 3.1 · Postman-samling — importér den i Postman, Insomnia eller en klientgenerator (openapi-generator) for at få en færdig SDK til dit sprog.

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

Dataene dækker over 4 mio. Google Play-apps fra den amerikanske butik på engelsk (fra et andet land, hvis appen ikke findes i USA), opdateret hver nat. Apps, der forsvinder fra butikken, forbliver i databasen med deres seneste data.

Godkendelse

Hver anmodning undtagen /v1/health skal indeholde API-nøglen i en header:

X-API-Key: ak_live_…

Accepteres også: Authorization: Bearer …. Det er ikke tilladt at sende nøglen i URL-parametre: så ville den havne i logfiler og browserhistorik.

Behold nøglen på din egen server. Hvis du indlejrer den i JavaScript på siden, kan enhver besøgende kopiere den. Send anmodninger fra frontenden via din egen backend.

Tokens og grænser

Hvert kald koster 0–3 tokens afhængigt af endpointet, uanset antallet af rækker i svaret (op til 100); batch-kaldet apps koster 1 token pr. app. De månedlige tokens bruges først, derefter de købte. Hvis en anmodning mislykkes på vores side, returneres tokens. Planer og pakker

HeaderBetydning
X-Tokens-Costhvor mange tokens denne anmodning kostede
X-Tokens-Remaininghvor mange tokens der er tilbage (månedlige + købte)
X-CacheHIT — svar fra cachen (hurtigere), MISS — ny forespørgsel til indekset
X-RateLimit-Limit / -Remainingnøglens grænse pr. minut og det, der er tilbage
X-Planfree | pro | business

Din resterende tokensaldo findes også i feltet _tokens i hvert svar og i /v1/account (gratis). De gamle navne _credits og X-Credits-* er forældede, men virker stadig.

Svarformat og fejl

Hvert svar har et ok-felt. Lister indeholder results, total, page, per, pages. Fejl: ok = false, error er forklaringen, code er en maskinlæsbar kode. Datoer er ISO 8601 i 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. …" }
HTTPcodeHvornår det opstår
400invalid_param, invalid_requestugyldig eller manglende parameter
401missing_api_key, invalid_api_keyingen nøgle, eller nøglen er tilbagekaldt
402insufficient_creditsikke nok tokens — køb en pakke
403account_blocked, plan_requiredkontoen er spærret, eller endpointet åbnes efter det første køb af tokens
404not_foundappen eller udvikleren findes ikke i databasen, eller endpointet er ukendt
429rate_limitedgrænsen for anmodninger pr. minut er overskredet
503service_unavailableet midlertidigt databaseproblem — prøv igen senere; der trækkes ingen tokens

Endpoints

Alle endpoints er GET /api/v1/{navn}. Sideinddeling: page (fra 1) og per (1–100), op til det 10.000. resultat. Sortering: sort + order=asc|desc.

GET/api/v1/accountgratis

Din plan, tokensaldo, datoen for fornyelse af de månedlige tokens og grænsen pr. minut.

Apps
GET/api/v1/app 1 tok.

Fulde appoplysninger: titel, beskrivelse, nyheder, installationer (tærskel og præcist tal), vurdering, antal vurderinger og anmeldelser, stjernefordeling, pris, køb i appen, reklamer, kategori, aldersgrænse, version, mindste Android-version, udgivelses- og opdateringsdatoer, ikon, skærmbilleder, video, udvikler og udviklerens websted. For fjernede apps: de seneste gemte data og fjernelsesdatoen.

id *appens pakkenavn
GET · POST/api/v1/apps 1 token pr. app

Op til 100 apps i ét kald: GET ?ids=a,b,c eller POST med listen i brødteksten (én pr. linje eller JSON {"ids": […]}). 1 token pr. app; id'er, vi ikke har, returneres i not_found.

ids *pakkenavne adskilt af komma, op til 100
GET/api/v1/suggest gratis

Forslag ud fra begyndelsen af en titel: de 10 mest populære match. Gratis.

q *begyndelsen af titlen, mindst 2 tegn
Udviklere
GET/api/v1/developer 2 tok.

En udvikler og alle vedkommendes apps: antal (i butikken og fjernede), samlede installationer, gennemsnitlig vurdering, første udgivelse, kategorier, websted. På Business-planen: e-mail, telefon, adresse og juridisk navn.

idudvikler-ID (fra en app: developer.id)
nameeller udviklerens præcise navn
statusall (standard), live eller removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
Ændringer i butikken
GET/api/v1/new 2 tok.

Nye apps efter første udgivelsesdato, nyeste først.

sincefra denne dato, YYYY-MM-DD (standard: 7 dage siden)
untiltil og med denne dato
categorykategori-ID, f.eks. GAME_PUZZLE (se /v1/categories)
min_installsmindste antal installationer (Google Play-tærskler: 1000, 10000…)
langtitelsprog, ISO-kode: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
GET/api/v1/removed 2 tok.

Apps, der er forsvundet fra Google Play (findes ikke i nogen af de 19 lande, vi tjekker), efter fjernelsesdato. Appoplysningerne beholder de seneste data.

sincefra denne dato, YYYY-MM-DD (standard: 7 dage siden)
untiltil og med denne dato
categorykategori-ID, f.eks. GAME_PUZZLE (se /v1/categories)
min_installsmindste antal installationer (Google Play-tærskler: 1000, 10000…)
sortremoved_at | installs | score
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
Marked
GET/api/v1/keywords 2 tok.

Ord og vendinger fra apptitler for hvert sprog: hvor mange apps og udviklere der bruger dem, hvor mange af dem der er stærke (100.000+ installationer), samlede installationer, lederens andel og en mulighedsscore (opportunity).

langsprog, standard en
qord eller vending
phrasetrue — kun sætninger på to ord, false — kun enkeltord
min_appsmindste antal apps
max_appsmaksimalt antal apps
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
GET/api/v1/categories gratis

Alle kategorier med antal apps og samlede installationer. Gratis.

statuslive (i butikken, standard), removed eller all
GET/api/v1/free_domains 3 tok.efter det første køb

Apps, hvor udviklerens webstedsdomæne kan registreres, med appens popularitet. Åbnes efter det første køb af tokens.

categorykategori-ID, f.eks. GAME_PUZZLE (se /v1/categories)
min_installsmindste antal installationer (Google Play-tærskler: 1000, 10000…)
statuslive (i butikken, standard), removed eller all
tlddomænezone, f.eks. com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
GET/api/v1/charts 2 tok.

En Google Play-tophitliste for ét land og én kategori: op til 200 placeringer, ændring i placering siden forrige øjebliksbillede (change: hvor mange pladser den er steget, "new" for nye på listen), ikon og installationer.

country *land, ISO-kode: US, DE, BR…
category *kategori, f.eks. GAME_PUZZLE
collectionfree | paid | grossing
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
GET/api/v1/rankings 1 tok.

Alle hitlister, som appen står på i det seneste øjebliksbillede: land, kategori, samling, placering; antal hitlister og lande samt bedste placering.

id *appens pakkenavn
countrykun ét land
collectionfree | paid | grossing
GET/api/v1/availability 1 tok.

Lande, hvor appen er tilgængelig på Google Play (ud fra hreflang i butikkens sitemap). Ved 190+ lande returneres worldwide = true uden liste.

id *appens pakkenavn
GET/api/v1/markets 1 tok.

Markedskonkurrence baseret på gratis hitlister: tærsklen for at komme med i top 100 og top 200 (installationer for appen på den placering), andelen af nye (seneste 12 måneder) og lokale (≤3 lande) apps i toppen samt størrelsen på det lokale marked. Uden parametre: alle lande; country: kategorierne i ét land; category: én kategori på tværs af alle lande.

countryland, ISO-kode
categorykategori-ID, f.eks. GAME_PUZZLE (se /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pageside, fra 1
perrækker pr. side, 1–100 (standard 20)
GET/api/v1/stats gratis

Databasens størrelse: apps i butikken og fjernede, udviklere, nye og fjernede de seneste 7 dage, tidspunkt for seneste opdatering. Gratis.

* — påkrævet parameter

Kodeeksempler

# 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+ (på serveren — ikke i browseren)
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;

Prøv det

Du kan oprette en nøgle i din konto. Anmodningen sendes direkte fra din browser. Nøglen gemmes ikke noget sted og forsvinder, når siden genindlæses. Anmodninger fra konsollen bruger tokens på samme måde som alle andre.