Docs · API

Build API reference

Create builds, poll status, and fetch artifacts programmatically.

The build API is the same one the dashboard uses. Requests are authenticated with your signed-in session cookie. Dedicated API keys for headless/CI use are on the roadmap (see the API keys tab).

POST/api/builds
Start a build. Send multipart/form-data with:
appName       "Zikr Reminder"
packageName   "com.you.zikr"      # com.x.y, lowercase
version       "1.0.0"             # semver
themeColor    "#7c3aed"           # #RRGGBB
mode          "CAPACITOR"          # CAPACITOR | TWA | WEBVIEW
source        "GITHUB"             # GITHUB | URL | ZIP
sourceRef     "owner/repo"         # repo, https URL, or storage path
Returns 201 { "id": "cm…" }. Free accounts are limited to one build; 402 is returned past the limit.
GET/api/builds/:id
Poll a build. Returns status, progress, stage, logs, readiness, store assets, and (when finished) apkUrl / aabUrl.
{
  "id": "cm…",
  "status": "RUNNING",          // QUEUED|RUNNING|SUCCEEDED|FAILED
  "progress": 60,
  "stage": "compiling-apk",
  "apkUrl": null,
  "logs": [ { "level": "INFO", "message": "…" } ]
}
GET/api/builds/:id/download?file=apk
Download an artifact once status = SUCCEEDED. file is apk, aab, or assets. Redirects to a storage URL for the signed binary.
POST/api/uploads/zip
Upload a project ZIP (same-origin, multipart file). Returns { "path": "…" } to pass as sourceRef with source=ZIP.
Polling cadence: the dashboard polls every ~1.5s while a build is running. Builds typically finish in 4–6 minutes.