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.
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.
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-Cost | tín dụng của yêu cầu này |
X-Credits-Remaining | tín dụng còn lại (gói + số dư) |
X-Cache | HIT — lấy từ bộ nhớ đệm (nhanh hơn), MISS — truy vấn mới vào chỉ mục |
X-RateLimit-Limit / -Remaining | giới hạn mỗi phút của khóa và phần còn lại |
X-Plan | free | 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í).
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. …" }
| HTTP | code | Khi nào |
|---|---|---|
| 400 | invalid_param, invalid_request | tham số không hợp lệ hoặc thiếu |
| 401 | missing_api_key, invalid_api_key | không có khóa, hoặc khóa đã bị thu hồi |
| 402 | insufficient_credits | không đủ tín dụng — hãy nạp thêm hoặc nâng cấp gói |
| 403 | account_blocked, plan_required | tài khoản bị chặn, hoặc điểm cuối yêu cầu gói cao hơn |
| 404 | not_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 |
| 429 | rate_limited | vượt giới hạn yêu cầu mỗi phút |
| 503 | service_unavailable | sự cố cơ sở dữ liệu tạm thời — hãy thử lại sau; không trừ tín dụng |
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.
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.
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 |
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 |
Tìm kiếm và lọc trên toàn bộ cơ sở dữ liệu. Cần ít nhất một bộ lọc. Không có q thì kết quả sắp xếp theo lượt cài đặt.
q | từ cần tìm trong tiêu đề, mô tả và tên nhà phát triển |
category | ID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories) |
developer_id | ID nhà phát triển Google Play |
min_installs | lượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…) |
max_installs | lượt cài đặt tối đa |
min_score | đánh giá tối thiểu, 0–5 |
min_ratings | số đánh giá tối thiểu |
free | true — chỉ miễn phí, false — chỉ trả phí |
ads | true — có quảng cáo, false — không quảng cáo |
iap | true — có mua hàng trong ứng dụng |
lang | ngôn ngữ tiêu đề, mã ISO: en, de, pt… |
released_from | phát hành từ ngày này, YYYY-MM-DD |
released_to | phát hành đến ngày này, tính cả ngày đó |
updated_from | cập nhật từ ngày này |
updated_to | cập nhật đến ngày này, tính cả ngày đó |
status | live (trên cửa hàng, mặc định), removed hoặc all |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
order | desc | asc |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
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ự |
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ý.
id | ID nhà phát triển (từ ứng dụng: developer.id) |
name | hoặc tên chính xác của nhà phát triển |
status | all (mặc định), live hoặc removed |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
Ứng dụng mới theo ngày phát hành đầu tiên, mới nhất ở trên.
since | từ 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 đó |
category | ID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories) |
min_installs | lượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…) |
lang | ngôn ngữ tiêu đề, mã ISO: en, de, pt… |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
Ứ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.
since | từ 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 đó |
category | ID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories) |
min_installs | lượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…) |
sort | removed_at | installs | score |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
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.
lang | ngôn ngữ, mặc định en |
q | từ hoặc cụm từ |
phrase | true — chỉ cụm hai từ, false — chỉ từ đơn |
min_apps | số ứng dụng tối thiểu |
max_apps | số ứng dụng tối đa |
sort | opportunity | apps | installs | strong | devs | max_installs |
order | desc | asc |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
Tất cả danh mục với số ứng dụng và tổng lượt cài đặt. Miễn phí.
status | live (trên cửa hàng, mặc định), removed hoặc all |
Ứ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.
category | ID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories) |
min_installs | lượt cài đặt tối thiểu (ngưỡng Google Play: 1000, 10000…) |
status | live (trên cửa hàng, mặc định), removed hoặc all |
tld | vùng tên miền, ví dụ com |
sort | relevance | installs | real_installs | score | ratings | reviews | released | updated | price |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
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 |
collection | free | paid | grossing |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
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 |
country | chỉ một quốc gia |
collection | free | paid | grossing |
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 |
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.
country | quốc gia, mã ISO |
category | ID danh mục, ví dụ GAME_PUZZLE (xem /v1/categories) |
sort | entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new |
order | desc | asc |
page | trang, từ 1 |
per | số dòng mỗi trang, 1–100 (mặc định 20) |
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
# 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;
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.