Docs
BlogHomeStart building

Deployments

Publish your project to production and track the rollout.


Deployments build your project and publish it to its production URL. Deploying is asynchronous — start the deploy, then poll for status. All endpoints require the api-key header.

#Deploy to Production

POST/api/v1/vcaas/projects/:projectId/deployments/deployUses credits

Build and deploy your project to a production URL. This endpoint is asynchronous — it returns immediately with status "deploying" and the deployment continues in the background for 2 to 5 minutes.

Poll GET /projects/:projectId/deployments/status every 10–15 seconds until status is "success", then read the public URL from GET /projects/:projectIdproductionProjectUrl. If the server is not active, it auto-starts (charging extra START_SERVER credits) and returns SERVER_NOT_READY; poll GET /projects/:projectId until agentServerStatus is "Active", then retry.

Path parameters

ParameterTypeDescription
projectIdstringThe project ID

Response fields

FieldTypeDescription
data.projectIdstringThe project ID
data.statusstringAlways "deploying" on success
data.messagestringInstructions on how to poll for status

Example request

bash
curl -X POST -H "api-key: tlm_sk_your_key" \
  https://api-accounts.totalum.app/api/v1/vcaas/projects/my-app/deployments/deploy
Success · 200 OK
json
{
  "errors": null,
  "data": {
    "projectId": "my-app",
    "status": "deploying",
    "message": "Deployment started. It will take from 2 to 5 minutes. Fetch GET .../deployments/status every 10-15 seconds to track progress."
  }
}
Error · 409
json
{
  "errors": {
    "errorCode": "DEPLOYMENT_RUNNING",
    "errorMessage": "A deployment is already in progress"
  },
  "data": null
}

Error codes

CodeHTTPMeaning
MISSING_PROJECT_ID400projectId is required
PROJECT_NOT_FOUND404Project does not exist or you don't own it
AGENT_RUNNING409Cannot deploy while agent is running
DEPLOYMENT_RUNNING409A deployment is already in progress
RECOVERY_RUNNING409A version recovery is in progress
SERVER_NOT_READY409Server auto-starting, poll until Active then retry
INSUFFICIENT_CREDITS402Not enough credits for deployment

#Get Deployment Status

GET/api/v1/vcaas/projects/:projectId/deployments/statusFree

Check the current deployment status. Poll until status is "success".

Path parameters

ParameterTypeDescription
projectIdstringThe project ID

Response fields

FieldTypeDescription
data.statusstring | null"deploying" | "success" | "error" | null (if never deployed)
data.createdAtstring | nullISO 8601 deployment date
data.versionIdstring | undefinedVersion that was deployed

Example request

bash
curl -H "api-key: tlm_sk_your_key" \
  https://api-accounts.totalum.app/api/v1/vcaas/projects/my-app/deployments/status
Success · 200 OK
json
{
  "errors": null,
  "data": {
    "status": "success",
    "createdAt": "2026-03-11T11:00:00.000Z",
    "versionId": "v_abc123"
  }
}
Error · 404
json
{
  "errors": {
    "errorCode": "PROJECT_NOT_FOUND",
    "errorMessage": "Project does not exist or you don't own it"
  },
  "data": null
}

Error codes

CodeHTTPMeaning
MISSING_PROJECT_ID400projectId is required
PROJECT_NOT_FOUND404Project does not exist or you don't own it