Skip to main content
POST
/
v1
/
agents
curl -X POST https://api.runtools.ai/v1/runtimes \
  -H "X-API-Key: rt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "code-assistant",
    "name": "Code Assistant",
    "systemPrompt": "You are an expert software engineer...",
    "model": "claude-opus-4-5",
    "tools": ["bash", "read_file", "edit_file", "grep", "glob"]
  }'
{
  "data": {
    "id": "rt_abc123",
    "slug": "code-assistant",
    "name": "Code Assistant",
    "model": "claude-opus-4-5",
    "version": 1,
    "createdAt": "2025-01-21T10:00:00Z"
  }
}
The actual endpoint is POST /v1/agents (not /v1/runtimes). Agents are upserted by org + slug. The request body includes slug, name, model, systemPrompt, tools (array of tool names), sandboxId, and optional configJson with AI SDK parameters.

Request Body

slug
string
required
Unique identifier for the runtime (URL-safe)
name
string
required
Display name
systemPrompt
string
required
System prompt / instructions for the agent
model
string
required
Model to use (e.g., claude-opus-4-5, gpt-4o, gemini-2.0-flash)
tools
array
required
Array of tool names to enable
modelConfig
object
Model-specific configuration

Response

id
string
Runtime ID
slug
string
Runtime slug
version
number
Current version number
createdAt
string
ISO 8601 timestamp
curl -X POST https://api.runtools.ai/v1/runtimes \
  -H "X-API-Key: rt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "code-assistant",
    "name": "Code Assistant",
    "systemPrompt": "You are an expert software engineer...",
    "model": "claude-opus-4-5",
    "tools": ["bash", "read_file", "edit_file", "grep", "glob"]
  }'
{
  "data": {
    "id": "rt_abc123",
    "slug": "code-assistant",
    "name": "Code Assistant",
    "model": "claude-opus-4-5",
    "version": 1,
    "createdAt": "2025-01-21T10:00:00Z"
  }
}