Базов адрес: https://apksurge.com/api/v1. Регистрирайте се, създайте API ключ в профила и изпратете първата си заявка:
Машинно описание на API: OpenAPI 3.1 · колекция за Postman — импортирайте я в Postman, Insomnia или генератор на клиенти (openapi-generator) и ще получите готов SDK за вашия език.
curl -H "X-API-Key: ВАШИЯТ_КЛЮЧ" "https://apksurge.com/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-Tokens-Cost | колко токена струва тази заявка |
X-Tokens-Remaining | колко токена остават (месечни + закупени) |
X-Cache | HIT — отговор от кеша (по-бързо), MISS — нова заявка към индекса |
X-RateLimit-Limit / -Remaining | лимит на заявките в минута за ключа и остатък |
X-Plan | free | pro | business |
Оставащите токени има и в полето _tokens на всеки отговор и в /v1/account (безплатно). Старите имена _credits и X-Credits-* са остарели, но засега работят.
Всеки отговор има поле 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 }, … },
"_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 | Кога възниква |
|---|---|---|
| 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 — имейл, телефон, адрес и юридическо име.
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 |
Приложения, на които домейнът на сайта на разработчика е свободен за регистрация, с популярността на приложението. Отключва се след първата покупка на токени.
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://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+ (на сървъра — не в браузъра)
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;
Ключ можете да създадете в профила. Заявката се изпраща директно от вашия браузър. Ключът не се съхранява никъде и изчезва след презареждане на страницата. Заявките от конзолата харчат токени като всички останали.