Τεκμηρίωση APK API

REST API με δεδομένα Google Play: 4 εκατ. εφαρμογές, προγραμματιστές, νέες και αποσυρμένες εφαρμογές, λέξεις-κλειδιά τίτλων. Μορφή JSON, κωδικοποίηση UTF-8, CORS ενεργοποιημένο.

Γρήγορη εκκίνηση

Βασική διεύθυνση: https://apkapi.com/api/v1. Εγγραφείτε, δημιουργήστε ένα κλειδί API στον λογαριασμό και στείλτε το πρώτο σας αίτημα:

Περιγραφή του API για μηχανές: OpenAPI 3.1 · συλλογή Postman — εισαγάγετέ το στο Postman, στο Insomnia ή σε γεννήτρια πελατών (openapi-generator) και θα λάβετε έτοιμο SDK για τη γλώσσα σας.

curl -H "X-API-Key: ΤΟ_ΚΛΕΙΔΙ_ΣΑΣ" "https://apkapi.com/api/v1/app?id=com.whatsapp"

Τα δεδομένα αφορούν πάνω από 4 εκατ. εφαρμογές Google Play από την αμερικανική βιτρίνα στα αγγλικά (αν η εφαρμογή δεν υπάρχει εκεί, από άλλη χώρα), με ανανέωση κάθε νύχτα. Οι εφαρμογές που εξαφανίζονται από το κατάστημα παραμένουν στη βάση με τα τελευταία τους δεδομένα.

Εξουσιοδότηση

Κάθε αίτημα, εκτός από το /v1/health, πρέπει να περιλαμβάνει το κλειδί API σε κεφαλίδα:

X-API-Key: ak_live_…

Γίνεται δεκτό επίσης: Authorization: Bearer …. Δεν επιτρέπεται η αποστολή του κλειδιού σε παραμέτρους URL: θα κατέληγε στα logs και στο ιστορικό του προγράμματος περιήγησης.

Κρατήστε το κλειδί στον δικό σας διακομιστή. Αν το ενσωματώσετε στο JavaScript της σελίδας, οποιοσδήποτε επισκέπτης μπορεί να το αντιγράψει. Κάντε τα αιτήματα από το frontend μέσω του δικού σας backend.

Tokens και όρια

Κάθε κλήση κοστίζει 0–3 tokens ανάλογα με το endpoint, ανεξάρτητα από τον αριθμό των γραμμών στην απάντηση (έως 100)· το μαζικό αίτημα apps κοστίζει 1 token ανά εφαρμογή. Πρώτα καταναλώνονται τα μηνιαία tokens και μετά τα αγορασμένα. Αν το αίτημα αποτύχει από δική μας πλευρά, τα tokens επιστρέφονται. Πλάνα και πακέτα

ΚεφαλίδαΣημασία
X-Tokens-Costπόσα tokens κόστισε αυτό το αίτημα
X-Tokens-Remainingπόσα tokens απομένουν (μηνιαία + αγορασμένα)
X-CacheHIT — απάντηση από την προσωρινή μνήμη (πιο γρήγορη), MISS — νέο ερώτημα στο ευρετήριο
X-RateLimit-Limit / -Remainingτο όριο αιτημάτων ανά λεπτό για το κλειδί και το υπόλοιπο
X-Planfree | pro | business

Το υπόλοιπο των tokens υπάρχει επίσης στο πεδίο _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ανεπαρκή tokens — αγοράστε ένα πακέτο
403account_blocked, plan_requiredο λογαριασμός έχει αποκλειστεί ή το endpoint ανοίγει μετά την πρώτη αγορά tokens
404not_foundη εφαρμογή ή ο προγραμματιστής δεν υπάρχει στη βάση, ή το endpoint είναι άγνωστο
429rate_limitedξεπεράστηκε το όριο αιτημάτων ανά λεπτό
503service_unavailableπροσωρινό πρόβλημα με τη βάση — δοκιμάστε ξανά αργότερα· δεν χρεώνονται tokens

Endpoints

Όλα τα endpoints είναι GET /api/v1/{όνομα}. Σελιδοποίηση: page (από 1) και per (1–100), έως το 10.000ό αποτέλεσμα. Ταξινόμηση: sort + order=asc|desc.

GET/api/v1/accountδωρεάν

Το πλάνο σας, το υπόλοιπο tokens, η ημερομηνία ανανέωσης των μηνιαίων tokens και το όριο ανά λεπτό.

Εφαρμογές
GET/api/v1/app 1 tok.

