Skip to main content
POST
Create an intern

Authorizations

Authorization
string
header
required

API key as bearer token in Authorization header

Headers

Idempotency-Key
string

Key that makes retries resume the same create operation. Without one, the server derives a stable key from the request body.

Minimum string length: 1
Example:

"create-research-assistant-2026-09-16"

Body

application/json

Settings for a new intern in an explicit workspace.

name
string
required

Intern name, unique per creator within the workspace.

Required string length: 2 - 17
Pattern: ^[a-z][a-z0-9]*(-[a-z0-9]+)*$
workspace_id
string<uuid>
required

Workspace that will own the intern. It must match the API key workspace.

description
string | null

Free-form description, or null.

Maximum string length: 2000
instructions
string | null

Standing instructions the intern boots with, or null.

Maximum string length: 100000
provision
boolean
default:false

Start provisioning during this create operation. Defaults to false.

vault_id
string<uuid>

Vault owned by another intern in this workspace to attach as a borrowed vault.

Response

A completed create operation was replayed.

Public lifecycle state and settings for one intern.

attached_vault_id
string | null
required

Vault the intern borrows from another intern, or null when it borrows none.

createdAt
string
required

ISO 8601 creation time.

description
string | null
required

Free-form description.

hostname
string | null
required

Public hostname the intern is reachable at, or null until provisioning has assigned one.

id
string
required

Intern id.

instructions
string | null
required

Standing instructions the intern boots with.

lastFailureMessage
string | null
required

Why the last provisioning attempt failed, when status is failed.

model
string | null
required

OpenRouter model slug the intern runs, or null for the workspace default.

name
string
required

Intern name, unique per creator within a workspace.

progress
object | null
required

Active provisioning step, or null once provisioning has settled.

status
enum<string>
required

Lifecycle status.

Available options:
awaiting_slack_install,
queued,
provisioning,
running,
failed,
stopped,
destroying,
destroy_failed
updatedAt
string
required

ISO 8601 last update time.

vault_id
string | null
required

Vault the intern owns, or null before it has been created.

workspaceId
string
required

Workspace that owns the intern and scopes its secrets.