REST API
Endpoints used by the SDK, CLI and your own tooling.
Update check (public, rate limited)
http
POST /api/public/v1/updates/check
{ "app": "<appId>", "channel": "production", "platform": "android",
"installationId": "<stable id>", "runtimeVersion": "1.3.0",
"nativeVersion": "1.3.0", "currentReleaseId": null }
200 { "success": true, "data": { "updateAvailable": true, "release": {
"id": "…", "version": "1.3.1", "runtimeVersion": "1.3.0", "mandatory": false, "notes": "…",
"bundle": { "url": "https://firebasestorage.googleapis.com/…", "hash": "<sha256>", "size": 123456 } } } }
200 { "success": true, "data": { "updateAvailable": false, "reason": "up_to_date" } }Device events (public, rate limited)
http
POST /api/public/v1/updates/events
{ "app": "<appId>", "releaseId": "<id>", "platform": "android", "installationId": "<stable id>",
"runtimeVersion": "1.3.0", "event": "install_succeeded", "eventId": "<unique per event>" }
# event: download_started | download_completed | install_succeeded | install_failed | rollbackReleases (API key)
http
# Authorization: Bearer fota_sk_...
POST /api/public/v1/releases create a draft (scope release.write, Idempotency-Key supported)
GET /api/public/v1/releases?appId=… list releases (scope release.read)
POST /api/public/v1/releases/:id/bundle upload .fota (scope release.write, multipart "bundle", x-bundle-sha256)
POST /api/public/v1/releases/:id/publish {"action":"publish","rolloutPercentage":10} (release.publish)
{"action":"pause"} (release.publish)
{"action":"rollback","reason":"…","targetReleaseId":"…"} (release.publish)
{"action":"rollout","rolloutPercentage":50} (rollout.write)Health
GET /health, /health/live and /health/ready report configuration and database status for load balancers.