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

List all API keys for a user. The API keys can be used to authenticate the requests to the Astro Platform API. 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.

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,
  • "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

Get details of a specific API key by its ID. 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

Revoke an API key for an organization. The API key will be marked as revoked but not deleted. 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

Get metadata about API keys for a user in an organization, including counts of active, expired, and revoked keys. 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

Validate an API key and return its status. This can be used to check if an API key is valid. 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

List all applications within an 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

Delete an application

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 ArgoCD 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

Force resync an application via app-service

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

Retrieves the original request specification used to create the application for upgrade workflows

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

Stream application status

path Parameters
appId
required
string

Application Id

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Deploy an application

Deploy an application

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Application deployment data

object

externalAccess if not configured, it will default to Ingress and the None option is only vaild for the source type helm/repository

name
required
string [ 1 .. 50 ] characters

name is the name of the application. Every application name should be unique within the organization.

namespace
string <= 63 characters

namespace specifies the namespace to deploy the application. If not specified, the platform will create namespace based on the application name.

profileName
required
string [ 1 .. 50 ] characters

profileName is the name of the application profile. Once set, it is immutable.

required
object

source defines the source from where the artifact will be fetched, once set, it is immutable.

syncType
string
Enum: "auto" "manual"

syncType defines if the application should be auto-synced or not. The values can be either "auto" or "manual". The default value is "auto". Only use manual for testing purposes on the 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
{
  • "body": {
    }
}

ApplicationProfile

List application profiles

Retrieve application profiles for an organization

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

Create a new application profile for 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, defaults to 'Basic'.

object

cloudProvider is the cloud provider and region where the application will be deployed.

clusterName
string

clusterName is the name of the cluster. This takes the highest precedence over cloud provider.

profileName
required
string [ 1 .. 50 ] characters

profileName is the name of the profile, must be a valid DNS name. 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

Delete an application profile by profile name

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

Retrieve application profile by profile name

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

Delete multiple application profiles by their names

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": {
    }
}

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"
}

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

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

Cluster deployment configuration

approvalWorkflow
required
boolean

approvalWorkflow is the flag to enable the approval workflow for the cluster if the flag is set to true then notification field is required

clusterName
required
string [ 1 .. 50 ] characters

clusterName is the name of the cluster

required
object

clusterSpec is the spec for the cluster

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

provider is the cloud provider for the cluster

required
object

provisioner is the provisioner spec for the cluster

region
required
string non-empty

region is the region for the cluster

Responses

Request samples

Content type
application/json
{
  • "approvalWorkflow": true,
  • "clusterName": "string",
  • "clusterSpec": {
    },
  • "provider": "aws",
  • "provisioner": {
    },
  • "region": "string"
}

Response samples

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

Delete a Kubernetes cluster

Deletes a specific Kubernetes cluster and its associated resources

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 is the data for the credentials, the data is in the format of key-value pairs

type
required
string
Enum: "static" "dynamic"

type is the type of the credentials it expects, the supported types are static and dynamic if the type is static then platform aspects the standard ENV keys for cloud provider. Please follow the astro platform documentation for the keys. If the type is dynamic then the platform will use cloud provider supported capability to generate the credentials. Like for AWS it will use the STS assume role capability.

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"
}

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"
}

Get cluster kubeconfig

Retrieves the kubeconfig file for 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"
}

Generate kubeconfig for a cluster

Generates a new kubeconfig file for a specific Kubernetes cluster

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 name of the cluster

required
object

credentials maps to the cloud provider credentials

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

duration is the duration for which the kubeconfig is valid. The valid duration takes the pattern as 1h, 1m etc

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

Retrieve complete operation history for a specific cluster. If cluster not found in database, location parameters are required.

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

Retrieves the current progress status for a specific cluster 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

Establishes a WebSocket connection for real-time cluster progress updates. Upgrades HTTP to WebSocket and streams progress events in real-time.

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

Requests approval for a cluster operation (approve/reject)

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)

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

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

List cluster progress for all clusters

Lists progress for multiple clusters with filtering options

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

Receives installation callback from GitHub and processes it

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

Lists all GitHub App installations 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"
}

Delete GitHub installation

Unlinks a 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"
}

Get a specific GitHub installation

Retrieves details of a specific 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

Maps an existing GitHub installation to the current organization

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

Lists all repositories accessible via the 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"
}

Generate repository token

Generates a token for accessing a specific repository

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

List all branches in a GitHub repository

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

Browse files and directories in a GitHub repository

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

Get the raw content of a file from a GitHub repository

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

Checks if a file path exists in a GitHub repository

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

Gets the list of available notification channels

Responses

Response samples

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

List notification integrations

Gets all notification integrations for an 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

Creates or updates a notification integration configuration

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

Deletes a notification integration configuration

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

Gets a specific notification integration by type

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

Gets all notification subscriptions for an 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"
}

Create or update notification subscription

Creates or updates a notification subscription for an organization

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

Deletes a notification subscription for a specific topic

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

Gets a specific notification subscription by topic

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

Gets the list of available notification topics

Responses

Response samples

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

Unsubscribe from notifications

Handles unsubscribe requests for the authenticated user's organization

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 an organization. admin role is required to create an organization.

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 name of the organization. Every organization name should be unique. This must be a valid DNS name, and must be between 1 and 50 characters. This is a required field.

title
string

Title is the title of the organization.

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

Get organization details by ID

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 ID.

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

role is the organization role to assign to the user. If not provided, defaults to "viewer"

userId
required
string

userId is the user ID.

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

Remove a user from an organization

header Parameters
X-Astro-API-Key
required
string

APIKey

Request Body schema: application/json
required

User details

orgId
required
string

orgId is the organization ID.

userId
required
string

userId is the user ID.

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

Get available roles for an organization

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

Gets all pricing data including plans and categories for public use

Responses

Response samples

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

CloudProvider

List supported providers

Lists all supported cloud providers

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

Lists all available regions for the specified 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"
}

Provisioners

Get supported Kubernetes versions

Get the list of supported Kubernetes versions for a specific provisioner and cloud provider

Authorizations:
None
query Parameters
region
string

Cloud region (optional, uses default regions per provider)

provisionerType
required
string
Enum: "selfHosted" "eks"

Provisioner type

cloudProvider
required
string
Enum: "aws" "gcp"

Cloud provider

header Parameters
X-Astro-API-Key
required
string

APIKey

Responses

Response samples

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

UserProfiles

Get current user profile

Get the current user's profile information

Responses

Response samples

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

Create a new user profile

Create a new user profile with Auth0 user information

Responses

Response samples

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

Users

Get users by organization

Get a paginated list of users in an organization

path Parameters
orgId
required
string

Organization ID

query Parameters
page
integer

Page number (default: 1)

pageSize
integer

Items per page (default: 10)

Responses

Response samples

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

List all users

Get a paginated list of all users

query Parameters
page
integer

Page number (default: 1)

pageSize
integer

Items per page (default: 10)

Responses

Response samples

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

Delete user

Delete a user's profile

path Parameters
id
required
string

User ID

Responses

Response samples

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

Get user by ID

Get a user's details by their ID

path Parameters
id
required
string

User ID

Responses

Response samples

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

Update user

Update a user's profile information

path Parameters
id
required
string

User ID

Request Body schema: application/json
required

User update information

Roles
Array of strings
loginCount
integer
userId
string

Responses

Request samples

Content type
application/json
{
  • "Roles": [
    ],
  • "loginCount": 0,
  • "userId": "string"
}

Response samples

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