Bas-URL: https://apkapi.com/api/v1. Registrera dig, skapa en API-nyckel i ditt konto och skicka ditt första anrop:
Maskinläsbar API-beskrivning: OpenAPI 3.1 · Postman-samling — importera den i Postman, Insomnia eller en klientgenerator (openapi-generator) så får du en färdig SDK för ditt språk.
curl -H "X-API-Key: DIN_NYCKEL" "https://apkapi.com/api/v1/app?id=com.whatsapp"
Datan omfattar över 4 miljoner appar på Google Play från den amerikanska butiken på engelska (från ett annat land om en app inte finns i USA), uppdateras varje natt. Appar som försvinner från butiken finns kvar i databasen med sina senaste data.
Varje anrop utom /v1/health måste innehålla API-nyckeln i en header:
X-API-Key: ak_live_…
Accepteras också: Authorization: Bearer …. Det går inte att skicka nyckeln i URL-parametrar: då skulle den hamna i loggar och webbläsarhistoriken.
Varje anrop kostar 0–3 tokens beroende på endpoint, oavsett antal rader i svaret (upp till 100); batchanropet apps kostar 1 token per app. Månatliga tokens används först, därefter köpta. Om ett anrop misslyckas på vår sida återlämnas tokens. Planer och paket
| Rubrik | Betydelse |
|---|---|
X-Tokens-Cost | hur många tokens det här anropet kostade |
X-Tokens-Remaining | hur många tokens som återstår (månatliga + köpta) |
X-Cache | HIT — svar från cachen (snabbare), MISS — ny förfrågan mot indexet |
X-RateLimit-Limit / -Remaining | nyckelns gräns för anrop per minut och vad som återstår |
X-Plan | free | pro | business |
Ditt återstående antal tokens finns också i fältet _tokens i varje svar och i /v1/account (gratis). De gamla namnen _credits och X-Credits-* är föråldrade men fungerar fortfarande.
Varje svar har fältet ok. Listor innehåller results, total, page, per, pages. Fel: ok = false, error är förklaringen, code är en maskinläsbar kod. Datum anges enligt 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. …" }
| HTTP | code | När det inträffar |
|---|---|---|
| 400 | invalid_param, invalid_request | ogiltig eller saknad parameter |
| 401 | missing_api_key, invalid_api_key | ingen nyckel, eller så är nyckeln återkallad |
| 402 | insufficient_credits | för få tokens — köp ett paket |
| 403 | account_blocked, plan_required | kontot är blockerat, eller så öppnas endpointen efter det första tokenköpet |
| 404 | not_found | appen eller utvecklaren finns inte i databasen, eller så är endpointen okänd |
| 429 | rate_limited | gränsen för anrop per minut har överskridits |
| 503 | service_unavailable | ett tillfälligt databasproblem — försök igen senare; inga tokens debiteras |
Alla endpoints är GET /api/v1/{namn}. Paginering: page (från 1) och per (1–100), högst till det 10 000:e resultatet. Sortering: sort + order=asc|desc.
Din plan, ditt tokensaldo, datum för nästa månatliga påfyllning och gränsen per minut.
Det fullständiga appkortet: titel, beskrivning, nyheter, installationer (tröskel och exakt antal), betyg, antal betyg och recensioner, stjärnfördelning, pris, köp i appen, reklam, kategori, åldersgräns, version, lägsta Android, lanserings- och uppdateringsdatum, ikon, skärmbilder, video, utvecklare och utvecklarens webbplats. För borttagna appar: senast sparade data och borttagningsdatum.
id * | appens paketnamn |
Upp till 100 appkort i ett anrop: GET ?ids=a,b,c eller POST med listan i bodyn (en per rad, eller JSON {"ids": […]}). 1 token per app; ID:n som vi inte har returneras i not_found.
ids * | paketnamn separerade med komma, upp till 100 |
Sökning och filter över hela databasen. Minst ett filter krävs. Utan q sorteras resultaten efter installationer.
q | ord att söka efter i titeln, beskrivningen och utvecklarens namn |
category | kategori-ID, t.ex. GAME_PUZZLE (se /v1/categories) |
developer_id | utvecklar-ID på Google Play |
min_installs | lägsta antal installationer (Google Plays trösklar: 1000, 10000…) |
max_installs | högsta antal installationer |
min_score | lägsta betyg, 0–5 |
min_ratings | lägsta antal betyg |
free | true — endast gratis, false — endast betalda |
ads | true — med reklam, false — utan |
iap | true — med köp i appen |
lang | titelns språk, ISO-kod: en, de, pt… |
released_from | lanserade från detta datum, YYYY-MM-DD |
released_to | lanserade till och med detta datum |
updated_from | uppdaterade från detta datum |
updated_to | uppdaterade till och med detta datum |
status | live (i butiken, standard), removed eller all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Förslag utifrån början av en titel: de 10 mest populära träffarna. Gratis.
q * | början av titeln, minst 2 tecken |
En utvecklare och alla deras appar: antal (i butiken och borttagna), totalt antal installationer, genomsnittligt betyg, första lansering, kategorier, webbplats. I planen Business: e-post, telefon, adress och juridiskt namn.
id | utvecklar-ID (från en app: developer.id) |
name | eller utvecklarens exakta namn |
status | all (standard), live eller removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Nya appar efter datum för första lansering, de nyaste först.
since | från detta datum, YYYY-MM-DD (standard: 7 dagar sedan) |
until | till och med detta datum |
category | kategori-ID, t.ex. GAME_PUZZLE (se /v1/categories) |
min_installs | lägsta antal installationer (Google Plays trösklar: 1000, 10000…) |
lang | titelns språk, ISO-kod: en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Appar som har försvunnit från Google Play (finns inte i något av de 19 länder vi kontrollerar), efter borttagningsdatum. Appkortet behåller sina senaste data.
since | från detta datum, YYYY-MM-DD (standard: 7 dagar sedan) |
until | till och med detta datum |
category | kategori-ID, t.ex. GAME_PUZZLE (se /v1/categories) |
min_installs | lägsta antal installationer (Google Plays trösklar: 1000, 10000…) |
sort | removed_at | installs | score |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Ord och fraser från apptitlar för varje språk separat: hur många appar och utvecklare som använder dem, hur många av dem som är starka (100 tn+ installationer), totalt antal installationer, ledarens andel och ett möjlighetsbetyg (opportunity).
lang | språk, standard en |
q | ord eller fras |
phrase | true — endast fraser på två ord, false — endast enstaka ord |
min_apps | lägsta antal appar |
max_apps | högsta antal appar |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Alla kategorier med antal appar och totalt antal installationer. Gratis.
status | live (i butiken, standard), removed eller all |
Appar vars utvecklardomän är ledig att registrera, med appens popularitet. Öppnas efter första tokenköpet.
category | kategori-ID, t.ex. GAME_PUZZLE (se /v1/categories) |
min_installs | lägsta antal installationer (Google Plays trösklar: 1000, 10000…) |
status | live (i butiken, standard), removed eller all |
tld | toppdomän, t.ex. com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
En topplista på Google Play för ett land och en kategori: upp till 200 placeringar, placeringsändring sedan förra ögonblicksbilden (change: hur många platser appen har stigit, "new" för nya på listan), ikon och installationer.
country * | land, ISO-kod: US, DE, BR… |
category * | kategori, t.ex. GAME_PUZZLE |
collection | free | paid | grossing |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Alla topplistor som appen finns på i den senaste ögonblicksbilden: land, kategori, samling, placering; antal topplistor och länder samt bästa placering.
id * | appens paketnamn |
country | endast ett land |
collection | free | paid | grossing |
Länder där appen finns på Google Play (enligt hreflang i butikens sitemap). Vid 190+ länder returneras worldwide = true utan lista.
id * | appens paketnamn |
Marknadskonkurrens baserad på topplistor för gratisappar: tröskeln för att komma med på topp 100 och topp 200 (installationer för appen på den platsen), andelen nya (senaste 12 månaderna) och lokala (≤3 länder) appar på topplistan samt den lokala marknadens storlek. Utan parametrar: alla länder; country: kategorierna i ett land; category: en kategori i alla länder.
country | land, ISO-kod |
category | kategori-ID, t.ex. GAME_PUZZLE (se /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | sida, från 1 |
per | rader per sida, 1–100 (standard 20) |
Databasens storlek: appar i butiken och borttagna, utvecklare, nya och borttagna de senaste 7 dagarna, tidpunkt för senaste uppdatering. Gratis.
* — obligatorisk parameter
# 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å servern — inte i webbläsaren)
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;
Du kan skapa en nyckel i ditt konto. Anropet skickas direkt från din webbläsare. Nyckeln sparas ingenstans och försvinner när sidan laddas om. Anrop från konsolen förbrukar tokens precis som vanliga anrop.