Reference · 2 operations
Approvals
Actions waiting for a person. Read only: a person approves or rejects in the app, with a fresh sign-in; no key, agent or API call can approve anything.
Last updated from API version 2026-10-06 at (live spec, refreshed hourly). openapi.json
Approvals of the workspace, newest first.
/api/v1/approvals- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
Send-class actions wait for a person by default (the workspace
default is always; agent and MCP calls always wait). Each
approval names its action, the identity it sends as, the number of
targets and the credit maximum, and url: the app page where the
identity's owner (or a person they delegated approvals to) decides
it after signing in again. Approve and reject are not API
operations. Filters status and identityId. An approval not
decided within 72 hours expires and its action sends nothing.
Parameters
- limitqueryinteger
Page size.
default 50min 1max 200 - cursorquerystring
Opaque cursor from
meta.page.nextCursor. Reusing it with other filters is400 CURSOR_MISMATCH. - statusquerystringpendingapprovedrejectedexpiredcancelled
- identityIdquerystring
Only the approvals of this identity's sends.
Responses
200One page of approvals.Show schema
ApprovalListResponse
- 0
- 0
Metadata on a paginated success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/approvals" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Get one approval.
/api/v1/approvals/{id}- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
Parameters
- idpathstringrequired
The approval id.
Responses
200The approval.Show schema
ApprovalResponse
- 0
A send-class action waiting for (or decided by) a person. No message bodies: the rendered preview is shown in the app only.
- 0
Metadata on every success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/approvals/$ID" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Models on this page
Shared objects the operations above link to. Clients must ignore fields they do not know.
Approvalobject
A send-class action waiting for (or decided by) a person. No message bodies: the rendered preview is shown in the app only.
- idstringrequired0
- actionIdstringrequired0
- statusstringrequiredpendingapprovedrejectedexpiredcancelled
- modestringrequirednonealwaysover_threshold
- reasonstringrequired0
Why a person must decide: key_mode, operation_floor, over_threshold, agent, requested or identity_owner (a send as another member's identity).
- operationIdstringrequired0
- classstringrequired
Safety class: decides scope, approval, caps and enforcement.
readwritespendexternal_writesend - identityIdstring | nullrequired0
- summaryobjectrequired0
+ Show child fields− Hide child fields
- targetsintegerrequired0
- creditsMaxnumberrequired0
- urlstringrequired0
The app page where the identity's owner decides.
- expiresAtnumberrequired0
- decidedBystring | nullrequired0
- decidedAtnumber | nullrequired0
- rejectedTargetIdsarray of stringrequired0
- createdAtnumberrequired0
- updatedAtnumberrequired0
PagedResponseMetaobject
Metadata on a paginated success response.
- requestIdstringrequired0
- 0
- 0
Cursor pagination.
hasMoreis the only end signal; pages may be short.
CreditsMetaobject
- usednumberrequired0
Credits charged by this request. Reads are free.
- balancenumber0
- estimatednumber0
Dry run only (action operations).
- availablenumber0
Dry run only (action operations).
- reservationIdstring | null0
Async operations only; the job settles this reservation.
PageMetaobject
Cursor pagination. hasMore is the only end signal; pages may be short.
- nextCursorstring | nullrequired0
- hasMorebooleanrequired0
- limitintegerrequiredmin 1max 200
ResponseMetaobject
Metadata on every success response.
- requestIdstringrequired0
- 0
- pagePageMeta0
Cursor pagination.
hasMoreis the only end signal; pages may be short. - dryRunboolean0
True only on a dry-run response (action operations).