API Reference

Server-rendered reference for the checked-in OpenAPI spec. Browse the current endpoints below or inspect the raw `/api/v1/openapi.yaml` document.

Spec Overview

AgentContainer API

Public API for configuring containers, configuring agents on top of them, and dispatching tasks.

Version

0.2.0

Endpoints

28

Base URL

http://localhost:3000

Local development

Authentication

bearerAuth

http bearer (API key)

Endpoints

Each operation below is rendered from the same OpenAPI file served at /api/v1/openapi.yaml.

API Group

Account

Account identity and platform billing state.

get/api/v1/accountAccount

Get account

Returns the account resolved from the bearer API key, including current platform credit balance.

Requires bearer auth

Responses

200

Account details

application/json
{
  "id": "string", // Internal account identifier resolved from the API key.
  "name": "string",
  "email": "string",
  "creditBalance": 123, // Current prepaid platform credit balance in USD.
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

API Group

Containers

Reusable execution environments.

get/api/v1/containersContainers

List containers

Lists your custom containers and platform-provided standard containers.

Requires bearer auth

Responses

200

Containers successfully listed

application/json
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "isStandard": true,
      "archivedAt": "2026-03-25T09:30:00.000Z",
      "currentVersion": {
        "id": "string",
        "number": 123,
        "containerPreset": "string",
        "containerImage": "string",
        "containerContractVersion": "string",
        "createdAt": "2026-03-25T09:30:00.000Z",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

post/api/v1/containersContainers

Create container

Creates a reusable execution environment definition.

Requires bearer auth

Request Body

application/jsonrequired
{
  "name": "string",
  "description?": "string",
  "containerPreset?": "string",
  "containerImage?": "string",
  "containerContractVersion?": "string",
}

Responses

201

Container created

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerPreset": "string",
    "containerImage": "string",
    "containerContractVersion": "string",
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

422

No response body defined.

get/api/v1/containers/{containerId}Containers

Get container

Requires bearer auth

Responses

200

Container details

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerPreset": "string",
    "containerImage": "string",
    "containerContractVersion": "string",
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

patch/api/v1/containers/{containerId}Containers

Update container

Updates a container. Execution changes create a new container version.

Requires bearer auth

Request Body

application/jsonrequired
{
  "name?": "string",
  "description?": "string",
  "containerPreset?": "string",
  "containerImage?": "string",
  "containerContractVersion?": "string",
}

Responses

200

Container updated

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerPreset": "string",
    "containerImage": "string",
    "containerContractVersion": "string",
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

422

No response body defined.

delete/api/v1/containers/{containerId}Containers

Archive container

Soft-archives a custom container.

Requires bearer auth

Responses

204

Container archived

No response body defined.

401

No response body defined.

404

No response body defined.

post/api/v1/containers/{containerId}/forkContainers

Fork container

Forks a standard container into your own custom container.

Requires bearer auth

Request Body

application/jsonoptional
{
  "name?": "string",
  "description?": "string",
}

Responses

201

Container forked

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerPreset": "string",
    "containerImage": "string",
    "containerContractVersion": "string",
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

get/api/v1/containers/{containerId}/versionsContainers

List container versions

Requires bearer auth

Responses

200

Container versions successfully listed

application/json
{
  "data": [
    {
      "id": "string",
      "number": 123,
      "containerPreset": "string",
      "containerImage": "string",
      "containerContractVersion": "string",
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

404

No response body defined.

get/api/v1/containers/{containerId}/versions/{versionId}Containers

Get container version

Requires bearer auth

Responses

200

Container version details

application/json
{
  "id": "string",
  "number": 123,
  "containerPreset": "string",
  "containerImage": "string",
  "containerContractVersion": "string",
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

API Group

Agents

Reusable workers built on top of containers.

get/api/v1/agentsAgents

List agents

Lists your custom agents and platform-provided standard agents.

Requires bearer auth

Responses

200

Agents successfully listed

application/json
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "isStandard": true,
      "archivedAt": "2026-03-25T09:30:00.000Z",
      "currentVersion": {
        "id": "string",
        "number": 123,
        "containerVersionId": "string",
        "basePrompt": "string",
        "defaults": {
          "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
          "hasProviderApiKey": true, // Whether a provider API key is set on this version.
          "model": "string",
          "internetAccess": true,
          "maxRuntimeSeconds": 123,
          "outputPolicy": {
            "mode": "any",
          } | {
            "mode": "none",
          } | {
            "mode": "at_least_one",
          } | {
            "mode": "named",
            "files": [
              {
                "name": "string",
                "description?": "string",
              }
            ],
          },
          "runtimeRegion": "any" | "eu",
        },
        "createdAt": "2026-03-25T09:30:00.000Z",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

post/api/v1/agentsAgents

Create agent

Creates a reusable worker definition referencing a container.

Requires bearer auth

Request Body

application/jsonrequired
{
  "name": "string",
  "description?": "string",
  "containerId?": "string",
  "containerVersionId?": "string",
  "basePrompt": "string",
  "defaults": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider. Falls back to user account default if not set.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

Responses

201

Agent created

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

422

No response body defined.

get/api/v1/agents/{agentId}Agents

Get agent

Requires bearer auth

Responses

200

Agent details

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

patch/api/v1/agents/{agentId}Agents

Update agent

Updates an agent. Execution changes create a new agent version.

Requires bearer auth

Request Body

application/jsonrequired
{
  "name?": "string",
  "description?": "string",
  "containerId?": "string",
  "containerVersionId?": "string",
  "basePrompt?": "string",
  "defaults?": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider. Falls back to user account default if not set.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

Responses

200

Agent updated

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

422

No response body defined.

delete/api/v1/agents/{agentId}Agents

Archive agent

Soft-archives a custom agent.

Requires bearer auth

Responses

204

Agent archived

No response body defined.

401

No response body defined.

404

No response body defined.

post/api/v1/agents/{agentId}/forkAgents

Fork agent

Forks a standard agent into your own custom agent.

Requires bearer auth

Request Body

application/jsonoptional
{
  "name?": "string",
  "description?": "string",
}

Responses

201

Agent forked

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

get/api/v1/agents/{agentId}/versionsAgents

List agent versions

Requires bearer auth

Responses

200

Agent versions successfully listed

application/json
{
  "data": [
    {
      "id": "string",
      "number": 123,
      "containerVersionId": "string",
      "basePrompt": "string",
      "defaults": {
        "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
        "hasProviderApiKey": true, // Whether a provider API key is set on this version.
        "model": "string",
        "internetAccess": true,
        "maxRuntimeSeconds": 123,
        "outputPolicy": {
          "mode": "any",
        } | {
          "mode": "none",
        } | {
          "mode": "at_least_one",
        } | {
          "mode": "named",
          "files": [
            {
              "name": "string",
              "description?": "string",
            }
          ],
        },
        "runtimeRegion": "any" | "eu",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

404

No response body defined.

get/api/v1/agents/{agentId}/versions/{versionId}Agents

Get agent version

Requires bearer auth

Responses

200

Agent version details

application/json
{
  "id": "string",
  "number": 123,
  "containerVersionId": "string",
  "basePrompt": "string",
  "defaults": {
    "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
    "hasProviderApiKey": true, // Whether a provider API key is set on this version.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion": "any" | "eu",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

API Group

Files

Uploads and file relationships.

post/api/v1/uploads/prepareFiles

Prepare file upload

Creates a scoped upload session and returns a Convex upload URL.

Requires bearer auth

Request Body

application/jsonrequired
{
  "filename": "string",
  "contentType?": "string",
  "sizeBytes?": 123,
}

Responses

201

Upload prepared

application/json
{
  "uploadId": "string",
  "uploadUrl": "string",
  "expiresAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

post/api/v1/uploads/completeFiles

Complete file upload

Finalizes a previously prepared upload after the file bytes have been sent to Convex storage.

Requires bearer auth

Request Body

application/jsonrequired
{
  "uploadId": "string",
  "storageId": "string",
}

Responses

201

File uploaded

application/json
{
  "id": "string",
  "filename": "string",
  "contentType": "string",
  "sizeBytes": 123,
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

get/api/v1/agents/{agentId}/reference-filesFiles

List reference files for current agent version

Requires bearer auth

Responses

200

Reference files listed

application/json
{
  "data": [
    {
      "id": "string",
      "filename": "string",
      "contentType": "string",
      "sizeBytes": 123,
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

404

No response body defined.

post/api/v1/agents/{agentId}/reference-filesFiles

Attach reference files to agent

Attaches previously uploaded files to an agent, creating a new agent version.

Requires bearer auth

Request Body

application/jsonrequired
{
  "fileIds": [
    "string"
  ],
}

Responses

200

Reference files attached

application/json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}
401

No response body defined.

404

No response body defined.

422

No response body defined.

API Group

Tasks

Task dispatch and task inspection.

get/api/v1/agents/{agentId}/tasksTasks

List tasks for agent

Requires bearer auth

Parameters

Query Params
status
{
  "status?": "pending" | "running" | "finished" | "failed" | "cancelled",
}

Responses

200

Tasks listed

application/json
{
  "data": [
    {
      "id": "string",
      "agentId": "string",
      "agentVersionId": "string",
      "containerVersionId": "string",
      "status": "pending" | "running" | "finished" | "failed" | "cancelled",
      "description": "string",
      "runtimeRegion": "any" | "eu",
      "overrides": {
        "provider?": "anthropic" | "openrouter" | "openai",
        "hasProviderApiKey?": true,
        "model?": "string",
        "internetAccess?": true,
        "maxRuntimeSeconds?": 123,
        "outputPolicy?": {
          "mode": "any",
        } | {
          "mode": "none",
        } | {
          "mode": "at_least_one",
        } | {
          "mode": "named",
          "files": [
            {
              "name": "string",
              "description?": "string",
            }
          ],
        },
        "runtimeRegion?": "any" | "eu",
      },
      "metadata": {
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
      "startedAt": "2026-03-25T09:30:00.000Z",
      "completedAt": "2026-03-25T09:30:00.000Z",
      "result": "string",
      "error": "string",
      "costUsd": 123,
      "containerMinutes": 123,
      "tokenUsage": {
      },
    }
  ],
}
401

No response body defined.

404

No response body defined.

post/api/v1/agents/{agentId}/tasksTasks

Dispatch task

Dispatches a task to an agent. If `versionId` is omitted, the current agent version is used.

Requires bearer auth

Request Body

application/jsonrequired
{
  "versionId?": "string",
  "description": "string",
  "inputFileIds?": [
    "string"
  ],
  "metadata?": {
  },
  "overrides?": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider override for this task.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

Responses

201

Task created

application/json
{
  "id": "string",
  "agentId": "string",
  "agentVersionId": "string",
  "containerVersionId": "string",
  "status": "pending" | "running" | "finished" | "failed" | "cancelled",
  "description": "string",
  "runtimeRegion": "any" | "eu",
  "overrides": {
    "provider?": "anthropic" | "openrouter" | "openai",
    "hasProviderApiKey?": true,
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
  "metadata": {
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
  "startedAt": "2026-03-25T09:30:00.000Z",
  "completedAt": "2026-03-25T09:30:00.000Z",
  "result": "string",
  "error": "string",
  "costUsd": 123,
  "containerMinutes": 123,
  "tokenUsage": {
  },
}
401

No response body defined.

404

No response body defined.

422

No response body defined.

get/api/v1/tasks/{taskId}Tasks

Get task

Requires bearer auth

Responses

200

Task details

application/json
{
  "id": "string",
  "agentId": "string",
  "agentVersionId": "string",
  "containerVersionId": "string",
  "status": "pending" | "running" | "finished" | "failed" | "cancelled",
  "description": "string",
  "runtimeRegion": "any" | "eu",
  "overrides": {
    "provider?": "anthropic" | "openrouter" | "openai",
    "hasProviderApiKey?": true,
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
  "metadata": {
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
  "startedAt": "2026-03-25T09:30:00.000Z",
  "completedAt": "2026-03-25T09:30:00.000Z",
  "result": "string",
  "error": "string",
  "costUsd": 123,
  "containerMinutes": 123,
  "tokenUsage": {
  },
}
401

No response body defined.

404

No response body defined.

post/api/v1/tasks/{taskId}/cancelTasks

Cancel task

Requires bearer auth

Responses

200

Task cancellation requested

application/json
{
  "id": "string",
  "agentId": "string",
  "agentVersionId": "string",
  "containerVersionId": "string",
  "status": "pending" | "running" | "finished" | "failed" | "cancelled",
  "description": "string",
  "runtimeRegion": "any" | "eu",
  "overrides": {
    "provider?": "anthropic" | "openrouter" | "openai",
    "hasProviderApiKey?": true,
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
  "metadata": {
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
  "startedAt": "2026-03-25T09:30:00.000Z",
  "completedAt": "2026-03-25T09:30:00.000Z",
  "result": "string",
  "error": "string",
  "costUsd": 123,
  "containerMinutes": 123,
  "tokenUsage": {
  },
}
401

No response body defined.

404

No response body defined.

get/api/v1/tasks/{taskId}/filesTasks

List task files

Requires bearer auth

Responses

200

Task files listed

application/json
{
  "data": [
    {
      "id": "string",
      "filename": "string",
      "contentType": "string",
      "sizeBytes": 123,
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}
401

No response body defined.

404

No response body defined.

get/api/v1/tasks/{taskId}/files/{fileId}Tasks

Download task file

Requires bearer auth

Responses

200

File bytes

application/octet-stream
"string"
401

No response body defined.

404

No response body defined.

API Group

Other

get/api/v1/openapi.yamlOther

Raw OpenAPI spec

Returns the raw YAML OpenAPI specification for this API.

No auth required

Responses

200

Raw OpenAPI YAML

application/yaml
"string"

Schemas

Component schemas exposed by the spec for request and response payloads.

Account

object
Schema Shape
{
  "id": "string", // Internal account identifier resolved from the API key.
  "name": "string",
  "email": "string",
  "creditBalance": 123, // Current prepaid platform credit balance in USD.
  "createdAt": "2026-03-25T09:30:00.000Z",
}

CreateContainerRequest

object
Schema Shape
{
  "name": "string",
  "description?": "string",
  "containerPreset?": "string",
  "containerImage?": "string",
  "containerContractVersion?": "string",
}

UpdateContainerRequest

object
Schema Shape
{
  "name?": "string",
  "description?": "string",
  "containerPreset?": "string",
  "containerImage?": "string",
  "containerContractVersion?": "string",
}

CreateAgentRequest

object
Schema Shape
{
  "name": "string",
  "description?": "string",
  "containerId?": "string",
  "containerVersionId?": "string",
  "basePrompt": "string",
  "defaults": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider. Falls back to user account default if not set.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

UpdateAgentRequest

object
Schema Shape
{
  "name?": "string",
  "description?": "string",
  "containerId?": "string",
  "containerVersionId?": "string",
  "basePrompt?": "string",
  "defaults?": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider. Falls back to user account default if not set.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

AgentDefaults

object
Schema Shape
{
  "provider?": "anthropic" | "openrouter" | "openai", // LLM provider. Falls back to user account default if not set.
  "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
  "model": "string",
  "internetAccess": true,
  "maxRuntimeSeconds": 123,
  "outputPolicy": {
    "mode": "any",
  } | {
    "mode": "none",
  } | {
    "mode": "at_least_one",
  } | {
    "mode": "named",
    "files": [
      {
        "name": "string",
        "description?": "string",
      }
    ],
  },
  "runtimeRegion?": "any" | "eu",
}

OutputDescriptor

object
Schema Shape
{
  "name": "string",
  "description?": "string",
}

OutputPolicy

oneOf
Schema Shape
{
  "mode": "any",
} | {
  "mode": "none",
} | {
  "mode": "at_least_one",
} | {
  "mode": "named",
  "files": [
    {
      "name": "string",
      "description?": "string",
    }
  ],
}

CreateTaskRequest

object
Schema Shape
{
  "versionId?": "string",
  "description": "string",
  "inputFileIds?": [
    "string"
  ],
  "metadata?": {
  },
  "overrides?": {
    "provider?": "anthropic" | "openrouter" | "openai", // LLM provider override for this task.
    "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
}

TaskOverrides

object
Schema Shape
{
  "provider?": "anthropic" | "openrouter" | "openai", // LLM provider override for this task.
  "providerApiKey?": "string", // API key for the specified provider. Write-only; never returned in responses.
  "model?": "string",
  "internetAccess?": true,
  "maxRuntimeSeconds?": 123,
  "outputPolicy?": {
    "mode": "any",
  } | {
    "mode": "none",
  } | {
    "mode": "at_least_one",
  } | {
    "mode": "named",
    "files": [
      {
        "name": "string",
        "description?": "string",
      }
    ],
  },
  "runtimeRegion?": "any" | "eu",
}

AttachReferenceFilesRequest

object
Schema Shape
{
  "fileIds": [
    "string"
  ],
}

ForkResourceRequest

object
Schema Shape
{
  "name?": "string",
  "description?": "string",
}

Container

object
Schema Shape
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerPreset": "string",
    "containerImage": "string",
    "containerContractVersion": "string",
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}

ContainerVersion

object
Schema Shape
{
  "id": "string",
  "number": 123,
  "containerPreset": "string",
  "containerImage": "string",
  "containerContractVersion": "string",
  "createdAt": "2026-03-25T09:30:00.000Z",
}

Agent

object
Schema Shape
{
  "id": "string",
  "name": "string",
  "description": "string",
  "isStandard": true,
  "archivedAt": "2026-03-25T09:30:00.000Z",
  "currentVersion": {
    "id": "string",
    "number": 123,
    "containerVersionId": "string",
    "basePrompt": "string",
    "defaults": {
      "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
      "hasProviderApiKey": true, // Whether a provider API key is set on this version.
      "model": "string",
      "internetAccess": true,
      "maxRuntimeSeconds": 123,
      "outputPolicy": {
        "mode": "any",
      } | {
        "mode": "none",
      } | {
        "mode": "at_least_one",
      } | {
        "mode": "named",
        "files": [
          {
            "name": "string",
            "description?": "string",
          }
        ],
      },
      "runtimeRegion": "any" | "eu",
    },
    "createdAt": "2026-03-25T09:30:00.000Z",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}

AgentVersion

object
Schema Shape
{
  "id": "string",
  "number": 123,
  "containerVersionId": "string",
  "basePrompt": "string",
  "defaults": {
    "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
    "hasProviderApiKey": true, // Whether a provider API key is set on this version.
    "model": "string",
    "internetAccess": true,
    "maxRuntimeSeconds": 123,
    "outputPolicy": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion": "any" | "eu",
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
}

AgentVersionDefaults

object
Schema Shape
{
  "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
  "hasProviderApiKey": true, // Whether a provider API key is set on this version.
  "model": "string",
  "internetAccess": true,
  "maxRuntimeSeconds": 123,
  "outputPolicy": {
    "mode": "any",
  } | {
    "mode": "none",
  } | {
    "mode": "at_least_one",
  } | {
    "mode": "named",
    "files": [
      {
        "name": "string",
        "description?": "string",
      }
    ],
  },
  "runtimeRegion": "any" | "eu",
}

TaskResponseOverrides

object
Schema Shape
{
  "provider?": "anthropic" | "openrouter" | "openai",
  "hasProviderApiKey?": true,
  "model?": "string",
  "internetAccess?": true,
  "maxRuntimeSeconds?": 123,
  "outputPolicy?": {
    "mode": "any",
  } | {
    "mode": "none",
  } | {
    "mode": "at_least_one",
  } | {
    "mode": "named",
    "files": [
      {
        "name": "string",
        "description?": "string",
      }
    ],
  },
  "runtimeRegion?": "any" | "eu",
}

Task

object
Schema Shape
{
  "id": "string",
  "agentId": "string",
  "agentVersionId": "string",
  "containerVersionId": "string",
  "status": "pending" | "running" | "finished" | "failed" | "cancelled",
  "description": "string",
  "runtimeRegion": "any" | "eu",
  "overrides": {
    "provider?": "anthropic" | "openrouter" | "openai",
    "hasProviderApiKey?": true,
    "model?": "string",
    "internetAccess?": true,
    "maxRuntimeSeconds?": 123,
    "outputPolicy?": {
      "mode": "any",
    } | {
      "mode": "none",
    } | {
      "mode": "at_least_one",
    } | {
      "mode": "named",
      "files": [
        {
          "name": "string",
          "description?": "string",
        }
      ],
    },
    "runtimeRegion?": "any" | "eu",
  },
  "metadata": {
  },
  "createdAt": "2026-03-25T09:30:00.000Z",
  "startedAt": "2026-03-25T09:30:00.000Z",
  "completedAt": "2026-03-25T09:30:00.000Z",
  "result": "string",
  "error": "string",
  "costUsd": 123,
  "containerMinutes": 123,
  "tokenUsage": {
  },
}

File

object
Schema Shape
{
  "id": "string",
  "filename": "string",
  "contentType": "string",
  "sizeBytes": 123,
  "createdAt": "2026-03-25T09:30:00.000Z",
}

PrepareUploadRequest

object
Schema Shape
{
  "filename": "string",
  "contentType?": "string",
  "sizeBytes?": 123,
}

CompleteUploadRequest

object
Schema Shape
{
  "uploadId": "string",
  "storageId": "string",
}

PreparedUpload

object
Schema Shape
{
  "uploadId": "string",
  "uploadUrl": "string",
  "expiresAt": "2026-03-25T09:30:00.000Z",
}

ListContainersResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "isStandard": true,
      "archivedAt": "2026-03-25T09:30:00.000Z",
      "currentVersion": {
        "id": "string",
        "number": 123,
        "containerPreset": "string",
        "containerImage": "string",
        "containerContractVersion": "string",
        "createdAt": "2026-03-25T09:30:00.000Z",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}

ListContainerVersionsResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "number": 123,
      "containerPreset": "string",
      "containerImage": "string",
      "containerContractVersion": "string",
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}

ListAgentsResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "isStandard": true,
      "archivedAt": "2026-03-25T09:30:00.000Z",
      "currentVersion": {
        "id": "string",
        "number": 123,
        "containerVersionId": "string",
        "basePrompt": "string",
        "defaults": {
          "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
          "hasProviderApiKey": true, // Whether a provider API key is set on this version.
          "model": "string",
          "internetAccess": true,
          "maxRuntimeSeconds": 123,
          "outputPolicy": {
            "mode": "any",
          } | {
            "mode": "none",
          } | {
            "mode": "at_least_one",
          } | {
            "mode": "named",
            "files": [
              {
                "name": "string",
                "description?": "string",
              }
            ],
          },
          "runtimeRegion": "any" | "eu",
        },
        "createdAt": "2026-03-25T09:30:00.000Z",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}

ListAgentVersionsResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "number": 123,
      "containerVersionId": "string",
      "basePrompt": "string",
      "defaults": {
        "provider": "anthropic" | "openrouter" | "openai" | null, // Configured LLM provider, or null if using account default.
        "hasProviderApiKey": true, // Whether a provider API key is set on this version.
        "model": "string",
        "internetAccess": true,
        "maxRuntimeSeconds": 123,
        "outputPolicy": {
          "mode": "any",
        } | {
          "mode": "none",
        } | {
          "mode": "at_least_one",
        } | {
          "mode": "named",
          "files": [
            {
              "name": "string",
              "description?": "string",
            }
          ],
        },
        "runtimeRegion": "any" | "eu",
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}

ListTasksResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "agentId": "string",
      "agentVersionId": "string",
      "containerVersionId": "string",
      "status": "pending" | "running" | "finished" | "failed" | "cancelled",
      "description": "string",
      "runtimeRegion": "any" | "eu",
      "overrides": {
        "provider?": "anthropic" | "openrouter" | "openai",
        "hasProviderApiKey?": true,
        "model?": "string",
        "internetAccess?": true,
        "maxRuntimeSeconds?": 123,
        "outputPolicy?": {
          "mode": "any",
        } | {
          "mode": "none",
        } | {
          "mode": "at_least_one",
        } | {
          "mode": "named",
          "files": [
            {
              "name": "string",
              "description?": "string",
            }
          ],
        },
        "runtimeRegion?": "any" | "eu",
      },
      "metadata": {
      },
      "createdAt": "2026-03-25T09:30:00.000Z",
      "startedAt": "2026-03-25T09:30:00.000Z",
      "completedAt": "2026-03-25T09:30:00.000Z",
      "result": "string",
      "error": "string",
      "costUsd": 123,
      "containerMinutes": 123,
      "tokenUsage": {
      },
    }
  ],
}

ListFilesResponse

object
Schema Shape
{
  "data": [
    {
      "id": "string",
      "filename": "string",
      "contentType": "string",
      "sizeBytes": 123,
      "createdAt": "2026-03-25T09:30:00.000Z",
    }
  ],
}

ErrorResponse

object
Schema Shape
{
  "error": {
    "code": "string",
    "message": "string",
  },
}