LaserData Cloud
API Reference

Deployments

Create, inspect, upgrade, and delete Managed, BYOC, and Starter deployments via the LaserData Cloud API.

API Variables
ld-api-key
{tenant_id}

Set variables to auto-fill all examples and run requests in-browser.

Deployment lifecycle, including creation, upgrades, and deletion, goes through the main API (api.laserdata.cloud). Operational reads (status, nodes, credentials) use the supervisor API ({supervisor_url}). See API Architecture for the full picture.

Required permissions: deployment:read to list/get, deployment:manage to create/modify/delete.

Discovery

Use these endpoints to determine valid options for your plan and region before creating a deployment.

List Available Clouds

GET
/tenants/{tenant_id}/clouds

List cloud providers available to the tenant.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds \
-H "ld-api-key: YOUR_API_KEY"

List Regions

GET
/tenants/{tenant_id}/clouds/{cloud}/regions

List regions available for a given cloud provider.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/aws/regions \
-H "ld-api-key: YOUR_API_KEY"

List Available Tiers

GET
/tenants/{tenant_id}/clouds/{cloud}/regions/{region}/tiers

List compute tiers available in a region for the tenant's plan, with specs and limits.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/aws/regions/us-west-1/tiers \
-H "ld-api-key: YOUR_API_KEY"
[
  {
    "key": "free",
    "name": "Free",
    "description": "Perfect for getting started.",
    "instance": "t3.micro",
    "available": true,
    "limit": 1,
    "vcpus": 2,
    "memory_gib": 1,
    "clusters": ["standalone"],
    "storages": ["network_balanced"],
    "rate_limit": "100 KB/s"
  },
  {
    "key": "large",
    "name": "Large",
    "available": true,
    "limit": 2,
    "vcpus": 2,
    "memory_gib": 8,
    "clusters": ["standalone", "cluster"],
    "storages": ["local_ssd", "network_balanced"],
    "rate_limit": null
  }
]

List Available Storage Types

GET
/tenants/{tenant_id}/clouds/{cloud}/regions/{region}/storages

List storage types available for the plan and region.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/aws/regions/us-west-1/storages \
-H "ld-api-key: YOUR_API_KEY"

Create Deployments

Create a Managed Deployment

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/managed

Provision a fully managed deployment on LaserData infrastructure.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/managed \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "prod-cluster",
  "cloud": "aws",
  "tier": "large",
  "cluster": "standalone",
  "region": "us-west-1",
  "protected": true,
  "encrypted": true,
  "storage": {
    "type": "network_balanced",
    "size": 500
  },
  "retention": {
    "telemetry_days": 90
  },
  "target_network_tput": 10000,
  "availability_mode": "single_az",
  "public_ip_enabled": true,
  "subdomain_enabled": true,
  "spend_limit": 500.00
}'
FieldRequiredValues / Description
nameYesDeployment name
cloudYesaws, gcp
tierYesfree, small, medium, large, xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge
clusterYesstandalone, cluster (cluster not yet available)
regionYesCloud region (e.g. us-west-1, europe-west1)
protectedNoEnable resource protection
encryptedNoEnable server-side message payload encryption
storage.typeNolocal_ssd, network_balanced
storage.sizeNoDisk size in GB (network storage only)
retention.telemetry_daysNoTelemetry retention in days
target_network_tputNoTarget throughput in KB/s (for planning)
availability_modeNosingle_az, multi_az
dedicatedNoDedicated infra isolation (Enterprise only)
public_ip_enabledNoAssign a static public IP (default true)
subdomain_enabledNoAssign a custom subdomain (requires public IP)
spend_limitNoMonthly spend cap in USD

Returns 202 Accepted. Response headers ld-environment and ld-deployment contain the created resource IDs.

Generate BYOC Setup

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc/setup

Generate the trust policy and permissions policy needed to create a BYOC deployment. Returns cloud-specific setup instructions.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc/setup \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "cloud": "aws",
  "region": "us-west-1"
}'

For AWS, the response includes laserdata_org_id, external_id, trust_policy, and permissions_policy. For GCP it returns service account setup instructions.

Validate BYOC Credentials

POST
{supervisor_url}/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/byoc/validate

Validate that the provided credentials are correctly configured before creating the deployment.

bash
curl -X POST {supervisor_url}/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/byoc/validate \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "cloud": "aws",
  "region": "us-west-1",
  "account_id": "123456789012",
  "identity_arn": "arn:aws:iam::123456789012:role/LaserDataByocRole",
  "external_id": "unique-external-id-123",
  "vpc_id": "vpc-12345678"
}'

Create a BYOC Deployment (AWS)

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc

