Skip to main content

Astro Platform API (1.0.0)

Download OpenAPI specification:Download

This is the API for the Astro Plane - control plane for Astro Platform

APIKeys

List API keys for a user

Returns all active, expired, and revoked API keys owned by the authenticated user across all organizations. Requires Auth0 authentication.

header Parameters
Authorization
required
string

Auth0 Bearer token

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Create API key for an organization

Create an API key for an organization. The API key will be used to authenticate the requests to the Astro Platform API. Requires Auth0 authentication.

header Parameters
Authorization
required
string

Auth0 Bearer token

Request Body schema: application/json
required

API Key creation request

duration
required
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

duration is the duration for which the API key is valid. It is a string in the format of a number followed by "h" for hours or "d" for days. If not specified, the default duration is 24h.

isPermanent
boolean

isPermanent is a flag to make the API key permanent. If true, the API key will not expire. If false, the API key will expire after the duration. If not specified, the default value is false.

name
string

Name is an optional human-readable label for the API key (e.g. "CI/CD Pipeline", "Local Dev").

orgId
required
string

orgId is the organization Id to which the API key is created. The id is uuid generated by the platform. Use the organization name to get the orgId.

source
required
string
Enum: "cli" "ui"

source indicates where the API key was created from (cli or ui) This is used for audit purposes and rate limiting

Responses

Request samples

