Account and keys
The calling credential, API keys and the audit log.
/v1/healthzIs the API up#
- Credential
- None
Response
200Ok
okbooleanrequired
Errors
| Status | Description |
|---|---|
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/healthz"/v1/whoamiThe calling credential#
- Credential
- An API key or a dashboard session
- Roles
- Any role
Response
200WhoAmI
accountstring (uuid)requiredteamstringrequiredemailstringrequiredkeystringrequiredkey id, or s:<session id>
rolestringrequiredone of
owner,admin,developer,billing,viewer
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/whoami" \
-H "Authorization: Bearer $KEY"- Credential
- An API key or a dashboard session
- Roles
- Any role
Response
200object
keysKey[]requiredidstringrequiredpattern
^[0-9a-f]{12}$namestringrequiredrolestringrequiredone of
owner,admin,developer,billing,viewercreated_atstring (date-time)requiredcreated_bystring | nullperson:<uuid>, key:<id>, build:<uuid> or device
last_used_atstring (date-time) | nullexpires_atstring (date-time) | nullrevoked_atstring (date-time) | nullreplaced_bystring | null
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/keys" \
-H "Authorization: Bearer $KEY"- Credential
- An API key or a dashboard session
- Roles
- owner, admin, developer (no wider than the caller; not a build's key)
- Step-up
- With a dashboard session, a second factor confirmed in the last 10 minutes; API keys pass.
Request bodyapplication/json
namestringup to 100 characters
rolestringone of
owner,admin,developer,billing,viewerexpires_in_daysinteger1–3650
Response
201KeyCreated
idstringrequirednamestringrequiredrolestringrequiredone of
owner,admin,developer,billing,viewerexpires_atstring (date-time) | nullkeystringrequiredthe full chk_ key, shown once
Errors
| Status | Description |
|---|---|
| 400 | Bad request: bad_role, bad_expiry, bad_json |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden, role_too_wide, step_up_required |
| 500 | internal: an unexpected failure |
Example
curl -X POST "https://api.ibel.ai/v1/keys" \
-H "Authorization: Bearer $KEY" \
-d '{"name":"ci","role":"owner","expires_in_days":1}'/v1/keys/{id}Revoke a key#
- Credential
- An API key or a dashboard session
- Roles
- any for its own key; owner or admin for others (never a wider key)
- Step-up
- With a dashboard session, a second factor confirmed in the last 10 minutes; API keys pass.
Parameters
idstringpathrequiredkey id
pattern
^[0-9a-f]{12}$
Response
200object
idstringrevokedboolean
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden, step_up_required |
| 404 | Not found: not_found |
| 500 | internal: an unexpected failure |
Example
curl -X DELETE "https://api.ibel.ai/v1/keys/7e5926b6f29c" \
-H "Authorization: Bearer $KEY"/v1/keys/{id}/rotateRotate a key#
A new key with the same name, role and expiry; the old one works for 24 hours more.
- Credential
- An API key or a dashboard session
- Roles
- owner, admin, developer (not a wider key; not a build's key)
- Step-up
- With a dashboard session, a second factor confirmed in the last 10 minutes; API keys pass.
Parameters
idstringpathrequiredkey id
pattern
^[0-9a-f]{12}$
Response
201KeyRotated
idstringrequirednamestringrolestringone of
owner,admin,developer,billing,viewerkeystringrequiredshown once
old_key_valid_untilstring (date-time)required
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden, role_too_wide, step_up_required |
| 404 | Not found: not_found |
| 500 | internal: an unexpected failure |
Example
curl -X POST "https://api.ibel.ai/v1/keys/7e5926b6f29c/rotate" \
-H "Authorization: Bearer $KEY"/v1/auditAudit log#
- Credential
- An API key or a dashboard session
- Roles
- Any role
Parameters
limitintegerquery1-500, default 100
1–500 · default
100beforeintegerqueryan event id; only older events (paging with next_before)
personstringqueryperson:<uuid> or key:<id>
projectstringquerya project name
typestringqueryone of
deploy,project,env,domain,store,team,key,alert,billing,auth,supportfromstringquerya day (2026-11-04, in the caller's time zone) or an ISO 8601 time
tostringquerya day (included) or an ISO 8601 time
Response
200object
eventsAuditEvent[]requiredidintegerrequiredactorstringrequiredperson:<uuid>, key:<id>, or a platform actor (signup, device, billing, payment, system). Described in the response's actors.
actionstringrequiredtargetstring | nulldetailobjectatstring (date-time)required
actorsmap of Actornext_beforeinteger | null
Errors
| Status | Description |
|---|---|
| 400 | Bad request: bad_param |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/audit" \
-H "Authorization: Bearer $KEY"/v1/audit/actorsPeople and keys in the activity#
The people and API keys that appear in the last 180 days of activity.
- Credential
- An API key or a dashboard session
- Roles
- Any role
Response
200object
actorsobject[]requiredvaluestringkindstringidstringnamestring | nullemailstring | null
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/audit/actors" \
-H "Authorization: Bearer $KEY"/v1/audit/lastWho created and who last changed named things#
One request for a page of names (up to 200, comma-separated).
- Credential
- An API key or a dashboard session
- Roles
- Any role
Parameters
targetsstringqueryrequirednames or ids separated by commas
Response
200object
targetsmap of objectrequiredactorsmap of Actor
Errors
| Status | Description |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
Example
curl "https://api.ibel.ai/v1/audit/last?targets=targets" \
-H "Authorization: Bearer $KEY"