APK Surge belgeleri

Google Play verilerini sunan REST API: 4 milyon uygulama, geliştiriciler, yeni ve kaldırılan uygulamalar, başlık anahtar kelimeleri. Biçim: JSON, kodlama: UTF-8, CORS açık.

Hızlı başlangıç

Temel URL: https://apksurge.com/api/v1. Kaydol, API anahtarınızı hesabınızda oluşturun ve ilk isteğinizi gönderin:

Makinece okunabilir API açıklaması: OpenAPI 3.1 · Postman koleksiyonu — dilinize hazır bir SDK almak için Postman, Insomnia veya bir istemci oluşturucuya (openapi-generator) aktarın.

curl -H "X-API-Key: YOUR_KEY" "https://apksurge.com/api/v1/app?id=com.whatsapp"

Veriler, ABD mağazasından İngilizce olarak 4 milyondan fazla Google Play uygulamasını kapsar (uygulama ABD'de yoksa başka bir ülkeden) ve her gece güncellenir. Mağazadan kaybolan uygulamalar son verileriyle veritabanında kalır.

Kimlik doğrulama

/v1/health dışındaki her istek, başlıkta API anahtarını içermelidir:

X-API-Key: ak_live_…

Ayrıca kabul edilir: Authorization: Bearer …. Anahtarı URL parametrelerinde göndermek yasaktır: günlüklere ve tarayıcı geçmişine düşer.

Anahtarı sunucunuzda tutun. Sayfa JavaScript'ine koyarsanız her ziyaretçi kopyalayabilir. Ön uç isteklerini arka ucunuzdan geçirin.

Tokenler ve sınırlar

Her çağrı, yanıttaki satır sayısından bağımsız olarak (100’e kadar) uç noktaya göre 0–3 token tutar; toplu apps çağrısı uygulama başına 1 tokendir. Önce aylık tokenler, sonra satın alınan tokenler kullanılır. İstek bizim tarafımızda başarısız olursa tokenler iade edilir. Planlar ve paketler

BaşlıkAnlamı
X-Tokens-Costbu isteğin token tutarı
X-Tokens-Remainingkalan token (aylık + satın alınan)
X-CacheHIT — önbellekten (daha hızlı), MISS — dizine yeni sorgu
X-RateLimit-Limit / -Remaininganahtarın dakikalık sınırı ve kalanı
X-Planfree | pro | business

Kalan tokenleriniz her yanıtın _tokens alanında ve /v1/account içinde de bulunur (ücretsiz). Eski _credits ve X-Credits-* adları kullanımdan kalkıyor ancak hâlâ çalışıyor.

Yanıt biçimi ve hatalar

Her yanıtta bir ok alanı vardır. Listeler results, total, page, per, pages içerir. Hata: ok = false, error açıklama, code makinece okunabilir koddur. Tarihler UTC olarak ISO 8601 biçimindedir.

{ "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. …" }
HTTPcodeNe zaman
400invalid_param, invalid_requestgeçersiz veya eksik parametre
401missing_api_key, invalid_api_keyanahtar yok veya iptal edilmiş
402insufficient_creditsyetersiz token — paket satın alın
403account_blocked, plan_requiredhesap engellendi veya uç nokta ilk token satın alımından sonra açılır
404not_founduygulama veya geliştirici veritabanında yok ya da uç nokta bilinmiyor
429rate_limiteddakikalık istek sınırı aşıldı
503service_unavailablegeçici veritabanı sorunu — daha sonra tekrar deneyin; token kesilmez

Uç noktalar

Tüm uç noktalar GET /api/v1/{name} biçimindedir. Sayfalama: page (1'den) ve per (1–100), 10.000. sonuca kadar. Sıralama: sort + order=asc|desc.

GET/api/v1/accountücretsiz

Planınız, token bakiyeniz, aylık yenileme tarihi ve dakika başına sınır.

Uygulamalar
GET/api/v1/app 1 tok.

Tam uygulama kaydı: başlık, açıklama, yenilikler, yüklemeler (eşik ve tam sayı), puan, değerlendirme ve yorum sayısı, yıldız dağılımı, fiyat, uygulama içi satın almalar, reklamlar, kategori, içerik derecelendirmesi, sürüm, minimum Android, yayın ve güncelleme tarihleri, simge, ekran görüntüleri, video, geliştirici ve web sitesi. Kaldırılan uygulamalar için: son kaydedilen veriler ve kaldırılma tarihi.

id *uygulama paket adı
GET · POST/api/v1/apps Uygulama başına 1 token

Tek çağrıda 100 uygulamaya kadar: GET ?ids=a,b,c veya gövdede listeyle POST (satır başına bir tane ya da JSON {"ids": […]}). Uygulama başına 1 token; bizde olmayan kimlikler not_found içinde döner.

ids *paket adları, virgülle ayrılmış, 100'e kadar
GET/api/v1/suggest ücretsiz

Başlığın başına göre öneriler: en popüler 10 eşleşme. Ücretsiz.

q *başlığın başı, 2+ karakter
Geliştiriciler
GET/api/v1/developer 2 tok.

Bir geliştirici ve tüm uygulamaları: sayılar (mağazada ve kaldırılan), toplam yükleme, ortalama puan, ilk yayın, kategoriler, web sitesi. Business planında: e-posta, telefon, adres ve tüzel ad.

idgeliştirici kimliği (uygulamadaki developer.id)
nameveya geliştiricinin tam adı
statusall (varsayılan), live veya removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
Mağaza değişiklikleri
GET/api/v1/new 2 tok.

İlk yayın tarihine göre yeni uygulamalar, en yeniler üstte.

sincebu tarihten itibaren, YYYY-MM-DD (varsayılan: 7 gün önce)
untilbu tarihe kadar, dahil
categorykategori kimliği, ör. GAME_PUZZLE (bkz. /v1/categories)
min_installsminimum yükleme (Google Play eşikleri: 1000, 10000…)
langbaşlık dili, ISO kodu: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
GET/api/v1/removed 2 tok.

Google Play'den kaybolan uygulamalar (kontrol ettiğimiz 19 ülkenin hiçbirinde yok), kaldırılma tarihine göre. Uygulama kaydı son verilerini korur.

sincebu tarihten itibaren, YYYY-MM-DD (varsayılan: 7 gün önce)
untilbu tarihe kadar, dahil
categorykategori kimliği, ör. GAME_PUZZLE (bkz. /v1/categories)
min_installsminimum yükleme (Google Play eşikleri: 1000, 10000…)
sortremoved_at | installs | score
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
Pazar
GET/api/v1/keywords 2 tok.

Her dil için uygulama başlıklarından kelimeler ve ifadeler: bunları kaç uygulama ve geliştirici kullanıyor, kaçı güçlü (100 bin+ yükleme), toplam yükleme, liderin payı ve fırsat puanı.

langdil, varsayılan en
qkelime veya ifade
phrasetrue — yalnızca iki kelimelik ifadeler, false — yalnızca tek kelimeler
min_appsminimum uygulama
max_appsmaksimum uygulama
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
GET/api/v1/categories ücretsiz

Uygulama sayıları ve toplam yüklemeleriyle tüm kategoriler. Ücretsiz.

statuslive (mağazada, varsayılan), removed veya all
GET/api/v1/free_domains 3 tok.ilk satın almadan sonra

Geliştirici web sitesi alan adı kayda açık olan uygulamalar ve uygulamanın popülerliği. İlk token satın alımından sonra açılır.

categorykategori kimliği, ör. GAME_PUZZLE (bkz. /v1/categories)
min_installsminimum yükleme (Google Play eşikleri: 1000, 10000…)
statuslive (mağazada, varsayılan), removed veya all
tldalan adı bölgesi, ör. com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
GET/api/v1/charts 2 tok.

Bir ülke ve kategori için Google Play listesi: 200 sıraya kadar, önceki anlık görüntüden bu yana sıra değişimi (change: kaç sıra yükseldiği, yeni girişler için "new"), simge ve yüklemeler.

country *ülke, ISO kodu: US, DE, BR…
category *kategori, ör. GAME_PUZZLE
collectionfree | paid | grossing
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
GET/api/v1/rankings 1 tok.

Son anlık görüntüde uygulamanın yer aldığı tüm listeler: ülke, kategori, koleksiyon, sıra; liste ve ülke sayısı ve en iyi sıra.

id *uygulama paket adı
countryyalnızca bir ülke
collectionfree | paid | grossing
GET/api/v1/availability 1 tok.

Uygulamanın Google Play'de sunulduğu ülkeler (mağaza site haritasındaki hreflang'dan). 190'dan fazla ülke varsa liste olmadan worldwide = true döner.

id *uygulama paket adı
GET/api/v1/markets 1 tok.

Ücretsiz listelere dayalı pazar rekabeti: ilk 100 ve ilk 200 giriş eşiği (o sıradaki uygulamanın yükleme sayısı), üst sıralardaki yeni (son 12 ay) ve yerel (≤3 ülke) uygulamaların payı ve yerel pazarın büyüklüğü. Parametresiz: tüm ülkeler; country: bir ülkenin kategorileri; category: tüm ülkelerde bir kategori.

countryülke, ISO kodu
categorykategori kimliği, ör. GAME_PUZZLE (bkz. /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pagesayfa, 1'den
persayfa başına satır, 1–100 (varsayılan 20)
GET/api/v1/stats ücretsiz

Veritabanı boyutu: mağazadaki ve kaldırılan uygulamalar, geliştiriciler, son 7 gündeki yeni ve kaldırılanlar, son güncelleme zamanı. Ücretsiz.

* — zorunlu parametre

Kod örnekleri

# 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+ (sunucuda, tarayıcıda değil)
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;

Deneyin

Anahtarı hesabınızda oluşturabilirsiniz. İstek doğrudan tarayıcınızdan gider. Anahtar hiçbir yerde saklanmaz ve sayfa yenilenince kaybolur. Konsoldan yapılan istekler diğerleri gibi token harcar.