Deploy to your own AWS account. The payload is the same as a managed deployment with an additional aws object containing the IAM role details.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "prod-byoc",
  "cloud": "aws",
  "tier": "large",
  "cluster": "standalone",
  "region": "us-east-1",
  "storage": {
    "type": "network_balanced",
    "size": 500
  },
  "aws": {
    "account_id": "123456789012",
    "identity_arn": "arn:aws:iam::123456789012:role/LaserDataByocRole",
    "external_id": "your-external-id",
    "vpc_id": "vpc-0abc123def456",
    "vpc_cidr": "10.0.0.0/16"
  }
}'

Returns 202 Accepted with ld-environment and ld-deployment headers. See the BYOC Setup Guide for the full IAM configuration walkthrough.

Create a BYOC Deployment (GCP)

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc

Deploy to your own GCP project using a service account. Pass a gcp object instead of aws.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/byoc \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "byoc-gcp-prod",
  "cloud": "gcp",
  "tier": "large",
  "cluster": "standalone",
  "region": "europe-west1",
  "storage": {
    "type": "network_balanced",
    "size": 100
  },
  "gcp": {
    "project_id": "my-gcp-project-123",
    "service_account_email": "[email protected]",
    "vpc_name": "default"
  }
}'

Returns 202 Accepted with ld-environment and ld-deployment headers.

Create a Starter Deployment

POST
/tenants/{tenant_id}/divisions/{division_id}/deployments/starter

Quickly create a Free-tier standalone deployment for development or testing.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/deployments/starter \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "cloud": "aws",
  "region": "us-west-1"
}'
FieldRequiredDescription
cloudYesaws, gcp
regionYesCloud region
environment_idNoExisting environment ID to deploy into
environment_nameNoName for a new environment (defaults to sandbox)
deployment_nameNoDeployment name (auto-generated if omitted)

Read Deployments

List Deployments

GET
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments

List all deployments in an environment.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments \
-H "ld-api-key: YOUR_API_KEY"
{
  "items": [
    {
      "id": 1,
      "name": "prod-cluster",
      "code": "abc123",
      "variant": "managed",
      "domain": "prod-cluster-abc123.laserdata.cloud",
      "cloud": "aws",
      "region": "us-west-1",
      "tier": "large",
      "cluster": "standalone",
      "supervisor_url": "https://supervisor-aws-us.laserdata.cloud",
      "created_at": "2025-01-15T10:30:00Z"
    }
  ],
  "page": 1,
  "total_results": 1,
  "total_pages": 1
}

Get Deployment (Main API)

GET
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}

Retrieve business metadata: protection, description, and upgrade history.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id} \
-H "ld-api-key: YOUR_API_KEY"

Fields exclusive to the main API response: code, protected, description, upgrades.

Get Deployment (Supervisor API)

GET
{supervisor_url}/deployments/{deployment_id}

Retrieve live runtime status, node IPs, active configs, and cloud networking info.

bash
curl {supervisor_url}/deployments/{deployment_id} \
-H "ld-api-key: YOUR_API_KEY"

Fields exclusive to the supervisor response: status, network_mode, cidr, configs, nodes, aws/gcp networking details.

A full deployment detail view requires both calls in parallel.

Get Deployment Credentials

GET
{supervisor_url}/deployments/{deployment_id}/credentials

Retrieve the Iggy username and password for client connections.

bash
curl {supervisor_url}/deployments/{deployment_id}/credentials \
-H "ld-api-key: YOUR_API_KEY"
{
  "username": "iggy",
  "password": "your-deployment-password"
}

Modify Deployments

Upgrade a Deployment

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/upgrade

Upgrade tier and/or storage. At least one of tier or storage must be provided. Applied asynchronously by Warden.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/upgrade \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "tier": "xlarge",
  "storage": {
    "type": "network_balanced",
    "size": 500
  }
}'

Returns 202 Accepted. NVMe SSD deployments cannot be upgraded until clustering is available.

Extend a Deployment

POST
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/extend

Add nodes to an existing deployment.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/extend \
-H "ld-api-key: YOUR_API_KEY"

Update Spend Limit

PUT
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/spend_limit

Set or update the monthly spend cap in USD.

bash
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/spend_limit \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "spend_limit": 1000.00
}'

Returns 200 OK. Required permission: deployment:manage at the environment level.

Update Retention

PUT
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/retention

Update telemetry retention period for metrics, logs, and heartbeats.

bash
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}/retention \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "retention": {
    "telemetry_days": 90
  }
}'

Returns 200 OK.

Update Deployment

PUT
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}

Update protection status or description.

bash
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id} \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "protected": true,
  "description": "Production streaming cluster for analytics pipeline"
}'

Delete a Deployment

DELETE
/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}

Permanently delete a deployment. Protected deployments require a resource code. This action is irreversible.

bash
curl -X DELETE "https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/{deployment_id}?code={protection_code}" \
-H "ld-api-key: YOUR_API_KEY"

Returns 202 Accepted. All nodes, data, configs, backups, and telemetry are permanently destroyed.

On this page