Skip to content
Open console

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. See the Terraform and OpenTofu provider guide.

The complete interactive API reference is available as Swagger UI:

See also: Authentication, API Reference

Ask the ZCP docs

Type a question and pick an assistant. The assistant opens in a new tab and reads this page and the full ZCP documentation, so its answer comes from our docs.

Example questions

Ask with

Your question goes to the assistant you pick, under its own terms.