Skip to content
Live $300 credit for new accounts Valid for 60 days from account creation 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": "my-project",
"region": "yow",
"boot_source": "template",
"template": "ubuntu-24-04",
"plan": "general-1vcpu-1gb",
"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 complete interactive API reference is available as Swagger UI:

See also: Authentication, API Reference