Η πλήρης καρτέλα εφαρμογής: τίτλος, περιγραφή, «Τι νέο υπάρχει», εγκαταστάσεις (όριο και ακριβής αριθμός), βαθμολογία, αριθμός βαθμολογιών και κριτικών, κατανομή αστεριών, τιμή, αγορές εντός εφαρμογής, διαφημίσεις, κατηγορία, ηλικιακή βαθμολόγηση, έκδοση, ελάχιστο Android, ημερομηνίες κυκλοφορίας και ενημέρωσης, εικονίδιο, στιγμιότυπα οθόνης, βίντεο, προγραμματιστής και ο ιστότοπός του. Για τις αποσυρμένες: τα τελευταία αποθηκευμένα δεδομένα και η ημερομηνία απόσυρσης.

id *όνομα πακέτου εφαρμογής
GET · POST/api/v1/apps 1 token ανά εφαρμογή

Έως 100 εφαρμογές με ένα αίτημα: GET ?ids=a,b,c ή POST με τη λίστα στο σώμα (μία ανά γραμμή ή JSON {"ids": […]}). 1 token ανά εφαρμογή· όσες δεν βρεθούν επιστρέφονται στο not_found.

ids *ονόματα πακέτων χωρισμένα με κόμμα, έως 100
GET/api/v1/suggest δωρεάν

Προτάσεις βάσει της αρχής του τίτλου: τα 10 πιο δημοφιλή αποτελέσματα. Δωρεάν.

q *αρχή του τίτλου, από 2 χαρακτήρες
Προγραμματιστές
GET/api/v1/developer 2 tok.

Ένας προγραμματιστής και όλες οι εφαρμογές του: αριθμός (στο κατάστημα και αποσυρμένες), συνολικές εγκαταστάσεις, μέση βαθμολογία, πρώτη κυκλοφορία, κατηγορίες, ιστότοπος. Στο πλάνο Business — email, τηλέφωνο, διεύθυνση και νομική επωνυμία.

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 tok.

Νέες εφαρμογές κατά ημερομηνία πρώτης κυκλοφορίας, οι πιο πρόσφατες πρώτα.

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 tok.

Εφαρμογές που εξαφανίστηκαν από το 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 tok.

Λέξεις και φράσεις από τίτλους εφαρμογών ξεχωριστά για κάθε γλώσσα: πόσες εφαρμογές και προγραμματιστές τις χρησιμοποιούν, πόσες από αυτές είναι ισχυρές (100 χιλ.+ εγκαταστάσεις), συνολικές εγκαταστάσεις, μερίδιο του ηγέτη και βαθμολογία ευκαιρίας (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 tok.μετά την πρώτη αγορά

Εφαρμογές των οποίων ο τομέας του ιστότοπου του προγραμματιστή είναι διαθέσιμος προς εγγραφή, με τη δημοτικότητα της εφαρμογής. Ανοίγει μετά την πρώτη αγορά tokens.

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 tok.

Top chart του Google Play για μία χώρα και κατηγορία: έως 200 θέσεις, αλλαγή θέσης από το προηγούμενο στιγμιότυπο (change: πόσες θέσεις ανέβηκε, «new» — νέα στο chart), εικονίδιο και εγκαταστάσεις.

country *χώρα, κωδικός ISO: US, DE, BR…
category *κατηγορία, π.χ. GAME_PUZZLE
collectionfree | paid | grossing
pageσελίδα, από 1
perγραμμές ανά σελίδα, 1–100 (προεπιλογή 20)
GET/api/v1/rankings 1 tok.

Όλα τα charts στα οποία βρίσκεται η εφαρμογή στο τελευταίο στιγμιότυπο: χώρα, κατηγορία, συλλογή, θέση· αριθμός charts, χωρών και η καλύτερη θέση.

id *όνομα πακέτου εφαρμογής
countryμόνο μία χώρα
collectionfree | paid | grossing
GET/api/v1/availability 1 tok.

Χώρες όπου η εφαρμογή είναι διαθέσιμη στο Google Play (βάσει hreflang στο sitemap του καταστήματος). Αν οι χώρες είναι 190+, επιστρέφεται worldwide = true χωρίς λίστα.

id *όνομα πακέτου εφαρμογής
GET/api/v1/markets 1 tok.

Ανταγωνισμός αγορών βάσει των δωρεάν charts: όριο εισόδου στο top 100 και στο top 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://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("tokens left:", data["_tokens"]["available"])
// Node.js 18+ (στον διακομιστή — όχι στο πρόγραμμα περιήγησης)
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;

Δοκιμή

Μπορείτε να δημιουργήσετε κλειδί στον λογαριασμό. Το αίτημα στέλνεται απευθείας από το πρόγραμμα περιήγησής σας. Το κλειδί δεν αποθηκεύεται πουθενά και εξαφανίζεται μετά την ανανέωση της σελίδας. Τα αιτήματα από την κονσόλα καταναλώνουν tokens όπως όλα τα υπόλοιπα.