Projects
/projects
Create and manage isolated project namespaces that scope billing, quotas, and resources.
-
GET
/projects
List all projects for the authenticated account
-
POST
/projects
Create a new project
-
PATCH
/projects/{'{'}id{'}'}
Update project name or metadata
-
DELETE
/projects/{'{'}id{'}'}
Permanently delete a project and its resources
View example & notes
Request
POST /projects
{'{'}
"name": "payments-prod",
"region": "us-east-1"
{'}'}
Response 201
{'{'}
"id": "proj_8k2n",
"name": "payments-prod",
"status": "active"
{'}'}
Note: project names must be unique per account. Deletes are asynchronous and return 202 Accepted.
Compute Instances
/instances
Provision, inspect, and terminate virtual compute instances within a project.
-
GET
/instances
List instances with optional status filter
-
POST
/instances
Launch a new instance from an image
-
GET
/instances/{'{'}id{'}'}
Retrieve instance status and metadata
-
DELETE
/instances/{'{'}id{'}'}
Terminate an instance
View example & notes
Request
POST /instances
{'{'}
"image": "ubuntu-22-04",
"size": "standard-2"
{'}'}
Response 202
{'{'}
"id": "inst_5q1z",
"status": "provisioning"
{'}'}
Note: instance creation is rate-limited to 20 requests/min per project. Poll the instance resource for provisioning state.
Storage Buckets
/storage/buckets
Object storage containers with configurable access policies and lifecycle rules.
-
GET
/storage/buckets
List buckets in the current project
-
POST
/storage/buckets
Create a bucket with a region and access policy
-
PUT
/storage/buckets/{'{'}name{'}'}/policy
Replace the bucket's access policy
View example & notes
Request
POST /storage/buckets
{'{'}
"name": "assets-eu",
"region": "eu-west-1",
"access": "private"
{'}'}
Response 201
{'{'}
"name": "assets-eu",
"created_at": "2026-07-07T10:00:00Z"
{'}'}
Note: bucket names are globally unique across all accounts and cannot be renamed after creation.
Webhooks
/webhooks
Subscribe to asynchronous platform events such as instance state changes and billing alerts.
-
GET
/webhooks
List configured webhook subscriptions
-
POST
/webhooks
Register a new webhook endpoint and event types
-
DELETE
/webhooks/{'{'}id{'}'}
Remove a webhook subscription
View example & notes
Request
POST /webhooks
{'{'}
"url": "https://app.example.com/hooks",
"events": ["instance.ready"]
{'}'}
Response 201
{'{'}
"id": "whk_29fa",
"secret": "whsec_***"
{'}'}
Note: payloads are signed with HMAC-SHA256; verify the X-Signature header before processing.