Базова адреса: https://apiapk.org/api/v1. Зареєструйтесь, створіть API-ключ у кабінеті й надішліть перший запит:
Машинний опис API: OpenAPI 3.1 · колекція Postman — імпортуйте в Postman, Insomnia або генератор клієнтів (openapi-generator) і отримаєте готовий SDK для своєї мови.
curl -H "X-API-Key: ВАШ_КЛЮЧ" "https://apiapk.org/api/v1/app?id=com.whatsapp"
Дані — понад 4 млн застосунків Google Play з американської вітрини англійською мовою (якщо застосунку там немає — з іншої країни), оновлення щоночі. Застосунки, що зникли з магазину, лишаються в базі з останніми даними.
Кожен запит, крім /v1/health, має містити API-ключ у заголовку:
X-API-Key: ak_live_…
Також приймається Authorization: Bearer …. Передавати ключ у параметрах URL не можна: так він потрапив би в логи та історію браузера.
Кожен виклик коштує 0–3 кредити залежно від ендпоінта, незалежно від кількості рядків у відповіді (до 100); пакетний запит apps — 1 кредит за застосунок. Спершу витрачаються кредити тарифу на поточний місяць, потім — докуплений баланс. Якщо запит не вдався з нашого боку, кредити повертаються. Тарифи й пакети
| Заголовок | Значення |
|---|---|
X-Credits-Cost | скільки кредитів коштував цей запит |
X-Credits-Remaining | скільки кредитів лишилося (тариф + баланс) |
X-Cache | HIT — відповідь із кешу (швидше), MISS — свіжий запит до індексу |
X-RateLimit-Limit / -Remaining | ліміт запитів на хвилину для ключа та залишок |
X-Plan | free | pro | scale | business |
Залишок кредитів також є в полі _credits кожної відповіді та в /v1/account (безкоштовно).
Кожна відповідь має поле ok. Списки містять results, total, page, per, pages. Помилка: ok = false, error — пояснення, code — машинний код. Дати — 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 | Коли виникає |
|---|---|---|
| 400 | invalid_param, invalid_request | неправильний або відсутній параметр |
| 401 | missing_api_key, invalid_api_key | немає ключа або він відкликаний |
| 402 | insufficient_credits | недостатньо кредитів — поповніть баланс або підвищте тариф |
| 403 | account_blocked, plan_required | обліковий запис заблоковано або ендпоінт доступний на вищому тарифі |
| 404 | not_found | застосунку чи розробника немає в базі, або невідомий ендпоінт |
| 429 | rate_limited | перевищено ліміт запитів на хвилину |
| 503 | service_unavailable | тимчасова проблема з базою — повторіть пізніше; кредити не списуються |
Усі ендпоінти — GET /api/v1/{назва}. Пагінація: page (з 1) і per (1–100), не далі 10 000-го результату. Сортування: sort + order=asc|desc.
Ваш тариф, кредити тарифу й баланс, дата оновлення кредитів і ліміт на хвилину.
Повна картка застосунку: назва, опис, «Що нового», встановлення (поріг і точне число), оцінка, кількість оцінок і відгуків, розподіл зірок, ціна, покупки, реклама, категорія, вікова оцінка, версія, мінімальний Android, дати релізу й оновлення, іконка, скриншоти, відео, розробник і його сайт. Для видалених — останні збережені дані та дата зникнення.
id * | назва пакета застосунку |
До 100 карток одним запитом: GET ?ids=a,b,c або POST зі списком у тілі (по одному на рядок або JSON {"ids": […]}). 1 кредит за кожен застосунок; ненайдені повертаються в not_found.
ids * | назви пакетів через кому, до 100 |
Пошук і фільтри по всій базі. Потрібен хоча б один фільтр. Без q сортування — за встановленнями.
q | слова для пошуку в назві, описі й імені розробника |
category | ID категорії, напр. GAME_PUZZLE (див. /v1/categories) |
developer_id | ID розробника в Google Play |
min_installs | мінімум встановлень (поріг Google Play: 1000, 10000…) |
max_installs | максимум встановлень |
min_score | мінімальна оцінка, 0–5 |
min_ratings | мінімум оцінок |
free | true — лише безкоштовні, false — лише платні |
ads | true — з рекламою, false — без |
iap | true — з покупками в застосунку |
lang | мова назви, ISO-код: en, de, pt… |
released_from | вийшли з дати, YYYY-MM-DD |
released_to | вийшли до дати включно |
updated_from | оновлені з дати |
updated_to | оновлені до дати включно |
status | live (у магазині, типово), removed або all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Підказки за початком назви: 10 найпопулярніших збігів. Безкоштовно.
q * | початок назви, від 2 символів |
Розробник і всі його застосунки: кількість (у магазині й видалених), сумарні встановлення, середня оцінка, перший реліз, категорії, сайт. На тарифі Business — email, телефон, адреса й юридична назва.
id | ID розробника (з картки застосунку: developer.id) |
name | або точне ім'я розробника |
status | all (типово), live або removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Нові застосунки за датою першого релізу, новіші — першими.
since | з дати, YYYY-MM-DD (типово 7 днів тому) |
until | до дати включно |
category | ID категорії, напр. GAME_PUZZLE (див. /v1/categories) |
min_installs | мінімум встановлень (поріг Google Play: 1000, 10000…) |
lang | мова назви, ISO-код: en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Застосунки, що зникли з Google Play (немає в жодній з 19 країн, які ми перевіряємо), за датою зникнення. Картка зберігає останні дані.
since | з дати, YYYY-MM-DD (типово 7 днів тому) |
until | до дати включно |
category | ID категорії, напр. GAME_PUZZLE (див. /v1/categories) |
min_installs | мінімум встановлень (поріг Google Play: 1000, 10000…) |
sort | removed_at | installs | score |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Слова й фрази з назв застосунків окремо для кожної мови: скільки застосунків і розробників їх використовують, скільки з них сильних (100 тис.+ встановлень), сумарні встановлення, частка лідера й оцінка можливості (opportunity).
lang | мова, типово en |
q | слово або фраза |
phrase | true — лише фрази з двох слів, false — лише окремі слова |
min_apps | мінімум застосунків |
max_apps | максимум застосунків |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Усі категорії з кількістю застосунків і сумарними встановленнями. Безкоштовно.
status | live (у магазині, типово), removed або all |
Застосунки, у яких домен сайту розробника вільний для реєстрації, з популярністю застосунку. Тариф Pro і вище.
category | ID категорії, напр. GAME_PUZZLE (див. /v1/categories) |
min_installs | мінімум встановлень (поріг Google Play: 1000, 10000…) |
status | live (у магазині, типово), removed або all |
tld | доменна зона, напр. com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Топ-чарт Google Play однієї країни й категорії: до 200 позицій, зміна місця з попереднього знімка (change: на скільки піднявся, "new" — новий у чарті), іконка й встановлення.
country * | країна, ISO-код: US, DE, BR… |
category * | категорія, напр. GAME_PUZZLE |
collection | free | paid | grossing |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Усі чарти, у яких застосунок є в останньому знімку: країна, категорія, колекція, місце; кількість чартів, країн і найкраще місце.
id * | назва пакета застосунку |
country | лише одна країна |
collection | free | paid | grossing |
Країни, де застосунок доступний у Google Play (за hreflang у sitemap магазину). Якщо країн 190+, повертається worldwide = true без списку.
id * | назва пакета застосунку |
Конкурентність ринків за безкоштовними чартами: поріг входу в топ-100 і топ-200 (встановлення застосунку на цьому місці), частка нових (за 12 місяців) і локальних (≤3 країни) застосунків у топі, розмір локального ринку. Без параметрів — усі країни; country — категорії однієї країни; category — одна категорія в усіх країнах.
country | країна, ISO-код |
category | ID категорії, напр. GAME_PUZZLE (див. /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | сторінка, з 1 |
per | рядків на сторінці, 1–100 (типово 20) |
Розмір бази: застосунки в магазині й видалені, розробники, нові й видалені за 7 днів, час останнього оновлення. Безкоштовно.
* — обов'язковий параметр
# curl — one app
curl -H "X-API-Key: $KEY" "https://apiapk.org/api/v1/app?id=org.telegram.messenger"
# curl — puzzle games with 10M+ installs, best rated first
curl -H "X-API-Key: $KEY" "https://apiapk.org/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.org/api/v1/apps"
# Python — apps removed from Google Play this week
import os, requests
r = requests.get("https://apiapk.org/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+ (на сервері — не у браузері)
const res = await fetch("https://apiapk.org/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.org/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;
Ключ можна створити в кабінеті. Запит іде прямо з вашого браузера. Ключ ніде не зберігається й зникає після перезавантаження сторінки. Запити з консолі витрачають кредити так само, як звичайні.