Skip to main content
POST
Create proposal

Authorizations

Authorization
string
header
required

A workspace API key.

Headers

idempotency-key
string
required

Required stable id for this logical write; reuse it after a timeout. Upload endpoints also require the same value in body.idempotencyKey.

Required string length: 1 - 255

Body

application/json
projectId
string
required

Authorized project where the proposal may run.

Required string length: 1 - 200
snapshotId
string
required

Immutable authorized context snapshot the proposal will use.

Required string length: 1 - 200
recipeId
string
required

Approved workflow recipe to pin for this proposal.

Required string length: 1 - 200
execution
object
required

Bounded operation and its validated execution input.

usageEstimate
object
required

Caller-visible estimate used for credit and approval review.

recipeVersion
integer

Immutable recipe revision to use; omit to pin the current approved revision.

Required range: x <= 9007199254740991
publishDestinationId
string | null

Approved destination id for publish work, or null when the proposal does not publish.

Required string length: 1 - 200
expiresAt
string<date-time>

Optional RFC 3339 expiry after which approval is refused.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$

Response

Success.

success
boolean
required
proposal
object
required
{key}
any