URL หลัก: https://apksurge.com/api/v1. สมัครใช้งาน สร้างคีย์ API ใน บัญชีของคุณ แล้วส่งคำขอแรกของคุณ:
คำอธิบาย API สำหรับเครื่องอ่าน: OpenAPI 3.1 · คอลเลกชัน Postman — นำเข้าใน Postman, Insomnia หรือตัวสร้างไคลเอนต์ (openapi-generator) แล้วคุณจะได้ SDK สำเร็จรูปสำหรับภาษาของคุณ
curl -H "X-API-Key: YOUR_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/{name} การแบ่งหน้า: 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,000+ ครั้ง) ยอดติดตั้งรวม สัดส่วนของผู้นำ และคะแนนโอกาส (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;
คุณสามารถสร้างคีย์ได้ใน บัญชีของคุณ คำขอถูกส่งตรงจากเบราว์เซอร์ของคุณ คีย์จะไม่ถูกเก็บไว้ที่ใดและจะหายไปเมื่อโหลดหน้าใหม่ คำขอจากคอนโซลใช้โทเคนเหมือนคำขอทั่วไป