Engines API
Base path: /v2/engines
Create Engine
curl -X POST http://localhost:8000/v2/engines \
-H "X-API-Key: agk_abc123def456" \
-H "Content-Type: application/json" \
-d '{
"id": "claude-code-v1",
"name": "Claude Code Engine",
"type": "code_agent",
"provider": "anthropic",
"handler_config": {
"model": "claude-sonnet-4-6",
"max_turns": 15,
"timeout_minutes": 20
},
"description": "Claude Code CLI for repository-based work",
"is_default": true
}'
Request Body (EngineCreateRequest):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Unique engine identifier |
name |
string | Yes | Human-readable name |
type |
string | Yes | code_agent, managed_agent, direct_ops, or custom |
provider |
string | No (default: “anthropic”) | Provider name |
handler_config |
object | No | Engine-specific configuration |
description |
string | No | Description |
is_default |
boolean | No (default: false) | Whether this is the default engine |
Response 201 Created:
{
"id": "claude-code-v1",
"name": "Claude Code Engine",
"type": "code_agent",
"provider": "anthropic",
"handler_config": {
"model": "claude-sonnet-4-6",
"max_turns": 15,
"timeout_minutes": 20
},
"description": "Claude Code CLI for repository-based work",
"is_default": true,
"is_active": true
}
List Engines
curl http://localhost:8000/v2/engines \
-H "X-API-Key: agk_abc123def456"
Response 200 OK:
[
{
"id": "claude-code-v1",
"name": "Claude Code Engine",
"type": "code_agent",
"provider": "anthropic",
"handler_config": { "model": "claude-sonnet-4-6" },
"description": "Claude Code CLI for repository-based work",
"is_default": true,
"is_active": true
}
]
Get Engine
curl http://localhost:8000/v2/engines/claude-code-v1 \
-H "X-API-Key: agk_abc123def456"
Response 200 OK: Returns EngineResponse.
Update Engine
curl -X PUT http://localhost:8000/v2/engines/claude-code-v1 \
-H "X-API-Key: agk_abc123def456" \
-H "Content-Type: application/json" \
-d '{
"id": "claude-code-v1",
"name": "Claude Code Engine v2",
"type": "code_agent",
"provider": "anthropic",
"handler_config": {
"model": "claude-opus-4-6",
"max_turns": 20
},
"description": "Updated to use Opus model",
"is_default": true
}'
Response 200 OK: Returns updated EngineResponse.
Delete Engine
Soft delete.
curl -X DELETE http://localhost:8000/v2/engines/claude-code-v1 \
-H "X-API-Key: agk_abc123def456"
Response 200 OK:
{
"id": "claude-code-v1",
"message": "Engine deleted"
}