Skip to main content
POST
/
assets
Create an asset
curl --request POST \
  --url https://versuno.ai/api/public/assets \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "assetType": "prompt",
  "title": "Customer support assistant",
  "content_blocks": [
    {
      "id": "b_77777777-7777-4777-8777-777777777777",
      "type": "paragraph",
      "meta": {},
      "content": "You are a friendly customer support agent..."
    }
  ]
}
'
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "assetType": "prompt",
  "title": "Customer support assistant",
  "description": "Handles tier-1 support tickets",
  "content": "You are a friendly customer support agent...",
  "content_blocks": [
    {
      "id": "b_77777777-7777-4777-8777-777777777777",
      "type": "paragraph",
      "meta": {},
      "content": "You are a friendly customer support agent..."
    }
  ],
  "emoji": "🤖",
  "projectId": null,
  "teamId": null,
  "userId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "createdAt": "2026-01-15T10:30:00.000Z",
  "updatedAt": "2026-01-15T10:30:00.000Z",
  "deletedAt": null
}

Documentation Index

Fetch the complete documentation index at: https://docs.versuno.ai/llms.txt

Use this file to discover all available pages before exploring further.

Send assetType, title, and content_blocks to create an asset. The created asset is returned with its generated id and timestamps. content is deprecated for create requests and kept only for temporary compatibility.
assetType is set at creation and cannot be changed later. Make sure you pick the right type before saving.

Authorizations

Authorization
string
header
default:Bearer uk_live_your_api_key_here
required

Versuno API key. Must be prefixed with Bearer. Format: Bearer uk_live_...

Body

application/json
assetType
enum<string>
required

Type of asset. Immutable after creation.

Available options:
prompt,
persona,
context,
system_prompt,
skill
Example:

"prompt"

title
string
required

Display name of the asset.

Example:

"Customer support assistant"

content_blocks
object[]
required

Required structured block tree to initialize ai_asset_blocks.

Example:
[
{
"id": "b_77777777-7777-4777-8777-777777777777",
"type": "paragraph",
"meta": {},
"content": "You are a friendly customer support agent..."
}
]
content
string
deprecated

Deprecated compatibility field.

Example:

"You are a friendly customer support agent..."

description
string | null

Optional asset description

Example:

"Handles tier-1 support tickets"

emoji
string | null

Single emoji icon.

Example:

"🤖"

projectId
string<uuid> | null

Nest inside an existing project.

Example:

null

teamId
string<uuid> | null

Assign to a team workspace.

Example:

null

lastUsedAt
string<date-time> | null

Manually set the last-used timestamp.

Example:

null

Response

Created asset object.

An AI asset — a prompt, persona, context, system prompt, or skill.

id
string<uuid>

Unique identifier for the asset.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

assetType
enum<string>

Type of AI asset. Immutable after creation.

Available options:
prompt,
persona,
context,
system_prompt,
skill
Example:

"prompt"

title
string

Display name of the asset.

Example:

"Customer support assistant"

description
string | null

Short summary shown in the UI.

Example:

"Handles tier-1 support tickets"

content
string

The main content body of the asset.

Example:

"You are a friendly customer support agent. Help users resolve their issues quickly and professionally."

content_blocks
object[] | null

Structured block tree resolved from ai_asset_blocks.

Example:
[
{
"id": "b_11111111-1111-4111-8111-111111111111",
"type": "heading",
"meta": { "level": 2 },
"content": "Support Workflow"
},
{
"id": "b_22222222-2222-4222-8222-222222222222",
"type": "paragraph",
"meta": {},
"content": "Greet the user, ask clarifying questions, then propose next steps."
},
{
"id": "b_33333333-3333-4333-8333-333333333333",
"type": "todo_list",
"meta": {},
"content": null,
"children": [
{
"id": "b_44444444-4444-4444-8444-444444444444",
"type": "paragraph",
"meta": { "checked": false },
"content": "Confirm account email"
},
{
"id": "b_55555555-5555-4555-8555-555555555555",
"type": "paragraph",
"meta": { "checked": true },
"content": "Acknowledge issue details"
}
]
}
]
emoji
string | null

Single emoji icon for the asset.

Example:

"🤖"

isPublic
boolean

Whether the asset is publicly visible.

Example:

false

currentVersion
integer

Latest version number of this asset (1 if no versions exist yet).

Example:

3

projectId
string<uuid> | null

ID of the project this asset belongs to, or null if unassigned.

Example:

null

teamId
string<uuid> | null

ID of the team workspace this asset belongs to, or null for personal.

Example:

null

userId
string<uuid>

ID of the user who owns this asset.

Example:

"b2c3d4e5-f6a7-8901-bcde-f12345678901"

createdAt
string<date-time>

ISO 8601 timestamp when the asset was created.

Example:

"2026-01-15T10:30:00.000Z"

updatedAt
string<date-time>

ISO 8601 timestamp of the last update.

Example:

"2026-01-20T14:45:00.000Z"

deletedAt
string<date-time> | null

ISO 8601 timestamp when the asset was trashed, or null if active.

Example:

null