Endpoints

Windows · macOS · Android · home

Every endpoint. All are GET unless marked otherwise, and none of the GETs change anything. {platform} is one of windows, macos, android.

EndpointAnswers
/api/v1A machine-readable index of this list.
/api/v1/platformsEvery tracked platform, with its live version. One call.
/api/v1/{platform}/versionCurrent version and its release time.
/api/v1/{platform}/currentWhich build to use, plus a download URL.
/api/v1/{platform}/filesEvery file this server holds for it.
/api/v1/{platform}/files/{version}One of them.
/api/v1/{platform}/historyVersion history, newest first.
/api/v1/{platform}/statusEverything the platform page shows.
/api/v1/{platform}/offsetsVersions with published offsets. See Offsets.
/download/{platform}/{version}The file itself. See Downloading files.
/healthzWhether the tracker itself is working.
POST /internal/pollOperator-only. Forces a poll cycle.
POST /internal/offsets/{platform}/{version}Operator-only. Publishes a dump.

GET /api/v1/platforms

The whole site in one request. Use this rather than three calls to /version when you want a dashboard.

curl -s https://rbxoffsets.com/api/v1/platforms
{
  "site": "rbxoffsets",
  "platforms": [
    {
      "platform": "windows",
      "label": "Windows",
      "slug": "windows",
      "version": "version-ddf602d9cfe44005",
      "displayVersion": "0.734.0.7340917",
      "releasedAt": "2026-08-12T16:00:13.000Z",
      "storedFiles": 3,
      "offsets": { "supported": true, "versions": 5 },
      "links": { "page": "https://rbxoffsets.com/windows", "version": "...", "offsets": "..." }
    }
  ]
}

GET /api/v1/{platform}/version

The question this API exists for: what is the current version, and when did it arrive? Cheap — it reads the database and makes no outbound request.

curl -s https://rbxoffsets.com/api/v1/windows/version
{
  "platform": "windows",
  "label": "Windows",
  "version": "version-ddf602d9cfe44005",
  "displayVersion": "0.734.0.7340917",
  "versionCode": null,
  "releasedAt": "2026-08-12T16:00:13.000Z",
  "releasedAtEpochMs": 1786550413000,
  "ageSeconds": 259200,
  "firstSeenAt": "2026-08-12T16:03:09.000Z",
  "previousVersion": "version-91c4a0e8b7d24f13",
  "installable": true,
  "abis": [],
  "stored": true,
  "download": "https://rbxoffsets.com/download/windows/version-ddf602d9cfe44005",
  "sha256": "9f2c...",
  "sizeBytes": 133904975,
  "offsets": { "supported": true, "versions": 5, "url": "https://rbxoffsets.com/api/v1/windows/offsets" },
  "checkedAt": "2026-08-18T09:04:00.000Z"
}
FieldMeaning
versionWhat Roblox production is serving, as its identity. null before the first successful poll. See the identity note.
displayVersionThe dotted version for humans. Not unique across platforms or binary types.
versionCodeAndroid's own integer version. Always null on desktop, which has no such concept.
releasedAtWhen this build went live. Recorded by WEAO where available; otherwise it is when this tracker first observed it, accurate to roughly one poll interval (60s).
firstSeenAtWhen the build first appeared at all. On Android usually earlier than releasedAt, because builds are staged on the mirror before production adopts them. On desktop the two are close together.
installableAndroid: whether the build was verified to carry a x86_64 library. False is a real state, not an error. Desktop: whether a copy is stored here.
abisAndroid only. Always [] on desktop.
storedWhether /download/{platform}/{version} will serve this exact version.
offsetssupported: false means the platform will never have them (macOS today), not that none have been published yet.

GET /api/v1/{platform}/current

Different question, and the important distinction on this page: /version reports what Roblox released; /current reports what you should use.

They usually match. On Android, when the newest release ships no x86_64 artifact they do not, and this endpoint deliberately answers with the newest build that is installable, explaining itself in heldBack. On desktop there is no such ambiguity, so it always answers with production.

It resolves a live download URL, so it is slower and may reach out to upstream. Pass ?url=false for the decision without the URL.

curl -s "https://rbxoffsets.com/api/v1/android/current"
{
  "platform": "android",
  "version": "2.734.917",
  "displayVersion": "2.734.917",
  "versionCode": 273491700,
  "kind": "apk",
  "fileName": "roblox-2.734.917.apk",
  "url": "https://<account>.r2.cloudflarestorage.com/...",
  "urlExpiresAt": 1786554013000,
  "source": "r2",
  "sha256": "9f2c...",
  "sizeBytes": 231014912,
  "abis": ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"],
  "targetAbi": "x86_64",
  "isProduction": true,
  "heldBack": null,
  "downloadPath": "https://rbxoffsets.com/download/android/2.734.917"
}
FieldMeaning
kindapk for a single universal Android file, xapk for a split bundle, zip for a desktop package. They are installed differently.
urlA direct link, time-limited when it points at our storage. Do not cache it — see Downloading files.
sourcer2 = this project's own copy. mirror = the public Android mirror. roblox = Roblox's setup CDN, used for a desktop build we have not archived.
sha256Non-empty only when source is r2. An empty string means UNPINNED: log it, do not treat it as verified.
heldBacknull normally. Otherwise an object with newestVersion and reason, meaning a newer release exists and was skipped on purpose. Android only.

GET /api/v1/{platform}/files

The inventory. Only versions in this list can be downloaded from this server; older ones are pruned as new builds land (5 kept per platform). Offsets are never pruned.

{
  "platform": "windows",
  "count": 2,
  "latest": "version-ddf602d9cfe44005",
  "archiveEnabled": true,
  "retainVersions": 5,
  "files": [
    {
      "platform": "windows",
      "version": "version-ddf602d9cfe44005",
      "displayVersion": "0.734.0.7340917",
      "versionCode": null,
      "kind": "zip",
      "fileName": "RobloxApp.zip",
      "sizeBytes": 133904975,
      "sha256": "9f2c...",
      "storedAt": "2026-08-12T16:09:55.000Z",
      "isProduction": true,
      "isLatest": true,
      "path": "/download/windows/version-ddf602d9cfe44005",
      "url": "https://rbxoffsets.com/download/windows/version-ddf602d9cfe44005",
      "abis": []
    }
  ]
}

GET /api/v1/{platform}/files/{version}

One entry, in the same shape as an element of files. latest is accepted in place of a version. A tracked-but-unstored version answers 404 with a reason saying which kind of "no" it is.

curl -s https://rbxoffsets.com/api/v1/mac/files/latest

GET /api/v1/{platform}/history?limit=N

Recent versions, newest first. limit defaults to 10, maximum 50. Desktop history begins when this server first polled — see the note on the contents page.

curl -s "https://rbxoffsets.com/api/v1/windows/history?limit=5"

GET /api/v1/{platform}/status

The whole picture for one platform in one object: production, builds in flight, the newest usable build, stored files, and recent events. This is what the platform pages render. 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, "platforms": ["windows","mac","android"], "poll": {"stalled": false}}

POST /internal/poll

Operator-only, always requires the token. Forces a poll cycle immediately across every tracked platform. Listed here for completeness; a client should never call it.

POST /internal/offsets/{platform}/{version}

Operator-only. How a dump gets published. Covered on the Offsets page.