LaserData Cloud
API Reference

Cloud Accounts

Register and manage cloud provider accounts for BYOC deployments and network integrations.

API Variables
ld-api-key
{tenant_id}

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

Cloud accounts store your external cloud provider credentials (AWS IAM roles, VPC IDs, GCP network info) in one place. BYOC deployments, VPC peering, and PrivateLink features pull from saved cloud accounts. All endpoints use the main API at https://api.laserdata.cloud.

Required permissions: settings:read to list/get, settings:manage to create/update/delete.

Create a Cloud Account

POST
/tenants/{tenant_id}/cloud_accounts

Register a new cloud account. Supports AWS and GCP.

bash
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/cloud_accounts \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "cloud": "aws",
  "name": "production-aws",
  "account_id": "123456789012",
  "region": "us-west-1",
  "settings": {
    "aws": {
      "identity_arn": "arn:aws:iam::123456789012:role/LaserDataRole",
      "external_id": "unique-external-id",
      "vpc_id": "vpc-0abc123def456",
      "vpc_cidr": "10.0.0.0/16"
    }
  },
  "remarks": "Main production AWS account"
}'
FieldRequiredDescription
cloudYesCloud provider: aws or gcp
nameYesUnique name (1-100 chars)
account_idYesCloud provider account ID (e.g. AWS 12-digit account number)
regionNoDefault region for this account
settingsNoCloud-specific credentials (see below)
remarksNoNotes (max 500 chars)

AWS settings:

FieldRequiredDescription
identity_arnYesIAM role ARN that LaserData assumes for provisioning
external_idYesExternal ID for secure cross-account role assumption
vpc_idYesVPC ID where infrastructure will be provisioned
vpc_cidrNoCIDR block of the VPC (used for network planning)

GCP settings:

FieldRequiredDescription
vpc_networkNoVPC network name for infrastructure provisioning
vpc_cidrNoCIDR block of the VPC

Returns 201 Created.


List Cloud Accounts

GET
/tenants/{tenant_id}/cloud_accounts

List all registered cloud accounts for the tenant.

bash
curl "https://api.laserdata.cloud/tenants/{tenant_id}/cloud_accounts?page=1&results=10" \
-H "ld-api-key: YOUR_API_KEY"
{
  "total_pages": 1,
  "total_results": 1,
  "page": 1,
  "items": [
    {
      "id": 1,
      "cloud": "aws",
      "name": "production-aws",
      "account_id": "123456789012",
      "region": "us-west-1",
      "validated_at": null,
      "status": "active",
      "created_at": "2026-06-01T10:00:00Z",
      "updated_at": "2026-06-01T10:00:00Z"
    }
  ]
}

Account statuses: active, inactive, locked, deleted

Query ParameterDescription
nameFilter by name (contains match)
cloudFilter by provider: aws, gcp
regionFilter by region (contains match)

Get Cloud Account

GET
/tenants/{tenant_id}/cloud_accounts/{cloud_account_id}

Retrieve a specific cloud account. The detailed response includes settings and remarks omitted from the list.

bash
curl https://api.laserdata.cloud/tenants/{tenant_id}/cloud_accounts/{cloud_account_id} \
-H "ld-api-key: YOUR_API_KEY"
{
  "id": 1,
  "cloud": "aws",
  "name": "production-aws",
  "account_id": "123456789012",
  "region": "us-west-1",
  "status": "active",
  "settings": {
    "aws": {
      "identity_arn": "arn:aws:iam::123456789012:role/LaserDataRole",
      "external_id": "unique-external-id",
      "vpc_id": "vpc-0abc123def456",
      "vpc_cidr": "10.0.0.0/16"
    }
  },
  "remarks": "Main production AWS account",
  "created_at": "2026-06-01T10:00:00Z",
  "updated_at": "2026-06-01T10:00:00Z"
}

Update Cloud Account

PUT
/tenants/{tenant_id}/cloud_accounts/{cloud_account_id}

Update any cloud account field. All fields are optional; include only what you want to change. Set an optional field to null to clear it.

bash
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/cloud_accounts/{cloud_account_id} \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "production-aws-updated",
  "region": "us-west-2",
  "status": "active"
}'
FieldDescription
nameNew name (must be unique within the tenant)
account_idUpdated cloud account ID
regionUpdated region, or null to clear
settingsUpdated credentials, or null to clear
remarksUpdated notes, or null to clear
statusAccount status: active, inactive, locked, deleted

Returns 204 No Content.


Delete Cloud Account

DELETE
/tenants/{tenant_id}/cloud_accounts/{cloud_account_id}

Permanently delete a cloud account. Existing BYOC deployments using this account continue running but cannot be reprovisioned.

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

Returns 204 No Content.

On this page