URL de base : https://apiapk.top/api/v1. Inscrivez-vous, créez une clé API dans votre compte et envoyez votre première requête :
Description de l'API lisible par machine : OpenAPI 3.1 · collection Postman — importez-la dans Postman, Insomnia ou un générateur de clients (openapi-generator) pour obtenir un SDK prêt à l'emploi dans votre langage.
curl -H "X-API-Key: VOTRE_CLE" "https://apiapk.top/api/v1/app?id=com.whatsapp"
Les données couvrent plus de 4 millions d'applications Google Play de la vitrine américaine en anglais (d'un autre pays si l'application n'est pas disponible aux États-Unis), actualisées chaque nuit. Les applications qui disparaissent du store restent dans la base avec leurs dernières données.
Chaque requête, sauf /v1/health, doit inclure la clé API dans un en-tête :
X-API-Key: ak_live_…
Également accepté : Authorization: Bearer …. Il est interdit de passer la clé dans les paramètres d'URL : elle se retrouverait dans les journaux et l'historique du navigateur.
Chaque appel coûte 0 à 3 crédits selon le endpoint, quel que soit le nombre de lignes de la réponse (jusqu'à 100) ; l'appel groupé apps coûte 1 crédit par application. Les crédits de l'offre du mois en cours sont utilisés en premier, puis le solde prépayé. Si une requête échoue de notre côté, les crédits sont restitués. Offres et packs
| En-tête | Signification |
|---|---|
X-Credits-Cost | crédits coûtés par cette requête |
X-Credits-Remaining | crédits restants (offre + solde) |
X-Cache | HIT — servi depuis le cache (plus rapide), MISS — nouvelle requête à l'index |
X-RateLimit-Limit / -Remaining | la limite par minute de la clé et ce qu'il reste |
X-Plan | free | pro | scale | business |
Vos crédits restants figurent aussi dans le champ _credits de chaque réponse et dans /v1/account (gratuit).
Chaque réponse contient le champ ok. Les listes contiennent results, total, page, per, pages. Erreur : ok = false, error est l'explication, code un code lisible par machine. Les dates sont en ISO 8601 UTC.
{ "ok": true, "app": { "id": "com.whatsapp", "title": "WhatsApp", "installs": { "label": "10,000,000,000+", "min": 10000000000, "real": 12445120489 }, … },
"_credits": { "cost": 1, "plan_remaining": 1999, "balance": 0, "available": 1999, "cached": false } }
{ "ok": false, "code": "insufficient_credits", "error": "Not enough credits: this call costs 2, you have 1. …" }
| HTTP | code | Quand |
|---|---|---|
| 400 | invalid_param, invalid_request | paramètre invalide ou manquant |
| 401 | missing_api_key, invalid_api_key | pas de clé, ou clé révoquée |
| 402 | insufficient_credits | crédits insuffisants — rechargez ou passez à une offre supérieure |
| 403 | account_blocked, plan_required | le compte est bloqué ou l'endpoint nécessite une offre supérieure |
| 404 | not_found | l'application ou le développeur n'est pas dans la base, ou l'endpoint est inconnu |
| 429 | rate_limited | limite de requêtes par minute dépassée |
| 503 | service_unavailable | problème temporaire de la base — réessayez plus tard ; aucun crédit n'est débité |
Tous les endpoints sont GET /api/v1/{nom}. Pagination : page (à partir de 1) et per (1–100), jusqu'au 10 000e résultat. Tri : sort + order=asc|desc.
Votre offre, les crédits de l'offre et le solde, la date de renouvellement des crédits et la limite par minute.
La fiche complète de l'application : titre, description, nouveautés, installations (palier et nombre exact), note, nombre de notes et d'avis, répartition des étoiles, prix, achats intégrés, publicités, catégorie, classification, version, Android minimal, dates de sortie et de mise à jour, icône, captures, vidéo, développeur et son site. Pour les applications supprimées : les dernières données enregistrées et la date de disparition.
id * | nom de package de l'application |
Jusqu'à 100 applications en un appel : GET ?ids=a,b,c ou POST avec la liste dans le corps (une par ligne ou JSON {"ids": […]}). 1 crédit par application ; celles introuvables reviennent dans not_found.
ids * | noms de package séparés par des virgules, jusqu'à 100 |
Recherche et filtres sur toute la base. Au moins un filtre est requis. Sans q, le tri se fait par installations.
q | mots à rechercher dans le titre, la description et le nom du développeur |
category | ID de catégorie, p. ex. GAME_PUZZLE (voir /v1/categories) |
developer_id | ID du développeur sur Google Play |
min_installs | installations minimum (paliers Google Play : 1000, 10000…) |
max_installs | installations maximum |
min_score | note minimale, 0–5 |
min_ratings | notes minimum |
free | true — gratuites uniquement, false — payantes uniquement |
ads | true — avec publicités, false — sans |
iap | true — avec achats intégrés |
lang | langue du titre, code ISO : en, de, pt… |
released_from | sorties à partir de cette date, YYYY-MM-DD |
released_to | sorties jusqu'à cette date incluse |
updated_from | mises à jour à partir de cette date |
updated_to | mises à jour jusqu'à cette date incluse |
status | live (dans le store, par défaut), removed ou all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Suggestions selon le début du titre : les 10 résultats les plus populaires. Gratuit.
q * | début du titre, 2 caractères minimum |
Un développeur et toutes ses applications : nombre (dans le store et supprimées), installations totales, note moyenne, première sortie, catégories, site. Avec l'offre Business : e-mail, téléphone, adresse et raison sociale.
id | ID du développeur (depuis une fiche : developer.id) |
name | ou le nom exact du développeur |
status | all (par défaut), live ou removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Nouvelles applications par date de première sortie, les plus récentes d'abord.
since | à partir de cette date, YYYY-MM-DD (par défaut : il y a 7 jours) |
until | jusqu'à cette date incluse |
category | ID de catégorie, p. ex. GAME_PUZZLE (voir /v1/categories) |
min_installs | installations minimum (paliers Google Play : 1000, 10000…) |
lang | langue du titre, code ISO : en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Applications disparues de Google Play (absentes des 19 pays que nous vérifions), par date de disparition. La fiche conserve les dernières données.
since | à partir de cette date, YYYY-MM-DD (par défaut : il y a 7 jours) |
until | jusqu'à cette date incluse |
category | ID de catégorie, p. ex. GAME_PUZZLE (voir /v1/categories) |
min_installs | installations minimum (paliers Google Play : 1000, 10000…) |
sort | removed_at | installs | score |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Mots et expressions des titres d'applications par langue : nombre d'applications et de développeurs qui les utilisent, combien sont fortes (100 k+ installations), installations totales, part du leader et un score d'opportunité.
lang | langue, par défaut en |
q | mot ou expression |
phrase | true — expressions de deux mots uniquement, false — mots seuls uniquement |
min_apps | applications minimum |
max_apps | applications maximum |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Toutes les catégories avec le nombre d'applications et les installations totales. Gratuit.
status | live (dans le store, par défaut), removed ou all |
Applications dont le domaine du site du développeur est libre à l'enregistrement, avec la popularité de l'application. Offre Pro et supérieure.
category | ID de catégorie, p. ex. GAME_PUZZLE (voir /v1/categories) |
min_installs | installations minimum (paliers Google Play : 1000, 10000…) |
status | live (dans le store, par défaut), removed ou all |
tld | extension de domaine, p. ex. com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Un classement Google Play pour un pays et une catégorie : jusqu'à 200 positions, évolution depuis le relevé précédent (change : de combien de places elle est montée, "new" pour les nouvelles entrées), icône et installations.
country * | pays, code ISO : US, DE, BR… |
category * | catégorie, p. ex. GAME_PUZZLE |
collection | free | paid | grossing |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Tous les classements où figure l'application dans le dernier relevé : pays, catégorie, collection, position ; nombre de classements et de pays, meilleure position.
id * | nom de package de l'application |
country | un seul pays |
collection | free | paid | grossing |
Pays où l'application est disponible sur Google Play (d'après le hreflang du sitemap du store). Au-delà de 190 pays, worldwide = true est renvoyé sans liste.
id * | nom de package de l'application |
Concurrence des marchés selon les classements gratuits : seuil d'entrée du top 100 et du top 200 (installations de l'application à cette position), part des applications nouvelles (12 mois) et locales (≤3 pays) dans le top, taille du marché local. Sans paramètre : tous les pays ; country : les catégories d'un pays ; category : une catégorie dans tous les pays.
country | pays, code ISO |
category | ID de catégorie, p. ex. GAME_PUZZLE (voir /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | page, à partir de 1 |
per | lignes par page, 1–100 (par défaut 20) |
Taille de la base : applications dans le store et supprimées, développeurs, nouvelles et supprimées sur 7 jours, heure de la dernière mise à jour. Gratuit.
* — paramètre obligatoire
# curl — one app
curl -H "X-API-Key: $KEY" "https://apiapk.top/api/v1/app?id=org.telegram.messenger"
# curl — puzzle games with 10M+ installs, best rated first
curl -H "X-API-Key: $KEY" "https://apiapk.top/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://apiapk.top/api/v1/apps"
# Python — apps removed from Google Play this week
import os, requests
r = requests.get("https://apiapk.top/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("credits left:", data["_credits"]["available"])
// Node.js 18+ (sur le serveur — pas dans le navigateur)
const res = await fetch("https://apiapk.top/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://apiapk.top/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;
Vous pouvez créer une clé dans votre compte. La requête part directement de votre navigateur. La clé n'est stockée nulle part et disparaît au rechargement de la page. Les requêtes depuis la console consomment des crédits comme les autres.