Browse the docs

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.list

Approvals of the workspace, newest first.

get/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 is 400 CURSOR_MISMATCH.

  • statusquerystring
    pendingapprovedrejectedexpiredcancelled
  • identityIdquerystring

    Only the approvals of this identity's sends.

Responses

200
One page of approvals.
Show schema

ApprovalListResponse

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"

approvals.get

Get one approval.

get/api/v1/approvals/{id}
Scope
read
Credits
Free
Idempotency-Key
Not used

Parameters

  • idpathstringrequired

    The approval id.

Responses

200
The approval.
Show schema

ApprovalResponse

  • dataApprovalrequired

    A send-class action waiting for (or decided by) a person. No message bodies: the rendered preview is shown in the app only.

    0
  • metaResponseMetarequired

    Metadata on every success response.

    0

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.

  • idstringrequired
    0
  • actionIdstringrequired
    0
  • statusstringrequired
    pendingapprovedrejectedexpiredcancelled
  • modestringrequired
    nonealwaysover_threshold
  • reasonstringrequired

    Why a person must decide: key_mode, operation_floor, over_threshold, agent, requested or identity_owner (a send as another member's identity).

    0
  • operationIdstringrequired
    0
  • classstringrequired

    Safety class: decides scope, approval, caps and enforcement.

    readwritespendexternal_writesend
  • identityIdstring | nullrequired
    0
  • summaryobjectrequired
    0
    + Show child fields
    • targetsintegerrequired
      0
    • creditsMaxnumberrequired
      0
  • urlstringrequired

    The app page where the identity's owner decides.

    0
  • expiresAtnumberrequired
    0
  • decidedBystring | nullrequired
    0
  • decidedAtnumber | nullrequired
    0
  • rejectedTargetIdsarray of stringrequired
    0
  • createdAtnumberrequired
    0
  • updatedAtnumberrequired
    0
PagedResponseMetaobject

Metadata on a paginated success response.

  • requestIdstringrequired
    0
  • creditsCreditsMetarequired
    0
  • pagePageMetarequired

    Cursor pagination. hasMore is the only end signal; pages may be short.

    0
CreditsMetaobject
  • usednumberrequired

    Credits charged by this request. Reads are free.

    0
  • balancenumber
    0
  • estimatednumber

    Dry run only (action operations).

    0
  • availablenumber

    Dry run only (action operations).

    0
  • reservationIdstring | null

    Async operations only; the job settles this reservation.

    0
PageMetaobject

Cursor pagination. hasMore is the only end signal; pages may be short.

  • nextCursorstring | nullrequired
    0
  • hasMorebooleanrequired
    0
  • limitintegerrequired
    min 1max 200
ResponseMetaobject

Metadata on every success response.

  • requestIdstringrequired
    0
  • creditsCreditsMetarequired
    0
  • Cursor pagination. hasMore is the only end signal; pages may be short.

    0
  • dryRunboolean

    True only on a dry-run response (action operations).

    0

← All operations