Skip to content

Open endpoints

Public endpoints under /open/*. No authentication required. They are rate-limited per IP, so please do not use the status page as a heartbeat monitor with a one-second interval.

Config options

http
GET /open/config-options

Returns everything the console needs to build the "create a pod" and "create a network" forms: the workloads, sizes, regions, and schedule choices. If you are building your own UI or picking values for an API call, start here so you never hardcode a name that later changes.

Response keys:

KeyWhat it is
podOptionsWorkloads you can run: Ubuntu (instance) and MySQL (database), each with its selectable versions, default username, and type
computeOptionsCompute sizes (name, cpu, ramInMb, description)
storageOptionsStorage sizes (name, sizeInGb)
serversRegions you can deploy into (id, region, name) - the id is what you pass as serverId
emailServersMail servers available for email hosting
scheduleOptionsAuto-schedule choices for snapshots and backups

Response (abridged):

json
{
  "podOptions": [
    { "name": "ubuntu", "type": "instance", "username": "ubuntu", "versions": ["22.04", "24.04"] },
    { "name": "mysql",  "type": "database", "username": "root",   "versions": ["5.7", "8.0"] }
  ],
  "computeOptions": [
    { "name": "tiny",   "cpu": 1, "ramInMb":  512, "description": "1 vCPU, 0.5GB RAM" },
    { "name": "small",  "cpu": 1, "ramInMb": 1024, "description": "1 vCPU, 1GB RAM" },
    { "name": "medium", "cpu": 1, "ramInMb": 2048, "description": "1 vCPU, 2GB RAM" }
  ],
  "storageOptions": [
    { "name": "tiny",   "sizeInGb":  5 },
    { "name": "small",  "sizeInGb": 10 },
    { "name": "medium", "sizeInGb": 20 },
    { "name": "large",  "sizeInGb": 40 }
  ],
  "servers": [
    { "id": "srv_...", "region": "eu-west", "name": "Amsterdam" }
  ],
  "scheduleOptions": [
    { "value": "",        "label": "Disabled" },
    { "value": "daily",   "label": "Every day at 3:00 AM UTC" },
    { "value": "weekly",  "label": "Every Sunday at 3:00 AM UTC" },
    { "value": "monthly", "label": "On the 1st of every month at 3:00 AM UTC" }
  ]
}

Each compute and storage option also carries an hourlyRate field - the current hourly rate the console uses to price it. For the authoritative numbers, see the pricing page.

Health

http
GET /open/health
json
{ "status": "ok" }

A liveness check. If this returns anything other than 200, it is us, not you.

Platform status

http
GET /open/status

Returns the public platform status shown at the status page: an overall state and a per-component breakdown. Handy if you want to surface our status inside your own dashboard.

Email unsubscribe

http
GET  /open/unsubscribe/:sessionId
POST /open/unsubscribe/:sessionId

Backs the one-click unsubscribe link in mail sent through MicroApps. The :sessionId is the signed token from the message's List-Unsubscribe header, so there is nothing to construct by hand. A forged or expired token returns 400.

Built for the long tail.