App limits by tier: Free allows 2 apps, Pro allows 3, Business allows 10, Enterprise is unlimited.
Two surfaces
The app object
List apps
Register an app
Response — the created app object.
Errors
Get an app
404 if the app doesn’t exist in your organization.
Update an app
Delete an app
204 No Content
Errors
Activate / deactivate
403).
Response — the updated app object.
Set primary
403 otherwise).
Response — the updated app object.
Usage stats (all apps)
Usage detail (single app)
Response
dailyUsage is sorted newest-day first; topDevices is the 10 devices with the most attestations; recentErrors is the 10 most recent failed attestation events.
Console API
/api/v1/org/apps covers app registration and lifecycle for the CLI and scripts. It accepts an API key (Authorization: Bearer gpat_…/aat_…) as well as a dashboard session, and its wire format is snake_case.
:appRef accepts either the app’s UUID or its bundle ID (resolved within your organization). An unknown reference — including one belonging to another organization — returns 404.
The console app object
/api/v1/apps for those.
Endpoints
Create
Update
Onlyapp_name, description, analytics_enabled, and webhook_enabled can change. Bundle ID and Team ID are immutable. A body with none of these returns 400.
Errors
Deletion rules differ between the two surfaces.
/api/v1/org/apps refuses to delete the primary app while other apps exist — set another app primary first. /api/v1/apps deletes it and promotes another app automatically.