Skip to content

Create the persona an Astronaut suggested

POST
/tasks/{id}/persona-suggestions/{suggestionId}/create

Requires: personas.write

id
required
string

Resource ULID.

suggestionId
required
string

The suggestion’s id (from the card’s message meta).

x-uai-org
string

Org scope: me or an org slug. Absent means the caller’s active/personal org. It selects the workspace used for permission checks and for most resource filters; operation-specific access rules still apply.

object
name
required
string
>= 1 characters <= 64 characters
handle
string
"" <= 64 characters
role
string
"" <= 64 characters
summary
string
"" <= 500 characters
brief
string
"" <= 20000 characters
kind
required
string
>= 1 characters <= 64 characters
model
Any of:
string
>= 1 characters <= 64 characters
effort
Any of:
string
>= 1 characters <= 32 characters
skills
Array
default: <= 10 items
Any of:
object
store
required
string
>= 1 characters <= 128 characters
name
required
string
type
required
string
Allowed values: link document package

Successful response.

object
persona
required
object
id
required
string
handle
required

The handle it was given, made unique in the workspace.

string
suggestion
required
object
id
required
string
taskId
required
string
astronautId
required

The Astronaut’s handle on the task.

string
templateSlug
required
string | null
draft
required
object
name
required
string
>= 1 characters <= 64 characters
handle
string
"" <= 64 characters
role
string
"" <= 64 characters
summary
string
"" <= 500 characters
brief
string
"" <= 20000 characters
kind
required
string
>= 1 characters <= 64 characters
model
Any of:
string
>= 1 characters <= 64 characters
effort
Any of:
string
>= 1 characters <= 32 characters
skills
Array
default: <= 10 items
Any of:
object
store
required
string
>= 1 characters <= 128 characters
name
required
string
type
required
string
Allowed values: link document package
why
required

The Astronaut’s stated reason.

string
status
required
string
Allowed values: pending created dismissed
personaId
required

The persona it became.

string | null
personaName
required

That persona’s name as saved, which may differ from the draft’s.

string | null
resolvedBy
required
Any of:
object
userId
required
string
name
required
string
createdAt
required

Epoch milliseconds

integer
resolvedAt
required
Any of:
integer

BAD_JSON — the body is not valid JSON, or INVALID_REQUEST — the decoded body does not match the route’s request schema.

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

UNAUTHORIZED — missing or invalid token, or an org-scoped API key (only user-scoped keys are accepted).

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

PLAN_LIMIT — the workspace’s plan does not include API access. Every API-key call can return this; session-token calls never do.

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

FORBIDDEN (lacking the required permission) or SCOPE_REQUIRED (no workspace, or a membership change in progress).

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

TASK_NOT_FOUND or SUGGESTION_NOT_FOUND.

SCOPE_REQUIRED — the x-uai-org scope names a workspace that does not exist, or one the caller is not a member of. The two are deliberately indistinguishable: a 403 would confirm the workspace exists.

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

SUGGESTION_RESOLVED — it was already created or dismissed; nothing was written.

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any

SCOPE_REQUIRED — membership reconciliation required, or membership verification unavailable.

object
error
required
object
code
required

Stable, machine-readable error code

string
message
required

Human-readable explanation

string
details
permission

Present on 403 — the permission the caller lacked

string
feature

Present on 402 — gated feature

string
limit

Present on 402 — the plan’s cap

number
plan

Present on 402 — the current plan

string
seats

Present on 402 when the cap is seat-derived

object
seats
required

Effective seats the cap was computed from

integer
seatsMax
required
Any of:
integer
perSeat
required

Units of the resource each seat carries

number
key
additional properties
any