Skip to content

List durably accepted outbound work for a project

GET
/v1/admin/orgs/{org_id}/projects/{project_id}/outbox

Clerk-authenticated bounded transport status; sent is true only after provider acceptance.

org_id
required
string
project_id
required
string
before
string
limit
integer
default: 50 >= 1 <= 100

Bounded Outbox page.

object
items
required
Array<object>
object
submission_id
required
string
status
required
string
Allowed values: queued sending delayed checking_status needs_reconfirmation sent partially_sent failed cancelling cancelled
sent
required
boolean
sender
required
string
created_at
required
integer format: int64
updated_at
required
integer format: int64
reconfirm_at
required
integer format: int64
next_before
required
string

Missing or invalid credential.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Authenticated but lacking the required scope, or out of quota.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

A dependency could not be read, so the request was failed CLOSED rather than served on a guess (Problem code = unavailable). Retryable; see Retry-After. Distinct from not_configured, which is permanent for this deployment.

RFC-9457 problem+json error body. code is a closed machine enum clients switch on; type is a dereferenceable URI under https://extrovert.dev/problems/. Served as application/problem+json.

object
reason

Structured support failure reason without changing the existing code.

string
next_action

Suggested recovery action within existing access.

string
projects
object
object
required
string
Allowed values: list
data
required
Array<object>
object
id
required
string
org_id
required
string
name
required
string
has_more
required
boolean
next_cursor
required
string
current_state
object
id
required
string
number
required
string
project_id
required
string
title
required
string
status
required
string
Allowed values: received working waiting_on_customer resolved
impact
required
string
Allowed values: blocked workaround_available recovered unknown
version
required
integer format: int64
created_ms
required
integer format: int64
updated_ms
required
integer format: int64
resolved_ms
integer format: int64
customer_confirmed_ms
integer format: int64
resolution_kind
string
resolution_summary
string
feedback_id
required
string
org_id
string
console_url
string
latest_update
object
id
required
string
sequence
required
integer format: int64
kind
required
string
actor_kind
required
string
Allowed values: customer staff
body
required
string
created_ms
required
integer format: int64
observed_runtime
object
source
string
package_version
string
profile
string
profile_version
string
build
string
transport
string
catalog_digest
string
instance_id
string
request_id
string
observed_ms
integer format: int64
truncated
required
boolean
unsent_text

Retained text after a concurrent case change.

string
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required

The CLOSED machine code. The Review Loop members split what used to be a single opaque conflict, because an agent must take a DIFFERENT action on each: stale (the revision/version you named is no longer current; nothing was mutated; re-read, re-apply, resubmit; retryable, bounded) and born_stale (built against an older rule high-water; re-read the rules or restamp_review; at most one retry per high-water) are the ONLY retryable 409s. wrong_state means this VERB is illegal from the current state while the draft is still live; never retry the same verb, read the state and the repeated allowed_action hints in errors[] and pick a legal one. terminal means the review is already sent/auto_sent/cancelled and nothing will EVER succeed; stop, and drain your review events for the outcome. send_needs_reconciliation means a prior send is unconfirmed and parked. Do not resend. Poll instead. unavailable (503) is the retryable fail-closed answer when a dependency could not be read; it carries Retry-After and is distinct from not_configured, which is permanent for this deployment.

string
Allowed values: bad_request unauthorized forbidden_scope not_found conflict support_record_deleted idempotency_conflict breadth_required quota_exceeded rate_limited domain_not_allowed recipient_blocked recipient_suppressed not_configured domain_unavailable internal reply_context_required reply_context_changed reply_workflow_required reply_already_pending intent_required wrong_state terminal stale born_stale send_needs_reconciliation graduation_locked maturity_gate_unmet scope_taken unavailable
request_id
string
errors
Array<object>
object
field
string
code
string
detail
string
Retry-After
integer

Seconds to wait before retrying.