Instances

An instance is one pod running one platform (engine). The API calls it an *agent*; the namespace it runs in is dseq (ap-…).

Create

POST /api/agents — body fields:

fieldrequiredmeaning
personaIdyeswhich persona to load; any id from GET /api/personas (Hermes uses it fully, other engines only for the name)
tieryestiny, small, medium, large; must satisfy the engine's minTier
enginenodefault hermes; see GET /api/engines
namenoup to 60 chars; the pod's hostnames are derived from it
channelsnosubset of web, telegram, discord, whatsapp, email; default ["web"]
langnoen or ru, passed to the persona
modelnomodel id for the engine, e.g. deepseek-v4-flash
toolsno{ "enabled": [toolset ids], "mcpServers": [...] }; ids from GET /api/tools; a2a enables agent-to-agent and the web chat
domainnoyour own hostname, e.g. agent.example.com; names under agentspodium.com are assigned automatically and refused here
extraSoulnoup to 4000 chars of owner instructions appended to the persona

Free pods per account: 3 at once. Above that the call answers 400 and asks to upgrade or delete one.

Read

fieldmeaning
statusprovisioning (being built), running, stopped (paused), failed, deleted
endpointUrlthe engine's own dashboard, https://<slug>-pod.agentspodium.com
a2aUrl, a2aTokenagent-to-agent endpoint and its bearer; both null when the a2a toolset is off
a2aSlugthe stable label all hostnames are built from
domainyour own domain if set, otherwise <slug>.agentspodium.com
quotaStatus, quotaresource state; see health
llmProviderwhich provider's key is installed, null when none
dseqnamespace on the cluster

Change

calleffect
POST /api/agents/:id/upgrade { "tier" }new plan, pod rebuilt with data migrated
PATCH /api/agents/:id/llm-key { "key", "provider", "model"? }install a model key; "key": null removes it
PATCH /api/agents/:id/toolstoolsets and MCP servers
PATCH /api/agents/:id/channelsmessengers
PATCH /api/agents/:id/telegram { "token" }Telegram bot token for the pod
PATCH /api/agents/:id/instructionsowner instructions
PATCH /api/agents/:id/timezoneschedules use it
PUT /api/agents/:id/peersother agents this one may call, see a2a
POST /api/agents/:id/pause, /resumestop billing the pod's resources / start again
POST /api/agents/:id/rebuildfresh pod from the last backup
DELETE /api/agents/:idgone, after a final backup

Every change that rebuilds the pod answers with status: "provisioning"; poll GET /api/agents/:id until running, then liveness.

Data

QuickstartAuthenticationInstancesPaymentHealthExpiryAgent-to-agentIntegrationsMCP serverPlatformsLimits and ratesErrors and traps