Endpoints
com.roblox.client · target ABI x86_64 · status page
Every endpoint. All are GET unless marked otherwise, and none of them change anything.
| Endpoint | Answers |
|---|---|
/api/v1 | A machine-readable index of this list. |
/api/v1/android/version | Current version and its release time. |
/api/v1/android/current | Which build to install, plus a download URL. |
/api/v1/android/files | Every APK this server holds. |
/api/v1/android/files/{version} | One of them. |
/api/v1/android/history | Version history, newest first. |
/api/v1/android/status | Everything the status page shows. |
/download/{version} | The file itself. See Downloading files. |
/healthz | Whether the tracker itself is working. |
GET /api/v1/android/version
The question this API exists for: what is the current Roblox Android version, and when did it arrive? Cheap — it reads the database and makes no outbound request.
curl -s https://robloxandriod.com/api/v1/android/version
{
"package": "com.roblox.client",
"targetAbi": "x86_64",
"version": "2.734.917",
"versionCode": 273491700,
"releasedAt": "2025-08-14T17:02:41.000Z",
"releasedAtEpochMs": 1755190961000,
"ageSeconds": 259200,
"firstSeenAt": "2025-08-14T16:31:09.000Z",
"previousVersion": "2.734.612",
"installable": true,
"abis": ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"],
"stored": true,
"download": "/download/2.734.917",
"checkedAt": "2025-08-17T21:04:00.000Z"
}
| Field | Meaning |
|---|---|
version | What Roblox production is serving. null before the first successful poll. |
versionCode | Android's own integer version. null when the mirror never exposed it. |
releasedAt | When this version was first observed live in production. Not Roblox's internal build time, which is published nowhere; it is accurate to roughly one poll interval (60s). |
firstSeenAt | When the build first appeared at all, usually earlier — builds are staged on the mirror before production adopts them. |
ageSeconds | Seconds since releasedAt. Convenience only. |
installable | Whether this build was verified to carry a x86_64 library. False is a real state, not an error — see Failures. |
stored | Whether /download/{version} will serve this exact version. |
download | Path to fetch it, or null when not stored. |
GET /api/v1/android/current
Different question, and the important distinction on this page: /version
reports what Roblox released; /current reports what you
should install. They usually match. When the newest release ships no
x86_64 artifact, they do not, and this endpoint
deliberately answers with the newest build that is installable.
It resolves a live download URL, so it is slower and may reach out to the mirror. Pass
?url=false for the decision without the URL.
curl -s "https://robloxandriod.com/api/v1/android/current"
{
"version": "2.734.917",
"versionCode": 273491700,
"kind": "apk",
"url": "https://<account>.r2.cloudflarestorage.com/...",
"urlExpiresAt": 1755194561000,
"source": "r2",
"sha256": "9f2c...",
"sizeBytes": 231014912,
"abis": ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"],
"targetAbi": "x86_64",
"isProduction": true,
"heldBack": null
}
| Field | Meaning |
|---|---|
kind | apk for a single universal file, xapk for a split bundle. They install differently. |
url | A direct, time-limited link. Do not cache it — see Downloading files. |
source | r2 when it points at this project's own copy, mirror when it points at the public mirror. |
sha256 | Non-empty only when source is r2. An empty string means UNPINNED: log it, do not treat it as verified. |
heldBack | null normally. Otherwise an object with newestVersion and reason, meaning a newer release exists and was skipped on purpose. |
GET /api/v1/android/files
The inventory. Only versions in this list can be downloaded from this server; older ones are pruned as new builds land (5 kept).
{
"count": 2,
"targetAbi": "x86_64",
"latest": "2.734.917",
"files": [
{
"version": "2.734.917",
"versionCode": 273491700,
"kind": "apk",
"fileName": "roblox-2.734.917.apk",
"sizeBytes": 231014912,
"sha256": "9f2c...",
"storedAt": "2025-08-14T17:09:55.000Z",
"isProduction": true,
"isLatest": true,
"path": "/download/2.734.917",
"url": "https://robloxandriod.com/download/2.734.917",
"abis": ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]
}
]
}
GET /api/v1/android/files/{version}
One entry, in the same shape as an element of files. latest is
accepted in place of a version number. A tracked-but-unstored version answers
404 with a reason saying which kind of "no" it is.
curl -s https://robloxandriod.com/api/v1/android/files/latest
GET /api/v1/android/history?limit=N
Recent versions, newest first. limit defaults to 10, maximum 50.
curl -s "https://robloxandriod.com/api/v1/android/history?limit=5"
GET /api/v1/android/status
The whole picture in one object: production, builds in flight, the newest installable build, and recent events. This is what the status page renders. Useful for a dashboard; heavier than an updater needs.
GET /healthz
Answers 200 when the poll loop is running and 503 when it has
stalled — a dead tracker reports unhealthy rather than cheerfully serving a version number
that stopped updating three days ago. Point an uptime monitor here.
{"ok": true, "uptimeSeconds": 84213, "poll": {"stalled": false}}
POST /internal/poll
Operator-only, always requires the token. Forces a poll cycle immediately. Listed here for completeness; a client should never call it.