API Reference · Workspace
Update a workspace (add, change or remove workloads)
Workloads are declared in `spec.workloads`. Send the full desired workload set; the platform reconciles to match — adding new workloads, updating changed ones and removing those you drop.
PUT/v1/tenants/{name}
Authorization
x-api-keystringrequired
Your per-workspace API key, e.g. llc_AbC123…. Also accepted as Authorization: Bearer <key>. Mint keys on your workspace's API keys page — each key belongs to one workspace.
Path parameters
namestringrequired
Workspace (tenant) name.
Body
specobjectoptional
Desired workspace spec. Include the full `workloads` array.
Notable optional blocks: `ai.provisioning` ("ask" | "master" |
"auto") controls how AI-requested dependency resources are
handled — ask the owner (default), let the workspace AI master
decide, or provision immediately with a notification.
Response
200 — Updated workspace.
namestring
planstring
ownerstring
specobject
The full workspace spec, including `workloads`.
resourcesobject
Used-vs-left capacity against the workspace's subscription pool —
the pool is the real limit. `usage[]` items carry
`{dim, unit, used, limit, left, overLimit}`; `limit` and `left`
are `-1` on unlimited workspaces.
curl -X PUT https://api.live-llm.com/v1/tenants/acme \
-H "x-api-key: $LIVELLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"spec": {
"workloads": [
{
"id": "web",
"type": "pod",
"pod": {
"image": "nginx:1.27",
"ports": [
{
"name": "http",
"port": 80
}
]
}
}
]
}
}'Try itPUThttps://api.live-llm.com/v1/tenants/{name}
Fill required path param: name.
Example response200
{
"name": "acme",
"plan": "startup",
"owner": "usr_9f2c41",
"spec": {
"domain": {
"prefix": "acme"
},
"billing": {
"mode": "quota",
"subscription": "starter"
},
"egress": {
"mode": "internet"
},
"aiProviders": [
"zai-coding-plan"
],
"aiMaster": {
"id": "master-1",
"name": "Master 1",
"enabled": true,
"provider": "zai-coding-plan",
"model": "glm-5.2"
},
"workloads": [
{
"id": "web",
"type": "pod",
"pod": {
"image": "nginx:1.27",
"ports": [
{
"name": "http",
"port": 80
}
]
}
},
{
"id": "app-db",
"type": "storage",
"storage": {
"engine": "postgres",
"version": "16",
"storageSize": "20Gi"
}
}
]
},
"resources": {
"subscription": "starter",
"assigned": true,
"unlimited": false,
"withinLimits": true,
"usage": [
{
"dim": "CPU",
"unit": "cores",
"used": 0.5,
"limit": 1,
"left": 0.5,
"overLimit": false
},
{
"dim": "RAM",
"unit": "GiB",
"used": 0.5,
"limit": 2,
"left": 1.5,
"overLimit": false
},
{
"dim": "Disk",
"unit": "GiB",
"used": 20,
"limit": 20,
"left": 0,
"overLimit": false
}
]
}
}