Discover/APKMirror API
live

APKMirror APIapkmirror.com ↗

Get the latest stable APK or APKM download URL for any app on APKMirror, filtered by Android API level and CPU architecture. One endpoint, nine response fields.

Endpoint health
verified 1d ago
get_latest_download_url
1/1 passing latest checkself-healing
Endpoints
1
Updated
8d ago

What is the APKMirror API?

The APKMirror API exposes one endpoint — get_latest_download_url — that returns nine fields describing the newest stable (or optionally beta) release of any app on APKMirror that matches a given Android API level and CPU architecture. Supply an app slug like x-corp/twitter, specify your target device constraints, and get back a direct download URL, version string, versionCode, file format, and architecture list without manually browsing the site.

This call costs3 credits / call— charged only on success
Try it
The app slug in the format 'developer/app-name' as it appears in the APKMirror URL path (e.g. 'x-corp/twitter', 'google-inc/youtube'). Any app hosted on APKMirror may be given; an unknown slug returns input_not_found.
Android API level of the target device (30 = Android 11). A variant qualifies only when its minimum required API level is less than or equal to this value. Must be a positive integer.
CPU ABI the variant must support, as APKMirror labels it (e.g. 'arm64-v8a', 'armeabi-v7a', 'x86_64'). Variants listing this ABI qualify first; variants labelled universal/noarch qualify as a fallback tier.
Whether beta/alpha releases are eligible when searching for the highest-versioned compatible release. Accepts 'true' or 'false'.
→ api.parse.bot/scraper/e42793fb-c47d-4b49-87a5-6794a6de3495/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e42793fb-c47d-4b49-87a5-6794a6de3495/get_latest_download_url?app_slug=x-corp%2Ftwitter&include_beta=false' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalmissing one? ·

