`GET /api/apps` -- list the workspace's Apps (without `manifest_yaml` so the payload stays small for long lists).
const url = 'https://example.com/api/apps';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/appsResponses
Section titled “Responses”Lightweight list-row view – drops manifest_yaml so a workspace with
dozens of large manifests does not balloon the list-API payload. The
detail GET still returns the full AppView with the manifest.
#358 board: enriched with the per-card runtime state so the Apps list
renders deploy status / version / route, the latest build, and the
member counts without an extra round-trip. Every runtime field is
nullable / defaulted so a never-deployed (draft) App lists cleanly.
Serialised snake_case (the struct has no rename_all), matching the
existing list fields and the App domain row.
object
Active deployment status (deployed | paused | draft |
undeployed). None ⇒ the App has never been deployed (draft).
Version string of the active deployment (e.g. 1.0.0). None when
there is no deployment.
ADR 0030 – build framework, so list cards can show a framework badge without fetching the full manifest.
Finished-at of the most-recent build (completed_at). None when
the App has never been built OR the latest build is still running.
Status of the most-recent build (queued | claimed | building
| succeeded | failed). None when the App has never been built.
Number of resources wired into the App (membership join).
Public route of the active deployment, /a/{workspace}/{route}.
None when there is no deployment.
Number of scripts wired into the App (membership join).
Number of workflows wired into the App (membership join).
Examplegenerated
[ { "created_at": "2026-04-15T12:00:00Z", "deploy_status": "example", "deployed_version": "example", "description": "example", "framework": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "latest_build_at": "2026-04-15T12:00:00Z", "latest_build_status": "example", "name": "example", "resource_count": 1, "route": "example", "script_count": 1, "slug": "example", "updated_at": "2026-04-15T12:00:00Z", "workflow_count": 1, "workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }]