Basis-URL: https://apksurge.com/api/v1. Registreer, maak een API-sleutel aan in uw account en stuur uw eerste verzoek:
Machineleesbare API-beschrijving: OpenAPI 3.1 · Postman-collectie — importeer hem in Postman, Insomnia of een clientgenerator (openapi-generator) en u krijgt een kant-en-klare SDK voor uw taal.
curl -H "X-API-Key: UW_SLEUTEL" "https://apksurge.com/api/v1/app?id=com.whatsapp"
De gegevens omvatten meer dan 4 miljoen Google Play-apps uit de Amerikaanse storefront in het Engels (uit een ander land als een app niet in de VS beschikbaar is), elke nacht ververst. Apps die uit de store verdwijnen, blijven met hun laatste gegevens in de database.
Elk verzoek, behalve /v1/health, moet de API-sleutel in een header bevatten:
X-API-Key: ak_live_…
Ook geaccepteerd: Authorization: Bearer …. De sleutel doorgeven in URL-parameters is niet toegestaan: hij zou in logs en de browsergeschiedenis terechtkomen.
Elke aanroep kost 0–3 tokens, afhankelijk van het endpoint, ongeacht het aantal rijen in het antwoord (tot 100); de batchaanroep apps kost 1 token per app. Eerst worden de maandelijkse tokens gebruikt, daarna de gekochte. Mislukt een verzoek door een fout van onze kant, dan worden de tokens teruggegeven. Plannen en pakketten
| Header | Betekenis |
|---|---|
X-Tokens-Cost | hoeveel tokens dit verzoek kostte |
X-Tokens-Remaining | hoeveel tokens er over zijn (maandelijks + gekocht) |
X-Cache | HIT — antwoord uit de cache (sneller), MISS — nieuwe query naar de index |
X-RateLimit-Limit / -Remaining | de limiet per minuut van de sleutel en wat er nog over is |
X-Plan | free | pro | business |
Uw resterende tokens staan ook in het veld _tokens van elk antwoord en in /v1/account (gratis). De oude namen _credits en X-Credits-* zijn verouderd, maar werken nog.
Elk antwoord heeft een veld ok. Lijsten bevatten results, total, page, per, pages. Fout: ok = false, error is de uitleg, code is een machineleesbare code. Datums zijn ISO 8601 in 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 | Wanneer |
|---|---|---|
| 400 | invalid_param, invalid_request | ongeldige of ontbrekende parameter |
| 401 | missing_api_key, invalid_api_key | geen sleutel, of de sleutel is ingetrokken |
| 402 | insufficient_credits | onvoldoende tokens — koop een pakket |
| 403 | account_blocked, plan_required | het account is geblokkeerd, of het endpoint wordt geopend na de eerste tokenaankoop |
| 404 | not_found | de app of ontwikkelaar staat niet in de database, of het endpoint is onbekend |
| 429 | rate_limited | limiet voor verzoeken per minuut overschreden |
| 503 | service_unavailable | een tijdelijk probleem met de database — probeer het later opnieuw; er worden geen tokens afgeschreven |
Alle endpoints zijn GET /api/v1/{naam}. Paginering: page (vanaf 1) en per (1–100), tot en met het 10.000e resultaat. Sorteren: sort + order=asc|desc.
Uw plan, tokensaldo, de vernieuwingsdatum van de maandelijkse tokens en de limiet per minuut.
De volledige appgegevens: titel, beschrijving, “Wat is er nieuw”, installaties (drempel en exact aantal), beoordeling, aantal beoordelingen en reviews, sterrenverdeling, prijs, in-app-aankopen, advertenties, categorie, leeftijdsclassificatie, versie, minimale Android-versie, release- en updatedatums, pictogram, screenshots, video, ontwikkelaar en diens website. Voor verwijderde apps: de laatst opgeslagen gegevens en de verwijderdatum.
id * | pakketnaam van de app |
Tot 100 apps per verzoek: GET ?ids=a,b,c of POST met de lijst in de body (één per regel, of JSON {"ids": […]}). 1 token per app; onbekende id's komen terug in not_found.
ids * | pakketnamen gescheiden door komma's, tot 100 |
Zoeken en filteren over de hele database. Minstens één filter is vereist. Zonder q wordt gesorteerd op installaties.
q | woorden om te zoeken in titel, beschrijving en naam van de ontwikkelaar |
category | categorie-ID, bijv. GAME_PUZZLE (zie /v1/categories) |
developer_id | Google Play-ontwikkelaar-ID |
min_installs | minimum aantal installaties (drempels van Google Play: 1000, 10000…) |
max_installs | maximum aantal installaties |
min_score | minimale beoordeling, 0–5 |
min_ratings | minimum aantal beoordelingen |
free | true — alleen gratis, false — alleen betaald |
ads | true — met advertenties, false — zonder |
iap | true — met in-app-aankopen |
lang | titeltaal, ISO-code: en, de, pt… |
released_from | verschenen vanaf deze datum, YYYY-MM-DD |
released_to | verschenen tot en met deze datum |
updated_from | bijgewerkt vanaf deze datum |
updated_to | bijgewerkt tot en met deze datum |
status | live (in de store, standaard), removed of all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Suggesties op het begin van een titel: de 10 populairste treffers. Gratis.
q * | begin van de titel, minimaal 2 tekens |
Een ontwikkelaar en al zijn apps: aantallen (in de store en verwijderd), totaal aantal installaties, gemiddelde beoordeling, eerste release, categorieën, website. In het Business-plan: e-mailadres, telefoonnummer, adres en juridische naam.
id | ontwikkelaar-ID (uit een app: developer.id) |
name | of de exacte naam van de ontwikkelaar |
status | all (standaard), live of removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Nieuwe apps op datum van eerste release, nieuwste eerst.
since | vanaf datum, YYYY-MM-DD (standaard 7 dagen geleden) |
until | tot en met deze datum |
category | categorie-ID, bijv. GAME_PUZZLE (zie /v1/categories) |
min_installs | minimum aantal installaties (drempels van Google Play: 1000, 10000…) |
lang | titeltaal, ISO-code: en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Apps die van Google Play zijn verdwenen (in geen van de 19 landen die wij controleren), op verwijderdatum. De appgegevens behouden de laatste data.
since | vanaf datum, YYYY-MM-DD (standaard 7 dagen geleden) |
until | tot en met deze datum |
category | categorie-ID, bijv. GAME_PUZZLE (zie /v1/categories) |
min_installs | minimum aantal installaties (drempels van Google Play: 1000, 10000…) |
sort | removed_at | installs | score |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Woorden en zinnen uit apptitels per taal: hoeveel apps en ontwikkelaars ze gebruiken, hoeveel daarvan sterk zijn (100K+ installaties), totaal aantal installaties, het aandeel van de marktleider en een kansenscore (opportunity).
lang | taal, standaard en |
q | woord of zin |
phrase | true — alleen zinnen van twee woorden, false — alleen losse woorden |
min_apps | minimum aantal apps |
max_apps | maximum aantal apps |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Alle categorieën met aantal apps en totaal aantal installaties. Gratis.
status | live (in de store, standaard), removed of all |
Apps waarvan het domein van de ontwikkelaarssite vrij is om te registreren, met de populariteit van de app. Wordt geopend na de eerste tokenaankoop.
category | categorie-ID, bijv. GAME_PUZZLE (zie /v1/categories) |
min_installs | minimum aantal installaties (drempels van Google Play: 1000, 10000…) |
status | live (in de store, standaard), removed of all |
tld | domeinzone, bijv. com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Een Google Play-topranglijst voor één land en categorie: tot 200 posities, positiewijziging sinds de vorige momentopname (change: hoeveel plaatsen gestegen, "new" voor nieuwe binnenkomers), pictogram en installaties.
country * | land, ISO-code: US, DE, BR… |
category * | categorie, bijv. GAME_PUZZLE |
collection | free | paid | grossing |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Alle ranglijsten waarin de app staat in de laatste momentopname: land, categorie, collectie, positie; het aantal ranglijsten en landen en de beste positie.
id * | pakketnaam van de app |
country | slechts één land |
collection | free | paid | grossing |
Landen waar de app beschikbaar is op Google Play (volgens hreflang in de sitemap van de store). Bij 190+ landen wordt worldwide = true zonder lijst teruggegeven.
id * | pakketnaam van de app |
Marktconcurrentie op basis van gratis ranglijsten: de instapdrempel voor de top 100 en top 200 (installaties van de app op die plek), het aandeel nieuwe (laatste 12 maanden) en lokale (≤3 landen) apps in de top, en de omvang van de lokale markt. Zonder parameters: alle landen; country: de categorieën van één land; category: één categorie in alle landen.
country | land, ISO-code |
category | categorie-ID, bijv. GAME_PUZZLE (zie /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | pagina, vanaf 1 |
per | rijen per pagina, 1–100 (standaard 20) |
Omvang van de database: apps in de store en verwijderde apps, ontwikkelaars, nieuwe en verwijderde apps in de afgelopen 7 dagen, tijdstip van de laatste update. Gratis.
* — verplichte parameter
# 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+ (op de server — niet in de browser)
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;
U kunt een sleutel aanmaken in uw account. Het verzoek gaat rechtstreeks vanuit uw browser. De sleutel wordt nergens opgeslagen en verdwijnt na het herladen van de pagina. Verzoeken vanuit de console kosten tokens zoals alle andere.