Content type
application/json
{
  • "duration": -9223372036854776000,
  • "isPermanent": true,
  • "name": "string",
  • "orgId": "string",
  • "source": "cli"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete API key for an organization

Delete an API key for an organization by its ID. The API key will no longer be valid for authentication. Requires Auth0 authentication.

path Parameters
orgId
required
string

Organization Id

header Parameters
Authorization
required
string

Auth0 Bearer token

Request Body schema: application/json
required

API Key deletion request

keyId
required
string

KeyID is the unique identifier of the API key to delete. This is the ID field, not the actual API key value.

Responses

Request samples

Content type
application/json
{
  • "keyId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get API key by ID

Returns the name, status, expiry, and organization association for a specific API key. Requires Auth0 authentication.

path Parameters
orgId
required
string

Organization Id

keyId
required
string

Key ID

header Parameters
Authorization
required
string

Auth0 Bearer token

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Revoke API key

Marks the API key as revoked so it can no longer authenticate requests. The key record is retained for audit purposes. Requires Auth0 authentication.

path Parameters
orgId
required
string

Organization Id

header Parameters
Authorization
required
string

Auth0 Bearer token

Request Body schema: application/json

Reason for revocation

keyId
required
string

KeyID is the unique identifier of the API key to revoke. This is the ID field, not the actual API key value.

reason
string

Reason is the reason for revoking the API key. This is optional and can be used to provide a reason for revoking the API key.

Responses

Request samples

Content type
application/json
{
  • "keyId": "string",
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "data": true,
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get API key metadata

Returns aggregate counts (active, expired, revoked) and the most recent key activity for the user in the specified organization. Requires Auth0 authentication.

header Parameters
Authorization
required
string

Auth0 Bearer token

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Validate API key

Returns the current status of the API key (active, expired, or revoked) along with its expiry timestamp and associated organization. Requires Auth0 authentication.

header Parameters
Authorization
required
string

Auth0 Bearer token

X-Validate-API-Key
required
string

API Key to validate

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Application

List all applications

Returns all applications deployed within the authenticated user's organization.

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete an application

Permanently removes the application and its associated resources. Only the organization owner can delete applications.

path Parameters
appId
required
string

Application Id

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "details": { },
  • "error": "Resource not found",
  • "error_code": "NOT_FOUND",
  • "status": 404,
  • "trace_id": "trace-5e6f7g8h9i"
}

Get an application

Retrieve details of a specific application within an organization

path Parameters
appId
required
string

Application Id

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Stream application events via WebSocket

Establishes a WebSocket connection for real-time application event streaming. Upgrades HTTP to WebSocket and streams Pulse (CD) service and optionally Kubernetes events.

path Parameters
appId
required
string

Application ID

query Parameters
k8s
boolean
Default: false

Include Kubernetes events in addition to application events

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
"string"

Stream application logs via WebSocket

Establishes a WebSocket connection for real-time application log streaming. Upgrades HTTP to WebSocket and streams logs with optional pod and container targeting.

path Parameters
appId
required
string

Application ID

query Parameters
follow
boolean
Default: true

Follow logs in real-time

tail
integer

Number of lines to show from the end of the logs

previous
boolean

Show previous logs from terminated containers

pod
string

Specific pod name to get logs from

container
string

Specific container name within the pod

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
"string"

Resync an application

Triggers an immediate GitOps resync for the application, reconciling the deployed state with the desired configuration in the repository.

path Parameters
appId
required
string

Application Id

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json

Resync options

force
boolean

Force sync even if no changes detected or previous operation is stuck Useful when previous deployments are stuck in terminating state

Responses

Request samples

Content type
application/json
{
  • "force": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get application request specification

Returns the original deployment specification for the application, useful for auditing or re-deploying with modified parameters.

path Parameters
appId
required
string

Application ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Stream application status

Opens a WebSocket connection that streams real-time status events for the specified application, including deployment progress, health conditions, and ArgoCD sync state.

path Parameters
appId
required
string

Application ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "body": {
    }
}

Deploy an application

Deploy an application. Use ?dryRun=true to validate without deploying.

query Parameters
dryRun
boolean

When true, validates the configuration without deploying

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Application deployment data

object

ExternalAccess configures how the application is exposed externally (optional). Defaults to Ingress. The "None" option is only valid for helm/repository source types.

name
required
string [ 1 .. 50 ] characters

Name is the application name (required, 1-50 characters, valid DNS name). Must be unique within the organization. Format: lowercase alphanumeric and hyphens.

namespace
string <= 63 characters

Namespace is the Kubernetes namespace for deployment (optional, max 63 characters). Must be a valid Kubernetes namespace name. If omitted, auto-generated from the application name.

profileName
required
string [ 1 .. 50 ] characters

ProfileName is the application profile name (required, 1-50 characters, valid DNS name). Immutable once set — cannot be changed after application creation.

required
object

Source defines where the application artifact is fetched from (required, immutable once set). Must include a valid source type (image, helm, repository, or yaml).

syncType
string
Enum: "auto" "manual"

SyncType controls application synchronization mode (optional, default: "auto"). One of: auto, manual. Use "manual" only for testing on a live cluster.

Responses

Request samples

Content type
application/json
{
  • "externalAccess": {
    },
  • "name": "string",
  • "namespace": "string",
  • "profileName": "string",
  • "source": {
    },
  • "syncType": "auto"
}

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

ApplicationProfile

List application profiles

Returns all application profiles for the organization, including their deployment tiers and associated resource configuration.

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Create application profile

Creates an application profile that defines deployment resources, tier configuration, and environment settings for applications in the organization.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Application profile configuration

availabilityTier
string
Enum: "basic" "standard" "premium"

AvailabilityTier is the availability tier (optional, default: "basic"). One of: basic, standard, premium.

object

CloudProvider specifies the cloud provider and region for deployment (optional). If omitted, cluster selection is determined by ClusterName or platform defaults.

clusterName
string

ClusterName is the target cluster name (optional). Takes precedence over CloudProvider when both are set.

profileName
required
string [ 1 .. 50 ] characters

ProfileName is the profile name (required, 1-50 characters, valid DNS name). Format: lowercase alphanumeric and hyphens, must start with a letter. Example: "example-profile"

object

resources specifies resource requirements for the application. example: {"memory":{"minimum":"1Gi","maximum":"2Gi"}}

Responses

Request samples

Content type
application/json
{
  • "availabilityTier": "basic",
  • "cloudProvider": {
    },
  • "clusterName": "string",
  • "profileName": "string",
  • "resources": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete application profile

Permanently removes the application profile. Profiles currently in use by deployed applications cannot be deleted.

path Parameters
profileId
required
string

Profile ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get application profile

Returns the configuration and tier details for the specified application profile.

path Parameters
profileId
required
string

Profile ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Bulk delete application profiles

Removes multiple application profiles in a single request. Profiles in use by active deployments are skipped and reported in the response.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

List of profile names to delete

profileNames
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "profileNames": [
    ]
}

Response samples

Content type
application/json
{
  • "body": {
    }
}

Audit

List audit events for an organization

List audit events with filtering and pagination. Requires enterprise plan and admin role.

query Parameters
page
integer

Page number (default: 1)

pageSize
integer

Items per page (default: 50, max: 100)

eventType
string

Filter by event type (API_KEY, CLUSTER, APPLICATION, etc.)

action
string

Filter by action (CREATE, DELETE, UPDATE, REVOKE)

userId
string

Filter by user ID

startDate
string

Start date (flexible formats: 2024-01-15, 2024-01-15T00:00:00Z, etc.)

endDate
string

End date (flexible formats: 2024-01-16, 2024-01-16T23:59:59Z, etc.)

header Parameters
X-Astro-API-Key
required
string

API Key

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get audit event details

Get details of a specific audit event by ID. Requires enterprise plan and admin role.

path Parameters
eventId
required
string

Event ID

header Parameters
X-Astro-API-Key
required
string

API Key

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Export audit events

Export audit events in CSV or JSON format. Requires enterprise plan and admin role.

query Parameters
format
string

Export format (json, csv) - default: json

eventType
string

Filter by event type (API_KEY, CLUSTER, APPLICATION, etc.)

action
string

Filter by action (CREATE, DELETE, UPDATE, REVOKE)

userId
string

Filter by user ID

startDate
string

Start date (flexible formats: 2024-01-15, 2024-01-15T00:00:00Z, etc.)

endDate
string

End date (flexible formats: 2024-01-16, 2024-01-16T23:59:59Z, etc.)

header Parameters
X-Astro-API-Key
required
string

API Key

Responses

Response samples

Content type
"string"

Get audit statistics for an organization

Get audit statistics and analytics for an organization. Requires enterprise plan and admin role.

query Parameters
period
string

Time period for statistics (7d, 30d, 90d) - default: 30d

header Parameters
X-Astro-API-Key
required
string

API Key

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

AvailabilityTiers

List supported availability tiers

Lists all supported availability tiers for the organization

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get availability tier information

Get detailed information about a specific availability tier

path Parameters
tierId
required
string

Availability tier ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Cloud

Get AWS cloud account connection status

Check the status of an AWS cloud account connection workflow

Authorizations:
AdminAuth
path Parameters
id
required
string

Cloud account operation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Connect AWS account for cluster provisioning

Connect your AWS account so AstroPulse can provision EKS clusters. Creates an IAM role via CloudFormation.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

AWS cloud account request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the cluster name (required, 1-50 characters, valid DNS name)

destinationAccountId
string

DestinationAccountId is the target AWS account ID (optional, 12-digit numeric string). Auto-detected from cluster metadata if not provided.

duration
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the validity period for credentials (optional, Go duration format e.g. "1h", "30m")

forceUpdate
boolean

ForceUpdate bypasses cluster existence checks and forces resource updates (optional, default: false)

level
string
Enum: "read" "manage"

Level is the cloud access level (optional, default: "manage"). One of: read, manage.

targetRegion
string

TargetRegion is the AWS region for resource creation (optional, e.g. "us-west-2"). Auto-detected from cluster metadata if not provided.

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "destinationAccountId": "string",
  • "duration": -9223372036854776000,
  • "forceUpdate": true,
  • "level": "read",
  • "targetRegion": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get AWS temporary credentials

Get temporary AWS credentials for cluster operations

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

AWS credential request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the cluster name (required, 1-50 characters, valid DNS name)

destinationAccountId
string

DestinationAccountId is the target AWS account ID (optional, 12-digit numeric string). Auto-detected from cluster metadata if not provided.

duration
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the validity period for credentials (optional, Go duration format e.g. "1h", "30m")

targetRegion
string

TargetRegion is the AWS region (optional). Auto-detected from cluster metadata if not provided.

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "destinationAccountId": "string",
  • "duration": -9223372036854776000,
  • "targetRegion": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get Azure cloud account connection status

Check the status of an Azure cloud account connection workflow

Authorizations:
AdminAuth
path Parameters
id
required
string

Cloud account operation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Connect Azure subscription for cluster provisioning

Connect your Azure subscription so AstroPulse can provision AKS clusters via Workload Identity Federation.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Azure cloud account request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the name of the cluster

duration
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the duration for which the credentials are valid

forceUpdate
boolean

ForceUpdate bypasses cluster existence checks and forces reconfiguration

resourceGroup
string

ResourceGroup is the target Azure resource group

subscriptionId
string

SubscriptionId is the target Azure subscription ID

targetRegion
string

TargetRegion is the Azure region where resources should be created

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "duration": -9223372036854776000,
  • "forceUpdate": true,
  • "resourceGroup": "string",
  • "subscriptionId": "string",
  • "targetRegion": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get Azure temporary credentials

Get temporary Azure credentials for cluster operations

Authorizations:
AdminAuth
query Parameters
clusterName
required
string

Cluster name

subscriptionId
string

Azure subscription ID

resourceGroup
string

Azure resource group

targetRegion
string

Azure region

duration
string

Credential duration

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get GCP cloud account connection status

Check the status of a GCP cloud account connection workflow

Authorizations:
AdminAuth
path Parameters
id
required
string

Cloud account operation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Connect GCP project for cluster provisioning

Connect your GCP project so AstroPulse can provision GKE clusters. Sets up Workload Identity Federation.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

GCP cloud account request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the name of the cluster

duration
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the duration for which the credentials are valid

forceUpdate
boolean

ForceUpdate bypasses cluster existence checks and forces resource updates

level
string
Enum: "read" "manage"

Level specifies the cloud access level: "read" or "manage" (default: "manage")

targetProjectId
string

TargetProjectId is the ID of the target GCP project (customer project) Optional for credentials - looked up from cluster if not provided Format: 6-30 lowercase letters, digits, hyphens; must start with letter

targetProjectNumber
string

TargetProjectNumber is the numeric GCP project number (required for cloud connect) Retrieve via: gcloud projects describe PROJECT_ID --format="value(projectNumber)"

targetRegion
string

TargetRegion is the GCP region where resources should be created Optional for credentials - looked up from cluster if not provided Format: location-direction-number (e.g., us-central1)

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "duration": -9223372036854776000,
  • "forceUpdate": true,
  • "level": "read",
  • "targetProjectId": "string",
  • "targetProjectNumber": "string",
  • "targetRegion": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get GCP temporary credentials

Get temporary GCP credentials for cluster operations

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

GCP credential request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the name of the cluster

duration
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the duration for which the credentials are valid

targetProjectId
string

TargetProjectId is the ID of the target GCP project Optional - looked up from cluster if not provided

targetRegion
string

TargetRegion is the GCP region Optional - looked up from cluster if not provided

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "duration": -9223372036854776000,
  • "targetProjectId": "string",
  • "targetRegion": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get supported Kubernetes versions

Get the list of supported Kubernetes versions for a specific provisioner and cloud provider. For GKE, you can filter by release channel to see versions available in that channel.

Authorizations:
AdminAuth
query Parameters
cloudProvider
required
string
Enum: "aws" "gcp" "azure"

Cloud provider

provisionerType
required
string
Enum: "selfHosted" "eks" "gke" "aks"

Provisioner type

region
string

Cloud region (optional, uses default region per provider)

releaseChannel
string
Enum: "RAPID" "REGULAR" "STABLE"

GKE release channel filter (GKE only)

autopilot
boolean

Filter for GKE Autopilot compatible versions (GKE only)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Store self-hosted cluster credentials

Stores AWS or GCP credentials for a self-hosted cluster in the encrypted platform vault

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Self-hosted connect request

accountId
required
string

AccountId is the cloud account or project ID (required)

bucketName
required
string

BucketName is the state store bucket name (required)

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the cluster name (required, 1-50 characters, valid DNS name)

required
object

Credentials contains the cloud provider credential key-value pairs (required)

forceUpdate
boolean

ForceUpdate overwrites existing vault credentials if true

provider
required
string
Enum: "aws" "azure" "gcp"

Provider is the cloud provider (required). One of: aws, gcp.

region
required
string

Region is the cloud region (required)

Responses

Request samples

Content type
application/json
{
  • "accountId": "string",
  • "bucketName": "string",
  • "clusterName": "string",
  • "credentials": {
    },
  • "forceUpdate": true,
  • "provider": "aws",
  • "region": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete self-hosted cluster credentials

Removes stored credentials for a self-hosted cluster from the platform vault

Authorizations:
AdminAuth
query Parameters
clusterName
required
string

Cluster name

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get self-hosted credential vault status

Returns the status of stored credentials for a self-hosted cluster

Authorizations:
AdminAuth
query Parameters
clusterName
required
string

Cluster name

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Clusters

List all clusters for your organization

Retrieves a list of all Kubernetes clusters managed by the platform

query Parameters
providerId
string

Cloud Provider ID (e.g., aws, gcp)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Deploy a new Kubernetes cluster

Deploys a new Kubernetes cluster with the specified configuration. Accepts both new format (apiVersion/kind/spec) and legacy flat format for backward compatibility. Use ?dryRun=true to validate without creating.

query Parameters
dryRun
boolean

When true, validates the configuration without creating the cluster

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Cluster deployment configuration

apiVersion
required
string

APIVersion is the API version (required, must be "platform.astropulse.io/v1")

kind
required
string

Kind is the resource kind (required, must be "K8sCluster")

required
object

Spec is the cluster creation specification (required)

Responses

Request samples

Content type
application/json
{
  • "apiVersion": "string",
  • "kind": "string",
  • "spec": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete a Kubernetes cluster

Permanently removes the cluster and all associated cloud resources. Registered (agent-based) clusters must use the unregister endpoint instead.

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json

Optional credentials for cluster deletion

required
object

Data contains credential key-value pairs. Required for static credentials; may be empty for dynamic credentials.

type
required
string
Enum: "static" "dynamic" "vault"

Type is the credential method: "static" for explicit access keys, "dynamic" for cloud provider role-based authentication

Responses

Request samples

Content type
application/json
{
  • "data": {
    },
  • "type": "static"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get cluster details

Retrieves detailed information about a specific Kubernetes cluster

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Update cluster configuration

Updates an existing Kubernetes cluster configuration including Kubernetes version, node groups, and tags. The platform automatically selects the optimal update strategy based on the provider and what is changing. Use allowDowngrade=true for rollback operations. Dry-run and generate-report requests always return 200 with validation details; clients inspect validationPassed and preflightChecks to determine if the operation is blocked.

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Cluster update configuration

apiVersion
required
string

APIVersion is the API version (required, must be "platform.astropulse.io/v1")

kind
required
string

Kind is the resource kind (required, must be "K8sClusterUpdate")

required
object

Spec is the update specification (required)

Responses

Request samples

Content type
application/json
{
  • "apiVersion": "string",
  • "kind": "string",
  • "spec": {
    }
}

Response samples

Content type
application/json
{
  • "clusterId": "string",
  • "errors": [
    ],
  • "message": "string",
  • "status": "PROVISIONING",
  • "upgradePlan": {
    },
  • "upgradeReport": {
    },
  • "validationPassed": true,
  • "warnings": [
    ]
}

Unregister an agent from a cluster

Removes the agent from a registered cluster. Default: full cleanup. With agent-only=true: only tombstone.

path Parameters
clusterId
required
string

Cluster ID

query Parameters
agent-only
boolean
Default: false

Only tombstone agent, keep cluster record

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get agent status for a cluster

Returns agent connection status and registration progress. Use operationId query param during in-flight registration.

path Parameters
clusterId
required
string

Cluster name

query Parameters
operationId
string

Operation ID for in-flight registration polling

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Register an agent on a cluster

Registers an agent-based tunnel on a Kubernetes cluster. Works with any cluster type.

path Parameters
clusterId
required
string

Cluster name

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Cluster registration configuration

architecture
string
Enum: "amd64" "arm64"

architecture specifies cluster architecture. Defaults to amd64 when omitted.

clusterName
string

clusterName is the cluster name. Set from the URL path param — ignored if provided in body.

dryRun
boolean

dryRun generates the agent manifest without persisting the cluster or waiting for agent connection.

kubernetesVersion
string

kubernetesVersion is optional. If omitted, it is detected from the cluster.

provisioner
string

provisioner is set automatically by the server — ignored if provided in the request body.

object

provisionerConfig holds provisioner-specific settings (reserved for future use).

region
string

region is the cloud region where the cluster is located. Auto-detected when possible.

Responses

Request samples

Content type
application/json
{
  • "architecture": "amd64",
  • "clusterName": "string",
  • "dryRun": true,
  • "kubernetesVersion": "string",
  • "provisioner": "string",
  • "provisionerConfig": {
    },
  • "region": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Sync cluster authentication configuration

Re-synchronizes internal authentication configuration for a specific cluster to fix missing certificates or connectivity issues

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": "string",
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Cancel an in-progress cluster operation

Cancels a running cluster operation (deploy, update, delete) by sending a terminate signal

path Parameters
clusterId
required
string

Cluster ID or name

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get cluster kubeconfig

Returns the kubeconfig for the cluster. Returns 202 Accepted while generation is in progress (self-managed clusters), or 200 with the config when ready.

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Generate kubeconfig for a cluster

Initiates kubeconfig generation for the cluster. Managed cloud clusters (EKS, GKE, AKS) return the config immediately; self-managed clusters return 202 and require polling via GET.

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Kubeconfig generation request

clusterName
required
string [ 1 .. 50 ] characters

ClusterName is the cluster name (required, 1-50 characters, valid DNS name)

required
object

Credentials holds the cloud provider authentication credentials (required)

duration
required
integer <int64>
Enum: -9223372036854776000 9223372036854776000 1 1000 1000000 1000000000 60000000000 3600000000000

Duration is the validity period for the kubeconfig (required, Go duration format e.g. "1h", "30m", "24h")

Responses

Request samples

Content type
application/json
{
  • "clusterName": "string",
  • "credentials": {
    },
  • "duration": -9223372036854776000
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get cluster operation history

Returns historical operations for the cluster. If the cluster record no longer exists, pass provider, provisionerType, accountId, and region as query parameters to look up by storage location.

path Parameters
clusterId
required
string

Cluster ID (cluster name)

query Parameters
limit
integer
Default: 100

Maximum number of operations to return

pageToken
string

Page token for pagination

provider
string

Cloud provider: aws, gcp, azure (required if cluster not found)

provisionerType
string

Provisioner type: selfmanaged, eks, gke, aks (required if cluster not found)

accountId
string

Cloud account ID (required if cluster not found)

region
string

Cloud region (required if cluster not found)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get cluster progress

Returns progress details for the most recent or specified cluster operation. Pass operationId to target a specific operation.

path Parameters
clusterId
required
string

Cluster ID

query Parameters
operationId
string

Operation ID to get progress for (optional)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Stream cluster progress via WebSocket

Opens a WebSocket connection and streams live progress events for an in-progress cluster operation. Use operationId to target a specific run.

path Parameters
clusterId
required
string

Cluster ID

query Parameters
operationId
string

Operation ID to stream progress for (optional)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
"string"

Get cluster specification

Retrieves the original specification used to create the cluster

path Parameters
clusterId
required
string

Cluster ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Request cluster operation approval

Submits an approve or reject decision for a pending cluster operation. Requires an Auth0 session with org-owner role.

query Parameters
clusterName
required
string

Name of the cluster

orgId
required
string

Organization ID

token
required
string

Approval token

action
required
string

Action to perform (APPROVE/REJECT)

Responses

Response samples

Content type
application/json
{
  • "data": "string",
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List cluster progress for all clusters

Returns paginated progress records across all clusters in the organization, filterable by operation type and status.

query Parameters
operationType
string

Operation type filter

status
string

Status filter

limit
integer

Limit number of results

pageToken
string

Page token for pagination

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Integrations

Process GitHub App installation callback

Handles the OAuth redirect from GitHub after a user authorizes the GitHub App installation, persisting the installation ID for the organization.

query Parameters
installation_id
required
string

GitHub Installation ID

setup_action
required
string

Setup Action

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List GitHub installations

Returns all GitHub App installations linked to the organization, including account login, type, and sync status.

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete GitHub installation

Removes the GitHub App installation record from the organization and revokes any stored deployment credentials. The installation remains active on GitHub.

path Parameters
installation_id
required
string

Installation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get a specific GitHub installation

Returns account details, permissions, and sync status for the specified GitHub App installation.

path Parameters
installation_id
required
string

Installation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Map GitHub installation to organization

Links an existing GitHub App installation (from another organization or a personal account) to the current organization, enabling repository access.

path Parameters
installation_id
required
string

Installation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List repositories for a GitHub installation

Returns all repositories the GitHub App installation has been granted access to, filtered by the specified installation ID.

path Parameters
installation_id
required
string

Installation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Generate installation token

Returns a short-lived GitHub App installation access token scoped to the given installation. Use this token to make authenticated GitHub API calls on behalf of the installation.

path Parameters
installation_id
required
string

Installation ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Detect and sync GitHub installations

Detects GitHub App installations and cross-references with local records. Returns linked (already mapped) and available (on GitHub but not mapped) installations. With refresh=true, re-verifies linked installations and re-creates deployment credentials.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json

Options: refresh (bool)

property name*
additional property
boolean

Responses

Request samples

Content type
application/json
{
  • "property1": true,
  • "property2": true
}

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Generate repository token

Returns a short-lived access token scoped to a single repository. Intended for CI/CD systems that need read access to deploy configuration files.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Repository information

property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List repository branches

Returns all branch names in the specified GitHub repository, useful for populating branch selectors in deployment workflows.

query Parameters
repoUrl
required
string

Repository URL

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Browse repository content

Returns file and directory entries for the given path in the repository. Defaults to the repository root if no path is specified.

query Parameters
repoUrl
required
string

Repository URL

branch
string

Branch name (defaults to default branch)

path
string

Path within repository (defaults to root)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get file content

Returns the decoded content of a file at the specified path and ref. Supports YAML, JSON, and plain text files up to GitHub's API size limit.

query Parameters
repoUrl
required
string

Repository URL

branch
string

Branch name (defaults to main)

filePath
required
string

File path within repository

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Validate file path in a GitHub repository

Verifies that a file or directory at the given path exists in the repository. Returns the content type (file or directory) and metadata if found.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Repository and path information

property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Response samples

Content type
application/json
{
  • "data": { },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Notifications

Get available channels

Returns the supported notification delivery channels (e.g., email, slack) that can be configured for the organization.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List notification integrations

Returns all configured notification delivery integrations (e.g., email, Slack) for the organization.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Configure notification integration

Saves the delivery channel configuration (e.g., Slack webhook URL or email recipients) for the organization, replacing any existing settings for that channel type.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Request Body schema: application/json
required

Integration configuration

channel
string (models.NotificationChannelType)
Enum: "email" "slack"
object (models.NotificationIntegrationConfigInput)
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "channel": "email",
  • "config": {
    },
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete notification integration

Removes the notification delivery integration for the specified channel. Existing subscriptions using this channel will no longer deliver notifications.

Authorizations:
AdminAuth
path Parameters
channel
required
string

Channel type (email, slack)

header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": true,
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get specific notification integration

Returns the configuration for the specified notification delivery channel (email or slack).

Authorizations:
AdminAuth
path Parameters
channel
required
string

Channel type (email, slack)

header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List notification subscriptions

Returns all configured notification subscriptions for the organization, including topics and delivery channels.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Create or update notification subscription

Saves the notification subscription for the given topic, replacing any existing configuration. At least one delivery channel is required.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Request Body schema: application/json
required

Subscription configuration

channels
Array of strings (models.NotificationChannelType)
Items Enum: "email" "slack"
enabled
boolean
topic
string

Responses

Request samples

Content type
application/json
{
  • "channels": [
    ],
  • "enabled": true,
  • "topic": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Delete notification subscription

Removes the notification subscription for the given topic. The organization will no longer receive alerts for this event type.

Authorizations:
AdminAuth
path Parameters
topic
required
string

Notification topic

header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": true,
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get specific notification subscription

Returns the notification subscription configuration for the specified event topic, including its enabled channels.

Authorizations:
AdminAuth
path Parameters
topic
required
string

Notification topic

header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get available notification topics

Returns the set of event topics (e.g., cluster.failed, app.deployed) that can be subscribed to for notifications.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Unsubscribe from notifications

Processes an unsubscribe link click, disabling the specified notification subscription for the organization associated with the unsubscribe token.

Authorizations:
AdminAuth
header Parameters
X-Astro-API-Key
string

APIKey

Authorization
string

Auth0 Bearer token

X-Astro-Organization-ID
required
string

Organization ID

Request Body schema: application/json
required

Unsubscribe request

channel
string

channel is the optional notification channel to unsubscribe from If not specified, unsubscribes from all channels for the topic

topic
required
string

topic is the notification topic to unsubscribe from

Responses

Request samples

Content type
application/json
{
  • "channel": "string",
  • "topic": "string"
}

Response samples

Content type
application/json
{
  • "data": true,
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Organizations

List organizations for a user

Get a list of organizations associated with the authenticated user

query Parameters
page
integer

Page number for pagination

pageSize
integer

Number of items per page

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Create an organization

Create a new organization and provision its associated resources. The authenticated user becomes the organization admin. Organization names must be unique.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

organization request

name
required
string [ 1 .. 50 ] characters

Name is the organization name (required, 1-50 characters, valid DNS name). Must be unique. Format: lowercase alphanumeric and hyphens, must start with a letter.

title
string

Title is a human-readable display title for the organization (optional)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get organization by ID

Returns full organization details including name, plan, member count, and provisioning status.

path Parameters
id
required
string

Organization ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get organization members

Get all members of an organization with pagination

path Parameters
id
required
string

Organization ID

query Parameters
page
integer

Page number (default: 1)

pageSize
integer

Items per page (default: 10)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get organization plan

Get the current subscription plan for an organization

path Parameters
id
required
string

Organization ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": "string",
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Add user to organization

Add a user to an organization with specified role

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

User details and role

orgId
required
string

OrgId is the organization identifier (required, UUID format)

role
required
string
Enum: "viewer" "editor" "admin"

Role is the organization role to assign (required). One of: viewer, editor, admin.

userId
required
string

UserId is the user identifier (required, UUID format)

Responses

Request samples

Content type
application/json
{
  • "orgId": "string",
  • "role": "viewer",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get available plans

Get all available subscription plans

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Remove user from organization

Removes the specified user from the organization. The last admin cannot be removed.

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

User details

orgId
required
string

OrgId is the organization identifier (required, UUID format)

userId
required
string

UserId is the user identifier (required, UUID format)

Responses

Request samples

Content type
application/json
{
  • "orgId": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "data": "string",
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get organization roles

Returns the list of roles that can be assigned to organization members (e.g. admin, member).

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Pricing

Get complete pricing data

Returns all active pricing plans and categories. No authentication required.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

CloudProvider

List supported providers

Returns the list of cloud providers available for cluster provisioning on this platform.

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List available regions for a provider

Returns all regions supported for cluster deployment with the given cloud provider.

path Parameters
providerId
required
string

Provider ID (e.g., aws, gcp, azure)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List available machine types

Lists all available machine types for the specified provider, region, and zone

path Parameters
providerId
required
string

Provider ID (e.g., aws, gcp, azure)

regionId
required
string

Region ID

zoneId
required
string

Zone ID

query Parameters
cpuMin
string

Minimum CPU requirement (e.g., '1', '500m')

cpuMax
string

Maximum CPU requirement (e.g., '4', '2000m')

memMin
string

Minimum memory requirement (e.g., '1Gi', '512Mi')

memMax
string

Maximum memory requirement (e.g., '8Gi', '4Gi')

category
string
Enum: "GeneralPurpose" "ComputeOptimized" "MemoryOptimized" "AcceleratorOptimized" "GPU"

Machine type category

architecture
string
Enum: "x86_64" "arm64"

CPU architecture

zoneId
string

Zone ID (if not specified, first available zone will be used)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get machine type details

Get detailed information about a specific machine type

path Parameters
providerId
required
string

Provider ID (e.g., aws, gcp, azure)

regionId
required
string

Region name

machinetypeId
required
string

Machine type name

query Parameters
zoneId
string

Zone ID (if not specified, first available zone will be used)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

List available zones for a region

Lists all available zones for the specified region in a cloud provider

path Parameters
providerId
required
string

Provider ID (e.g., aws, gcp, azure)

regionId
required
string

Region ID

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

UserProfiles

Switch current organization

Sets the user's active organization so subsequent API calls default to that organization's scope. The user must be a member of the target organization.

Request Body schema: application/json
required

Organization to switch to

orgId
required
string

Responses

Request samples

Content type
application/json
{
  • "orgId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Get current user profile

Returns the authenticated user's profile, organization memberships, roles, and active organization context.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}

Create a new user profile

Creates a platform profile for the authenticated user if one does not yet exist, or returns the existing profile. Called automatically after first login.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "id": "string",
  • "message": "string",
  • "status": "string"
}