Tài liệu APK API

REST API với dữ liệu Google Play: 4 triệu ứng dụng, nhà phát triển, ứng dụng mới và bị gỡ, từ khóa tiêu đề. Định dạng: JSON, mã hóa UTF-8, bật CORS.

Bắt đầu nhanh

URL gốc: https://apkapi.com/api/v1. Đăng ký, tạo khóa API trong tài khoản và gửi yêu cầu đầu tiên:

Mô tả API máy đọc được: OpenAPI 3.1 · Bộ sưu tập Postman — nhập vào Postman, Insomnia hoặc trình tạo client (openapi-generator) để có SDK sẵn sàng cho ngôn ngữ của bạn.

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

Dữ liệu bao gồm hơn 4 triệu ứng dụng Google Play từ cửa hàng Mỹ bằng tiếng Anh (từ quốc gia khác nếu ứng dụng không có ở Mỹ), cập nhật mỗi đêm. Ứng dụng biến mất khỏi cửa hàng vẫn ở lại cơ sở dữ liệu cùng dữ liệu cuối cùng.

Xác thực

Mọi yêu cầu trừ /v1/health đều phải có khóa API trong header:

X-API-Key: ak_live_…

Cũng chấp nhận: Authorization: Bearer …. Không được truyền khóa qua tham số URL: khóa sẽ lọt vào nhật ký và lịch sử trình duyệt.

Hãy giữ khóa trên máy chủ của bạn. Nếu nhúng vào JavaScript của trang, bất kỳ khách truy cập nào cũng có thể sao chép. Hãy chuyển yêu cầu frontend qua backend của bạn.

Tín dụng và giới hạn

Mỗi lần gọi tốn 0–3 tín dụng tùy điểm cuối, bất kể số dòng trong phản hồi (tối đa 100); lần gọi hàng loạt apps tốn 1 tín dụng cho mỗi ứng dụng. Tín dụng gói của tháng hiện tại được dùng trước, sau đó đến số dư trả trước. Nếu yêu cầu lỗi do phía chúng tôi, tín dụng được hoàn lại. Gói và gói tín dụng

HeaderÝ nghĩa
X-Credits-Costtín dụng của yêu cầu này
X-Credits-Remainingtín dụng còn lại (gói + số dư)
X-CacheHIT — lấy từ bộ nhớ đệm (nhanh hơn), MISS — truy vấn mới vào chỉ mục
X-RateLimit-Limit / -Remaininggiới hạn mỗi phút của khóa và phần còn lại
X-Planfree | pro | scale | business

Tín dụng còn lại cũng có trong trường _credits của mọi phản hồi và trong /v1/account (miễn phí).

Định dạng phản hồi và lỗi

Mọi phản hồi đều có trường ok. Danh sách chứa results, total, page, per, pages. Lỗi: ok = false, error là phần giải thích, code là mã máy đọc được. Ngày theo 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. …" }
HTTPcodeKhi nào
400invalid_param, invalid_requesttham số không hợp lệ hoặc thiếu
401missing_api_key, invalid_api_keykhông có khóa, hoặc khóa đã bị thu hồi
402insufficient_creditskhông đủ tín dụng — hãy nạp thêm hoặc nâng cấp gói
403account_blocked, plan_requiredtài khoản bị chặn, hoặc điểm cuối yêu cầu gói cao hơn
404not_foundứng dụng hoặc nhà phát triển không có trong cơ sở dữ liệu, hoặc điểm cuối không xác định
429rate_limitedvượt giới hạn yêu cầu mỗi phút
503service_unavailablesự cố cơ sở dữ liệu tạm thời — hãy thử lại sau; không trừ tín dụng

Điểm cuối

Mọi điểm cuối đều là GET /api/v1/{name}. Phân trang: page (từ 1) và per (1–100), đến kết quả thứ 10.000. Sắp xếp: sort + order=asc|desc.

GET/api/v1/accountmiễn phí

Gói, tín dụng gói và số dư, ngày đặt lại tín dụng và giới hạn mỗi phút của bạn.

Ứng dụng
GET/api/v1/app 1 tín dụng

Bản ghi ứng dụng đầy đủ: tiêu đề, mô tả, nội dung mới, lượt cài đặt (ngưỡng và số chính xác), đánh giá, số lượng đánh giá và nhận xét, phân bố sao, giá, mua hàng trong ứng dụng, quảng cáo, danh mục, xếp hạng nội dung, phiên bản, Android tối thiểu, ngày phát hành và cập nhật, biểu tượng, ảnh chụp màn hình, video, nhà phát triển và trang web. Với ứng dụng bị gỡ: dữ liệu lưu cuối cùng và ngày gỡ.

id *tên gói ứng dụng
GET · POST/api/v1/apps 1 tín dụng cho mỗi ứng dụng

Tối đa 100 ứng dụng trong một lần gọi: GET ?ids=a,b,c hoặc POST với danh sách trong body (mỗi dòng một mục, hoặc JSON {"ids": […]}). 1 tín dụng cho mỗi ứng dụng; id chúng tôi không có sẽ trả về trong not_found.

ids *tên gói, cách nhau bằng dấu phẩy, tối đa 100
GET/api/v1/suggest miễn phí

Gợi ý theo phần đầu tiêu đề: 10 kết quả phổ biến nhất. Miễn phí.

q *phần đầu tiêu đề, từ 2 ký tự
Nhà phát triển
GET/api/v1/developer 2 tín dụng

Một nhà phát triển và mọi ứng dụng của họ: số lượng (trên cửa hàng và bị gỡ), tổng lượt cài đặt, đánh giá trung bình, lần phát hành đầu, danh mục, trang web. Trong gói Business: email, điện thoại, địa chỉ và tên pháp lý.

