Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

API Quickstart

Authenticate and make your first API calls.

Generate a Bearer token from the portal under Profile → API Tokens. Every request uses the base URL https://api.zcp.zsoftly.ca/api and sends the token in the Authorization header.

The example below authenticates and lists your virtual machines. Pick your language and replace your-token with your API token.

curl -s "https://api.zcp.zsoftly.ca/api/virtual-machines" \
-H "Authorization: Bearer your-token" \
-H "Accept: application/json" | jq '.data'

Slugs for project, region, template, plan, and networks come from the corresponding list endpoints (/projects, /regions, /templates, /plans/service/compute, /networks). See the Cloud Platform API reference for the full request schema.

curl -s -X POST "https://api.zcp.zsoftly.ca/api/virtual-machines" \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "my-server",
"project": "default",
"region": "yow",
"boot_source": "template",
"template": "ubuntu-24-04",
"plan": "ci1xs",
"network_type": "public",
"networks": ["my-public-network"],
"is_public": true,
"billing_cycle": "hourly",
"hostname": "my-server"
}' | jq '.data'

VM lifecycle actions use the VM slug and the action name, one of start, stop, reboot, or reset.

curl -s -X PUT "https://api.zcp.zsoftly.ca/api/virtual-machines/my-server/stop" \
-H "Authorization: Bearer your-token" \
-H "Accept: application/json" | jq '.message'

The official Terraform / OpenTofu provider manages virtual machines, networks, Kubernetes, DNS, storage, and more, declaratively. Find it as zsoftly/zcp on the Terraform Registry and the OpenTofu registry. Start with the Terraform / OpenTofu tutorial.

The complete interactive API reference is available as Swagger UI:

See also: Authentication, API Reference