Thanks to visit codestin.com
Credit goes to docs.laserdata.com

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

Preview Deployment Cost

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

Return the projected monthly cost and per-component breakdown for a deployment shape, without creating anything.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/preview \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "cloud": "aws",
  "region": "us-east-1",
  "tier": "large",
  "storage": { "type": "network_balanced", "size": 200 },
  "target_network_tput": 10,
  "availability_mode": "single_az",
  "nodes": 3,
  "telemetry_extra_days": 0
}'
{
  "cloud": "aws",
  "region": "us-east-1",
  "tier": "large",
  "nodes": 3,
  "instance": "m7i.2xlarge",
  "monthly_total_usd": "1234.56",
  "breakdown": {
    "compute_usd": "780.00",
    "storage_usd": "240.00",
    "network_usd": "180.56",
    "telemetry_usd": "34.00",
    "data_retention_usd": "0.00"
  }
}

Only the cloud, region, and tier fields are required. storage, target_network_tput, availability_mode, nodes (default 3), and telemetry_extra_days (default 0) fall back to tier defaults when omitted. Free-tier previews short-circuit and return zero cost. Required permission: deployment:read.

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