idID nhà phát triển (từ ứng dụng: developer.id)
namehoặc tên chính xác của nhà phát triển
statusall (mặc định), live hoặc removed
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
Thay đổi trên cửa hàng
GET/api/v1/new 2 tín dụng

Ứng dụng mới theo ngày phát hành đầu tiên, mới nhất ở trên.

sincetừ ngày này, YYYY-MM-DD (mặc định: 7 ngày trước)
untilđến ngày này, tính cả ngày đó
categoryID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories)
min_installslượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…)
langngôn ngữ tiêu đề, mã ISO: en, de, pt…
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
GET/api/v1/removed 2 tín dụng

Ứng dụng đã biến mất khỏi Google Play (không có ở cả 19 quốc gia chúng tôi kiểm tra), theo ngày gỡ. Bản ghi ứng dụng giữ dữ liệu cuối cùng.

sincetừ ngày này, YYYY-MM-DD (mặc định: 7 ngày trước)
untilđến ngày này, tính cả ngày đó
categoryID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories)
min_installslượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…)
sortremoved_at | installs | score
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
Thị trường
GET/api/v1/keywords 2 tín dụng

Từ và cụm từ trong tiêu đề ứng dụng theo từng ngôn ngữ: bao nhiêu ứng dụng và nhà phát triển dùng chúng, bao nhiêu trong số đó mạnh (từ 100 nghìn lượt cài đặt), tổng lượt cài đặt, tỷ lệ của ứng dụng dẫn đầu và điểm cơ hội.

langngôn ngữ, mặc định en
qtừ hoặc cụm từ
phrasetrue — chỉ cụm hai từ, false — chỉ từ đơn
min_appssố ứng dụng tối thiểu
max_appssố ứng dụng tối đa
sortopportunity | apps | installs | strong | devs | max_installs
orderdesc | asc
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
GET/api/v1/categories miễn phí

Tất cả danh mục với số ứng dụng và tổng lượt cài đặt. Miễn phí.

statuslive (trên cửa hàng, mặc định), removed hoặc all
GET/api/v1/free_domains 3 tín dụngPro+

Ứng dụng có tên miền trang web của nhà phát triển đang có thể đăng ký, kèm mức độ phổ biến. Gói Pro trở lên.

categoryID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories)
min_installslượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…)
statuslive (trên cửa hàng, mặc định), removed hoặc all
tldvùng tên miền, ví dụ com
sortrelevance | installs | real_installs | score | ratings | reviews | released | updated | price
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
GET/api/v1/charts 2 tín dụng

Bảng xếp hạng Google Play cho một quốc gia và danh mục: tối đa 200 vị trí, thay đổi thứ hạng so với ảnh chụp trước (change: tăng bao nhiêu bậc, "new" với mục mới), biểu tượng và lượt cài đặt.

country *quốc gia, mã ISO: US, DE, BR…
category *danh mục, ví dụ GAME_PUZZLE
collectionfree | paid | grossing
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
GET/api/v1/rankings 1 tín dụng

Mọi bảng xếp hạng có ứng dụng trong ảnh chụp mới nhất: quốc gia, danh mục, bộ sưu tập, vị trí; số bảng xếp hạng và quốc gia, và vị trí tốt nhất.

id *tên gói ứng dụng
countrychỉ một quốc gia
collectionfree | paid | grossing
GET/api/v1/availability 1 tín dụng

Các quốc gia có ứng dụng trên Google Play (từ hreflang trong sitemap của cửa hàng). Từ 190 quốc gia trở lên, trả về worldwide = true không kèm danh sách.

id *tên gói ứng dụng
GET/api/v1/markets 1 tín dụng

Mức cạnh tranh thị trường dựa trên bảng xếp hạng miễn phí: ngưỡng vào top 100 và top 200 (lượt cài đặt của ứng dụng ở vị trí đó), tỷ lệ ứng dụng mới (12 tháng qua) và ứng dụng địa phương (≤3 quốc gia) trong top, và quy mô thị trường địa phương. Không tham số: mọi quốc gia; country: các danh mục của một quốc gia; category: một danh mục ở mọi quốc gia.

countryquốc gia, mã ISO
categoryID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories)
sortentry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new
orderdesc | asc
pagetrang, từ 1
persố dòng mỗi trang, 1–100 (mặc định 20)
GET/api/v1/stats miễn phí

Quy mô cơ sở dữ liệu: ứng dụng trên cửa hàng và bị gỡ, nhà phát triển, mới và bị gỡ trong 7 ngày qua, thời điểm cập nhật cuối. Miễn phí.

* — tham số bắt buộc

Ví dụ mã

# curl — one app
curl -H "X-API-Key: $KEY" "https://apkapi.com/api/v1/app?id=org.telegram.messenger"

# curl — puzzle games with 10M+ installs, best rated first
curl -H "X-API-Key: $KEY" "https://apkapi.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://apkapi.com/api/v1/apps"
# Python — apps removed from Google Play this week
import os, requests
r = requests.get("https://apkapi.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("credits left:", data["_credits"]["available"])
// Node.js 18+ (trên máy chủ, không phải trong trình duyệt)
const res = await fetch("https://apkapi.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://apkapi.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;

Dùng thử

Bạn có thể tạo khóa trong tài khoản. Yêu cầu được gửi trực tiếp từ trình duyệt của bạn. Khóa không được lưu ở đâu cả và sẽ mất khi tải lại trang. Yêu cầu từ bảng điều khiển cũng dùng tín dụng như các yêu cầu khác.