Deployments & nodes
Provision an isolated cloud deployment across AWS, Azure, or GCP, track its status and monthly cost, and register self-hosted worker nodes that heartbeat into the engine.
Algenta can run your org on the shared managed pool or on an isolated deployment in your own cloud region. This page covers the deployment lifecycle — list regions, request a deployment, check status, read cost, and deprovision — and how self-hosted worker nodes register and heartbeat so they appear in your infrastructure view.
Provision and manage a deployment
List providers and regions
Every deployment targets a provider and a region. Fetch the current options first — the id fields are what you pass when creating a deployment.
curl -sS "https://api.algenta.ai/v1/deployments/regions" \
-H "Authorization: Bearer $ALGENTA_API_KEY"The four providers are algenta_shared (the default multi-tenant pool, no setup), aws, azure, and gcp, each with a list of regions:
{
"providers": [
{ "id": "algenta_shared", "name": "Algenta Managed", "regions": [ ... ] },
{ "id": "aws", "name": "Amazon Web Services", "regions": [ { "id": "us-east-1", "label": "US East (N. Virginia)", "flag": "🇺🇸" } ] },
{ "id": "azure", "name": "Microsoft Azure", "regions": [ ... ] },
{ "id": "gcp", "name": "Google Cloud Platform", "regions": [ ... ] }
]
}Request a deployment
Create the deployment with a provider and region. Optional config keys (instance_size, storage_gb, max_concurrent_runs, auto_scale_max) size it. The call returns 202 Accepted immediately — provisioning is asynchronous and typically takes a few minutes.
curl -sS -X POST "https://api.algenta.ai/v1/deployments" \
-H "Authorization: Bearer $ALGENTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "aws",
"region": "us-east-1",
"config": { "instance_size": "medium", "storage_gb": 100 }
}'An unknown provider or region returns 422 (invalid_provider / invalid_region), and an org that already has an active or in-progress deployment returns 409 deployment_exists — deprovision the existing one first.
Poll status
Read the org's current deployment. It returns null while you are on the shared pool, otherwise the deployment record with its status.
curl -sS "https://api.algenta.ai/v1/deployments" \
-H "Authorization: Bearer $ALGENTA_API_KEY"{
"deployment_id": "d1e2f3a4-...",
"org_id": "0123abcd-...",
"provider": "aws",
"region": "us-east-1",
"status": "provisioning",
"endpoint_url": null,
"cost_usd_month": 0.0,
"billable_cost_usd_month": 0.0,
"billing_markup_pct": 20.0,
"created_at": "2026-07-05T09:12:44Z",
"provisioned_at": null,
"error_message": null
}status moves requested → provisioning → active. When it is active, endpoint_url is populated and your API calls route automatically to the isolated deployment. A failed provision reports status: "failed" with an error_message.
Read monthly cost
Check the current-month cloud cost for a deployment. cost_usd_month is the underlying cloud cost and billable_cost_usd_month applies the pass-through billing_markup_pct.
curl -sS "https://api.algenta.ai/v1/deployments/$DEPLOYMENT_ID/cost" \
-H "Authorization: Bearer $ALGENTA_API_KEY"The response echoes provider, region, the current year and month, both cost figures, the markup percentage, and last_updated.
Deprovision
Tear the deployment down and revert the org to the shared pool. Like create, this returns 202 and runs asynchronously.
curl -sS -X DELETE "https://api.algenta.ai/v1/deployments/$DEPLOYMENT_ID" \
-H "Authorization: Bearer $ALGENTA_API_KEY"It responds { "status": "deprovisioning", "deployment_id": "..." }. An already-torn-down deployment returns 409 already_deprovisioned; an unknown id returns 404 not_found.
Register self-hosted worker nodes
A self-hosted worker registers with the engine on startup and then heartbeats, so it shows up alongside the primary node in GET /v1/infrastructure.
Register the node
Call register on startup. All fields are optional — omit node_id and one is generated for you.
curl -sS -X POST "https://api.algenta.ai/v1/nodes/register" \
-H "Authorization: Bearer $ALGENTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"node_id": "worker-eu-1",
"region": "eu-west-1",
"engine_version": "0.3.1",
"cpu_count": 8,
"memory_gb": 32,
"capabilities": ["large-memory"]
}'The 201 response returns the node_id and confirms where to send heartbeats.
Send heartbeats
Send a heartbeat about every 30 seconds to keep the node live and report its current load. status may be live, idle, error, or updating.
curl -sS -X POST "https://api.algenta.ai/v1/nodes/heartbeat" \
-H "Authorization: Bearer $ALGENTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"node_id": "worker-eu-1",
"cpu_pct": 24.1,
"memory_gb": 3.5,
"jobs_per_sec": 251.0,
"status": "live"
}'A heartbeat for an unregistered node returns 404 node_not_found; a node owned by a different org returns 403.
View infrastructure and deregister
See the primary node plus your registered workers, with live engine health and latency.
curl -sS "https://api.algenta.ai/v1/infrastructure" \
-H "Authorization: Bearer $ALGENTA_API_KEY"Each node reports node_id, status, engine_version, cpu_pct, memory_gb, jobs_per_sec, region, and last_heartbeat. On graceful shutdown, deregister the node:
curl -sS -X DELETE "https://api.algenta.ai/v1/nodes/worker-eu-1" \
-H "Authorization: Bearer $ALGENTA_API_KEY"Next steps
Last updated
Was this helpful?