Postgres Clusters

Create Postgres Cluster

Changed on

Create a Managed Postgres cluster for the organization named in the request body. Provisioning is asynchronous: poll GET /v1/postgres/{id} until status == ready before calling database, user, extension, or credential endpoints.

post/v1/postgres

Request

  • Base URL
    https://api.machines.dev
  • URL
    https://api.machines.dev/v1/postgres
  • Auth
    HTTP bearer

Request body

disk_size_gbinteger

Disk size in gigabytes.

namestring

Name for the cluster. A name is generated when omitted.

org_slugstring required

Slug of the organization that will own the cluster, or "personal" for the caller's personal organization.

pg_major_version'16' | '17'

Postgres major version.

plan'basic' | 'starter' | 'launch' | 'scale' | 'Performance' required

Plan slug selecting CPU, memory, and disk sizing. Matched case-insensitively.

pool_mode'session' | 'transaction'

Connection pooler mode.

postgis_enabledboolean

Enable PostGIS support, required to later enable PostGIS extensions.

regionstring required

Fly region code where the cluster's primary runs.

Example request

{
  "disk_size_gb": 10,
  "org_slug": "my-org",
  "pg_major_version": "17",
  "plan": "basic",
  "pool_mode": "transaction",
  "region": "iad"
}

Response

Cluster accepted for provisioning

Example response

{
  "data": {
    "cpu_kind": "shared",
    "cpus": 2,
    "disk_size_gb": 10,
    "memory_mb": 1024,
    "pg_major_version": "17",
    "plan": "basic",
    "region": "iad",
    "replicas": 1,
    "status": "ready",
    "storage_provisioned_bytes": 10737418240,
    "storage_used_bytes": 5368709120
  }
}

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      the endpoint scheme security FlyBearerAuth was removed from the API