Skip to content

Create item

POST
/api/v1/org/{org}/ws/{workspace}/projects/{project}/items
curl --request POST \
--url https://example.com/api/v1/org/example/ws/example/projects/example/items \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "capability": "example", "capability_version": "example", "data": {}, "dedupe_key": "example", "item_type": "example", "links": [ { "relationship": "example", "target_item_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "target_ref": "example" } ], "notes": "example", "ref": "example", "schema_ref": "example", "session_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "source": "api", "span_id": "example", "status": "open", "title": "example", "trace_id": "example" }'

Create a structured item in a project (used by the runtime report_item tool).

org
required
Org

Organization slug

string

Organization slug

workspace
required
Workspace

Workspace slug

string

Workspace slug

project
required
Project

Project slug or UUID

string

Project slug or UUID

Media type application/json
CreateItemRequest
object
capability
Any of:
string
<= 255 characters
capability_version
Any of:
string
<= 64 characters
data
Data
object
key
additional properties
any
dedupe_key
Any of:
string
<= 64 characters
item_type
required
Item Type
string
>= 1 characters <= 64 characters
links
Any of:
Array<object>
CreateItemLinkRequest

Create a directed link from the path item to a target.

The target is addressed by target_item_id (UUID) or target_ref (the agent-assigned ref) — exactly one. Refs let agents link without juggling UUIDs.

object
relationship
required
Relationship
string
>= 1 characters <= 64 characters
target_item_id
Any of:
string format: uuid
target_ref
Any of:
string
<= 128 characters
notes
Any of:
string
ref
Any of:
string
<= 128 characters
schema_ref
Any of:
string
<= 255 characters
session_id
Any of:
string format: uuid
source
Source
string
default: api
Allowed values: api runtime extracted
span_id
Any of:
string
<= 16 characters
status
Any of:
string
Allowed values: open triaged verified resolved dismissed
title
Any of:
string
<= 512 characters
trace_id
Any of:
string
<= 32 characters

Successful Response

Media type application/json
ItemResponse
object
capability
required
Any of:
string
capability_version
required
Any of:
string
created_at
required
Created At
string format: date-time
created_by
required
Any of:
string format: uuid
data
required
Data
object
key
additional properties
any
dedupe_key
required
Any of:
string
disposition
required
Any of:
object
key
additional properties
any
id
required
Id
string format: uuid
item_type
required
Item Type
string
organization_id
required
Organization Id
string format: uuid
project_id
required
Project Id
string format: uuid
ref
required
Any of:
string
schema_ref
required
Any of:
string
session_id
required
Any of:
string format: uuid
source
required
Source
string
Allowed values: api runtime extracted
span_id
required
Any of:
string
title
required
Any of:
string
trace_id
required
Any of:
string
updated_at
required
Updated At
string format: date-time
workspace_id
required
Workspace Id
string format: uuid
Example
{
"source": "api"
}

Invalid request

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Authentication failed

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Access forbidden

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Not found

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Already exists

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Validation error

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Upgrade required

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Rate limited

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Internal server error

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Bad gateway

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}

Gateway timeout

Media type application/json
APIErrorPayload

Canonical API error envelope returned by the API.

object
code
required
Code

HTTP status code

integer
Allowed values: 400 401 403 404 409 422 426 429 500 502 504
detail
required
Detail

Human-readable error message

string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc

Where the validation error occurred

Array
msg
required
Msg

Human-readable validation message

string
type
required
Type

Machine-readable validation error type

string
type
required
Type

Stable machine-readable error type

string
Allowed values: already_exists_error app_error authentication_error conflict_error aws_error configuration_error database_error dynamodb_error e2b_error e2b_rate_limit_error expired_signature_error expired_token_error forbidden_error group_error invalid_error invalid_flag_error invalid_username_error mail_error member_exists_error member_limit_exceeded_error migration_lock_timeout_error not_found_error oauth_config_error org_sandbox_capacity_exceeded_error bad_gateway_error gateway_timeout_error s3_error server_error task_error stripe_error task_set_not_found token_error upgrade_required_error usage_limit_exceeded_error user_suspended user_verification_error validation_error
Example
{
"code": 401,
"detail": "Authentication failed",
"type": "authentication_error"
}