API referenceApps
`GET /apps/{id}` — detail + live active-key count.
curl -X GET "https://example.com/apps/string"{ "created_at": "string", "description": "string", "email": "string", "id": "string", "name": "string", "owner_user_id": "string", "published": true, "required_permissions": [ "string" ], "role": null, "status": null, "team_ids": [ "string" ], "updated_at": "string"}`DELETE /apps/{id}` — soft-delete + cascade revoke every key the app holds. The row stays for audit; the extractor rejects api-key auth against revoked keys, and the app's `status = "inactive"` is the operator-visible state in the admin UI. DELETE
Previous Page
`GET /apps` — the apps this caller may see (ADR-0050 §6). GET
⚠️ **No longer the org-wide roster.** A caller receives the published catalog, the apps on their own teams, and the ones their teams installed; a governance principal (owner/admin) still receives the org. The narrowing is real and visible in the console: a non-admin now sees fewer rows on `/admin/apps`.