เอกสาร APK Surge

REST API ข้อมูล Google Play: 4 ล้านแอป นักพัฒนา แอปใหม่และแอปที่ถูกลบ คีย์เวิร์ดจากชื่อแอป รูปแบบ JSON การเข้ารหัส UTF-8 เปิดใช้ CORS

เริ่มต้นอย่างรวดเร็ว

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 เพราะจะไปปรากฏในล็อกและประวัติของเบราว์เซอร์

เก็บคีย์ไว้บนเซิร์ฟเวอร์ของคุณ หากฝังไว้ใน JavaScript บนหน้าเว็บ ผู้เข้าชมคนใดก็คัดลอกได้ ให้ส่งคำขอจากฟรอนต์เอนด์ผ่านแบ็กเอนด์ของคุณ

โทเคนและขีดจำกัด

แต่ละการเรียกใช้ราคา 0–3 โทเคน ขึ้นอยู่กับเอนด์พอยต์ ไม่ว่าจะมีกี่แถวในผลลัพธ์ (สูงสุด 100) คำขอ apps แบบกลุ่มคิด 1 โทเคนต่อแอป ระบบจะใช้โทเคนรายเดือนก่อน แล้วจึงใช้โทเคนที่ซื้อ หากคำขอล้มเหลวจากฝั่งเรา โทเคนจะถูกคืน แพ็กเกจและแพ็กโทเคน

เฮดเดอร์ความหมาย
X-Tokens-Costคำขอนี้ใช้กี่โทเคน
X-Tokens-Remainingโทเคนคงเหลือ (รายเดือน + ที่ซื้อ)
X-CacheHIT — ตอบจากแคช (เร็วกว่า), MISS — สอบถามดัชนีใหม่
X-RateLimit-Limit / -Remainingขีดจำกัดคำขอต่อนาทีของคีย์และจำนวนที่เหลือ
X-Planfree | 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. …" }
HTTPcodeเกิดเมื่อ
400invalid_param, invalid_requestพารามิเตอร์ไม่ถูกต้องหรือขาดหายไป
401missing_api_key, invalid_api_keyไม่มีคีย์ หรือคีย์ถูกเพิกถอน
402insufficient_creditsโทเคนไม่พอ — กรุณาซื้อแพ็ก
403account_blocked, plan_requiredบัญชีถูกบล็อก หรือเอนด์พอยต์เปิดให้ใช้หลังซื้อโทเคนครั้งแรก
404not_foundไม่มีแอปหรือนักพัฒนาในฐานข้อมูล หรือไม่รู้จักเอนด์พอยต์
429rate_limitedเกินขีดจำกัดคำขอต่อนาที
503service_unavailableฐานข้อมูลมีปัญหาชั่วคราว — กรุณาลองใหม่ภายหลัง จะไม่มีการหักโทเคน

เอนด์พอยต์

ทุกเอนด์พอยต์ใช้ GET /api/v1/{name} การแบ่งหน้า: page (เริ่มจาก 1) และ per (1–100) ไม่เกินผลลัพธ์ที่ 10,000 การเรียงลำดับ: sort + order=asc|desc

GET/api/v1/accountฟรี

แพ็กเกจของคุณ ยอดโทเคนคงเหลือ วันที่รีเซ็ตโทเคนรายเดือน และขีดจำกัดต่อนาที

แอป
GET/api/v1/app 1 โทเคน

ข้อมูลแอปแบบเต็ม: ชื่อ คำอธิบาย “มีอะไรใหม่” การติดตั้ง (เกณฑ์และตัวเลขที่แน่นอน) คะแนน จำนวนคะแนนและรีวิว การกระจายของดาว ราคา การซื้อในแอป โฆษณา หมวดหมู่ การจัดเรตอายุ เวอร์ชัน Android ขั้นต่ำ วันที่เปิดตัวและอัปเดต ไอคอน ภาพหน้าจอ วิดีโอ นักพัฒนาและเว็บไซต์ของนักพัฒนา สำหรับแอปที่ถูกลบ: ข้อมูลล่าสุดที่บันทึกไว้และวันที่หายไป

id *ชื่อแพ็กเกจของแอป
GET · POST/api/v1/apps 1 โทเคนต่อแอป

สูงสุด 100 แอปในหนึ่งคำขอ: GET ?ids=a,b,c หรือ POST พร้อมรายการในเนื้อหา (หนึ่งรายการต่อบรรทัด หรือ JSON {"ids": […]}) 1 โทเคนต่อแอป รายการที่ไม่พบจะส่งกลับใน not_found

ids *ชื่อแพ็กเกจคั่นด้วยจุลภาค สูงสุด 100
GET/api/v1/suggest ฟรี

คำแนะนำจากตัวอักษรต้นของชื่อ: 10 รายการที่ตรงและยอดนิยมที่สุด ฟรี

q *ตัวอักษรต้นของชื่อ อย่างน้อย 2 ตัว
นักพัฒนา
GET/api/v1/developer 2 โทเคน

นักพัฒนาและแอปทั้งหมดของเขา: จำนวน (ในสโตร์และที่ถูกลบ) ยอดติดตั้งรวม คะแนนเฉลี่ย การเปิดตัวครั้งแรก หมวดหมู่ เว็บไซต์ ในแพ็กเกจ Business: อีเมล โทรศัพท์ ที่อยู่ และชื่อนิติบุคคล

idID นักพัฒนา (จากข้อมูลแอป: developer.id)
nameหรือชื่อนักพัฒนาที่ตรงกันทุกตัวอักษร
statusall (ค่าเริ่มต้น), live หรือ removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
การเปลี่ยนแปลงในสโตร์
GET/api/v1/new 2 โทเคน

แอปใหม่เรียงตามวันที่เปิดตัวครั้งแรก ใหม่สุดก่อน

sinceตั้งแต่วันที่ YYYY-MM-DD (ค่าเริ่มต้น: 7 วันที่แล้ว)
untilถึงวันที่นี้ รวมวันที่นี้
categoryID หมวดหมู่ เช่น GAME_PUZZLE (ดู /v1/categories)
min_installsติดตั้งขั้นต่ำ (เกณฑ์ของ Google Play: 1000, 10000…)
langภาษาของชื่อ รหัส ISO: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
GET/api/v1/removed 2 โทเคน

แอปที่หายไปจาก Google Play (ไม่พบในทั้ง 19 ประเทศที่เราตรวจสอบ) เรียงตามวันที่หายไป ข้อมูลแอปจะเก็บข้อมูลล่าสุดไว้

sinceตั้งแต่วันที่ YYYY-MM-DD (ค่าเริ่มต้น: 7 วันที่แล้ว)
untilถึงวันที่นี้ รวมวันที่นี้
categoryID หมวดหมู่ เช่น GAME_PUZZLE (ดู /v1/categories)
min_installsติดตั้งขั้นต่ำ (เกณฑ์ของ Google Play: 1000, 10000…)
sortremoved_at | installs | score
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
ตลาด
GET/api/v1/keywords 2 โทเคน

คำและวลีจากชื่อแอปแยกตามแต่ละภาษา: มีกี่แอปและกี่นักพัฒนาที่ใช้ มีกี่แอปที่แข็งแกร่ง (ติดตั้ง 100,000+ ครั้ง) ยอดติดตั้งรวม สัดส่วนของผู้นำ และคะแนนโอกาส (opportunity)

langภาษา ค่าเริ่มต้น en
qคำหรือวลี
phrasetrue — เฉพาะวลีสองคำ, false — เฉพาะคำเดี่ยว
min_appsแอปขั้นต่ำ
max_appsแอปสูงสุด
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
GET/api/v1/categories ฟรี

ทุกหมวดหมู่พร้อมจำนวนแอปและยอดติดตั้งรวม ฟรี

statuslive (อยู่ในสโตร์, ค่าเริ่มต้น), removed หรือ all
GET/api/v1/free_domains 3 โทเคนหลังซื้อครั้งแรก

แอปที่โดเมนเว็บไซต์ของนักพัฒนาว่างให้จดทะเบียน พร้อมความนิยมของแอป เปิดให้ใช้หลังซื้อโทเคนครั้งแรก

categoryID หมวดหมู่ เช่น GAME_PUZZLE (ดู /v1/categories)
min_installsติดตั้งขั้นต่ำ (เกณฑ์ของ Google Play: 1000, 10000…)
statuslive (อยู่ในสโตร์, ค่าเริ่มต้น), removed หรือ all
tldโซนโดเมน เช่น com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
GET/api/v1/charts 2 โทเคน

ชาร์ตท็อปของ Google Play สำหรับหนึ่งประเทศและหนึ่งหมวดหมู่: สูงสุด 200 อันดับ การเปลี่ยนแปลงอันดับจากสแนปช็อตก่อนหน้า (change: ขึ้นมากี่อันดับ, "new" คือเข้าชาร์ตใหม่) ไอคอน และการติดตั้ง

country *ประเทศ รหัส ISO: US, DE, BR…
category *หมวดหมู่ เช่น GAME_PUZZLE
collectionfree | paid | grossing
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
GET/api/v1/rankings 1 โทเคน

ทุกชาร์ตที่แอปติดอันดับในสแนปช็อตล่าสุด: ประเทศ หมวดหมู่ คอลเลกชัน อันดับ รวมถึงจำนวนชาร์ต จำนวนประเทศ และอันดับที่ดีที่สุด

id *ชื่อแพ็กเกจของแอป
countryเพียงประเทศเดียว
collectionfree | paid | grossing
GET/api/v1/availability 1 โทเคน

ประเทศที่แอปมีให้บริการบน Google Play (จาก hreflang ใน sitemap ของสโตร์) หากมี 190 ประเทศขึ้นไป จะส่งกลับ worldwide = true โดยไม่มีรายการ

id *ชื่อแพ็กเกจของแอป
GET/api/v1/markets 1 โทเคน

การแข่งขันของตลาดจากชาร์ตแอปฟรี: เกณฑ์เข้าท็อป 100 และท็อป 200 (ยอดติดตั้งของแอปในอันดับนั้น) สัดส่วนแอปใหม่ (ภายใน 12 เดือน) และแอปท้องถิ่น (≤3 ประเทศ) ในท็อป และขนาดตลาดท้องถิ่น ถ้าไม่ระบุพารามิเตอร์ จะแสดงทุกประเทศ; country: หมวดหมู่ของประเทศเดียว; category: หมวดหมู่เดียวในทุกประเทศ

countryประเทศ รหัส ISO
categoryID หมวดหมู่ เช่น GAME_PUZZLE (ดู /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pageหน้า เริ่มจาก 1
perแถวต่อหน้า 1–100 (ค่าเริ่มต้น 20)
GET/api/v1/stats ฟรี

ขนาดฐานข้อมูล: แอปในสโตร์และแอปที่ถูกลบ นักพัฒนา แอปใหม่และแอปที่ถูกลบใน 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;

ลองใช้

คุณสามารถสร้างคีย์ได้ใน บัญชีของคุณ คำขอถูกส่งตรงจากเบราว์เซอร์ของคุณ คีย์จะไม่ถูกเก็บไว้ที่ใดและจะหายไปเมื่อโหลดหน้าใหม่ คำขอจากคอนโซลใช้โทเคนเหมือนคำขอทั่วไป