Finds the highest-versioned stable release of an app on APKMirror that has at least one variant compatible with the caller's device: the variant's minimum Android requirement must be at or below android_api (default 30 = Android 11) and its architecture list must contain architecture (default arm64-v8a) or be universal. Up to 6 of the most recently uploaded releases are all inspected (so a call costs 2 to 10 page fetches); among those with a compatible variant, the release whose version number is highest under numeric segment-by-segment comparison (e.g. 17.8.6638 beats 17.7.6636 even when 17.7 was uploaded later) is selected, with the earlier-listed release winning ties. Within the selected release, architecture-specific matches are preferred over universal ones, and within a tier the first variant listed by APKMirror wins. Beta/alpha releases are skipped unless include_beta is true. On a match, match_status is "matched" and the payload carries version, version_code, min_sdk (API level read from the variant page), architectures (array), file_format ("APK" for a single APK, "APKM" for a split bundle), variant_page_url, release_page_url, download_page_url (APKMirror's browser download page) and download_url: the direct, pre-signed file URL on APKMirror's storage that the download page redirects to. download_url serves the APK/APKM bytes to any plain HTTP client with no cookies or browser needed (one observed shape: a 90 MB APKM served as application/vnd.apkm with HTTP range support), but it is only valid until download_url_expires_at (one hour after issue in every observed case), so fetch it promptly or call the endpoint again for a fresh URL. file_name is the file name of that URL. When no inspected release has a compatible variant, match_status is "no compatible variant", releases_checked says how many releases were examined, and every variant-specific field is null (architectures is an empty array); the endpoint never falls back to an incompatible variant. An unknown app slug yields a stale_input error (input_not_found).

Input
ParamTypeDescription
app_slugstringThe app slug in the format 'developer/app-name' as it appears in the APKMirror URL path (e.g. 'x-corp/twitter', 'google-inc/youtube'). Any app hosted on APKMirror may be given; an unknown slug returns input_not_found.
android_apiintegerAndroid API level of the target device (30 = Android 11). A variant qualifies only when its minimum required API level is less than or equal to this value. Must be a positive integer.
architecturestringCPU ABI the variant must support, as APKMirror labels it (e.g. 'arm64-v8a', 'armeabi-v7a', 'x86_64'). Variants listing this ABI qualify first; variants labelled universal/noarch qualify as a fallback tier.
include_betastringWhether beta/alpha releases are eligible when searching for the highest-versioned compatible release. Accepts 'true' or 'false'.
Response
{
  "type": "object",
  "fields": {
    "min_sdk": "number|null - minimum Android API level required by the matched variant",
    "version": "string|null - release title as displayed on APKMirror; null when no compatible variant",
    "app_name": "string|null - release title as displayed on APKMirror (app name plus version)",
    "file_name": "string|null - file name of the APK/APKM as served by download_url",
    "file_format": "string|null - \"APK\" for a single APK file or \"APKM\" for an APKMirror split bundle",
    "app_page_url": "string - URL of the app's main page on APKMirror",
    "download_url": "string|null - direct pre-signed URL of the APK/APKM file on APKMirror's storage; downloadable by any HTTP client without a browser or cookies until download_url_expires_at",
    "match_status": "string - \"matched\" when a compatible variant was found, otherwise \"no compatible variant\"",
    "version_code": "number|null - integer Android versionCode of the matched variant",
    "architectures": "array of strings - ABIs the matched variant supports (e.g. [\"arm64-v8a\",\"armeabi-v7a\"] or [\"universal\"]); empty when no compatible variant",
    "release_page_url": "string|null - URL of the release page the variant belongs to",
    "releases_checked": "number - how many releases (newest uploads first) were inspected when choosing the highest-versioned compatible release",
    "variant_page_url": "string|null - URL of the matched variant's detail page",
    "download_page_url": "string|null - APKMirror's HTML download page for the variant (browser use; includes its key parameter)",
    "download_url_expires_at": "string|null - UTC ISO-8601 instant (YYYY-MM-DDTHH:MM:SSZ) after which download_url stops working; null if the URL carried no expiry"
  },
  "sample": {
    "data": {
      "min_sdk": 28,
      "version": "X 12.30.0-prod.01",
      "app_name": "X 12.30.0-prod.01",
      "file_name": "com.twitter.android_12.30.0-prod.01-312300001_2arch_2dpi_24lang_914573cd901cfe0dd9e8992656f4221f_apkmirror.com.apkm",
      "file_format": "APKM",
      "app_page_url": "https://www.apkmirror.com/apk/x-corp/twitter/",
      "download_url": "https://<storage-host>/downloadprod/wp-content/uploads/2026/09/36/6abc02fec426c/com.twitter.android_12.30.0-prod.01-312300001_2arch_2dpi_24lang_914573cd901cfe0dd9e8992656f4221f_apkmirror.com.apkm?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<credential>&X-Amz-Date=20261001T112751Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=<signature>",
      "match_status": "matched",
      "version_code": 312300001,
      "architectures": [
        "arm64-v8a",
        "armeabi-v7a"
      ],
      "release_page_url": "https://www.apkmirror.com/apk/x-corp/twitter/x-12-30-0-prod-01-release/",
      "releases_checked": 6,
      "variant_page_url": "https://www.apkmirror.com/apk/x-corp/twitter/x-12-30-0-prod-01-release/x-12-30-0-prod-01-2-android-apk-download/",
      "download_page_url": "https://www.apkmirror.com/apk/x-corp/twitter/x-12-30-0-prod-01-release/x-12-30-0-prod-01-2-android-apk-download/download/?key=<key>",
      "download_url_expires_at": "2026-10-01T12:27:51Z"
    },
    "status": "success"
  }
}

About the APKMirror API

What the endpoint returns

get_latest_download_url scans APKMirror releases for the app identified by app_slug (formatted as developer/app-name, matching the URL path on APKMirror) and returns the newest release whose variants satisfy both device constraints you supply. The response includes download_url — a direct link to the matched variant file including its key parameter — alongside release_page_url and app_page_url for reference. When no compatible variant exists, match_status is set to "no compatible variant" and nullable fields such as download_url, version, and version_code return null.

Filtering by device compatibility

Two parameters control which variant qualifies. android_api (default 30, i.e. Android 11) sets the ceiling: a variant is eligible only when its minimum SDK requirement is at or below that value. architecture (default arm64-v8a) restricts matches to variants whose ABI list contains the specified string — common values include armeabi-v7a, x86_64, and universal. The response echoes back min_sdk and architectures so you can verify the match without a second call.

File format and beta releases

file_format distinguishes between "APK" (a single installable file) and "APKM" (an APKMirror split bundle), which matters when you need to handle installation differently for bundled apps. By default only stable releases are considered; setting include_beta to "true" makes alpha and beta releases eligible, useful for tracking pre-release builds of apps under active development.

Identifying apps

The app_slug follows the path structure visible in APKMirror URLs — for example, the Twitter app at apkmirror.com/apk/x-corp/twitter/ uses the slug x-corp/twitter. The app_name field in the response returns the full release title as APKMirror displays it, which typically combines the app name and version string.

Reliability & maintenanceVerified

The APKMirror API is a managed, monitored endpoint for apkmirror.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when apkmirror.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official apkmirror.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Automate APK downloads in a CI pipeline by fetching the latest download_url for a target arm64-v8a device before each test run.
  • Monitor version_code changes to detect new releases of a specific app without polling the APKMirror website manually.
  • Build a device-aware update checker that filters releases by android_api to ensure compatibility with older Android versions.
  • Distinguish between APK and APKM file formats so your installer script handles split bundles separately from standard APKs.
  • Track pre-release cadence of apps by enabling include_beta and logging the returned version and version_code over time.
  • Retrieve release_page_url to deep-link users directly to the correct variant page for manual verification or changelog review.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does APKMirror have an official developer API?+
APKMirror does not publish an official public developer API. There is no documented REST or GraphQL interface offered by the site for programmatic access to app metadata or download links.
What does `match_status` indicate and when is `download_url` null?+
match_status is "matched" when the endpoint finds a release whose variant meets both the android_api ceiling and the architecture requirement. If no such variant exists across the app's recent stable (or beta, if enabled) releases, match_status becomes "no compatible variant" and download_url, version, version_code, min_sdk, file_format, and release_page_url all return null. app_page_url and architectures (as an empty array) are always present.
Can the API return a list of all available versions or variants for an app?+
Not currently. The API returns metadata for a single matched variant — the newest compatible one — rather than a list of all releases or all variants. You can fork this API on Parse and revise it to add an endpoint that enumerates multiple versions or variant options.
Does the endpoint cover apps that require an APKMirror account to download?+
The download_url returned is for publicly accessible variants on APKMirror. Apps or variants that require a logged-in session to initiate a download are not covered by this endpoint. The API surfaces only what is reachable without authentication.
Can I retrieve changelog or release notes alongside the download URL?+
Not currently. The response fields cover version identity (version, version_code), device compatibility (min_sdk, architectures), file format, and URLs — but no changelog or description text. You can fork this API on Parse and revise it to include release notes if APKMirror surfaces them on the release page.
Page content last updated . Spec covers 1 endpoint from apkmirror.com.
Related APIs in Developer ToolsSee all →
postman.com API
Access data from postman.com.
alternativeto.net API
Search for software applications, discover alternative tools to replace your current apps, and explore detailed information about programs across different categories and platforms. Find the perfect software match by browsing apps, comparing alternatives, and filtering by your preferred operating system.
pgyer.com API
Access data from pgyer.com.
download.com API
Search and discover software across CNET's download library, filter by platform and category, and access detailed product specs and download links. Find the latest releases and most popular downloads to quickly locate the software you need.
smashingmagazine.com API
Access Smashing Magazine's library of articles, books, ebooks, newsletters, and events with powerful search and filtering capabilities. Browse by category, discover related content, explore author profiles, and stay updated with the latest design and web development resources.
apnews.com API
Search for news articles from Associated Press on any topic and retrieve complete article details including headlines, summaries, and content with easy pagination. Stay informed with current news stories by finding and reading articles on subjects that matter to you.
mangaupdates.com API
Track manga releases by day, look up detailed series information and genres, and monitor site statistics — all from MangaUpdates. Access release schedules, series metadata, and platform insights to stay updated on the latest manga.
musixmatch.com API
Search for song lyrics, metadata, and translations while discovering artist profiles, discographies, and album details all in one place. Build music apps that let you retrieve complete song information, explore artist catalogs, and discover new music through curated feeds.