ApkDrive API Docs

Official documentation for APK file uploads

Base Endpoint

Use this base URL for all API requests.

https://api.apkdrive.cc

Direct APK Upload

Upload an APK file directly using multipart form data.

POST /upload
Parameter Type Description
api * Field Your unique API key
apk_file * File The APK file (multipart/form-data)
defer_queue optional Field Set to 1 to skip auto-queue. Response includes choice_required: true and new_uid. See Confirm Flow.

Example (cURL):

curl -X POST "https://api.apkdrive.cc/upload" \
  -F "api=your_api_key" \
  -F "apk_file=@/path/to/your_app.apk"

Example Response (NewAdded):

{
  "status": "success",
  "fileStatus": "NewAdded",
  "key": "abc12",
  "name": "your_app.apk",
  "size": 52428800,
  "download": "https://apkdrive.cc/file/abc12",
  "tg_backup": {
    "status": "queued",
    "message": "TG backup will be done in background",
    "file_id": null
  }
}

Example Response (AlreadyExist — duplicate):

{
  "status": "success",
  "fileStatus": "AlreadyExist",
  "key": "abc12",
  "name": "your_app.apk",
  "size": 52428800,
  "download": "https://apkdrive.cc/file/abc12",
  "tg_backup": {
    "status": "queued",
    "message": "TG backup will be done in background",
    "file_id": null
  }
}
fileStatus: NewAdded = first-time upload. AlreadyExist = a file with the same name and size already exists in your account. The duplicate is discarded and the existing link is returned.

Remote URL Upload

Upload an APK file from a direct download URL.

GET /upload?api=KEY&url=DIRECT_URL
Parameter Description
api * Your unique API key.
url * Direct download URL pointing to an .apk file.
defer_queue optional Set to 1 to skip auto-queue. See Confirm Flow.

Example Request:

https://api.apkdrive.cc/upload?api=your_api_key&url=https://example.com/my_app.apk

Example Response:

{
  "status": "success",
  "fileStatus": "NewAdded",
  "key": "xyz45",
  "name": "my_app.apk",
  "size": 104857600,
  "download": "https://apkdrive.cc/file/xyz45",
  "tg_backup": {
    "status": "success",
    "message": "Backup successful",
    "file_id": "BQACAgQAAx..."
  }
}

Confirm Flow (for defer_queue)

When defer_queue=1 is used, the file is saved but not queued for server upload. Send one of these actions to finalize.

confirm_new — Create New Link

Parameter Description
api * Your unique API key.
action * "confirm_new"
new_uid * The new_uid received in the deferred upload response.

Example (cURL):

curl -X POST "https://api.apkdrive.cc/upload" \
  -F "api=your_api_key" \
  -F "action=confirm_new" \
  -F "new_uid=abc12"

Example Response:

{
  "status": "success",
  "message": "File queued for server upload",
  "download": "https://apkdrive.cc/file/abc12"
}

confirm_update — Replace Existing File

Parameter Description
api * Your unique API key.
action * "confirm_update"
new_uid * The new_uid from the deferred upload response.
old_link * Existing link or UID to update. Accepts full URL (/file/xyz45) or raw UID (xyz45). Both must belong to you.

Example (cURL):

curl -X POST "https://api.apkdrive.cc/upload" \
  -F "api=your_api_key" \
  -F "action=confirm_update" \
  -F "new_uid=abc12" \
  -F "old_link=https://apkdrive.cc/file/xyz45"

Example Response:

{
  "status": "success",
  "message": "File updated successfully — re-queued for server upload",
  "download": "https://apkdrive.cc/file/xyz45",
  "updated_uid": "xyz45"
}

User Info

Get user profile details by API key. Used by Telegram bot for login.

GET /user-info?api=KEY
Parameter Description
api * Your unique API key.

Example Response:

{
  "status": "success",
  "user": {
    "user_id": 1,
    "first_name": "Abhishek",
    "last_name": "Kumar",
    "email": "[email protected]",
    "site_name": null
  }
}

Error Responses

{
  "status": "error",
  "message": "Only .apk files are allowed"
}