The Raff public API is currently in Beta (v1.0.0). The endpoint surface is stable; minor backward-compatible changes may land before GA. Track them in the Changelog.
Catalog
7 endpoints — regions, OS templates, and pricing for VMs, volumes, snapshots, backups, and IPs. No auth required.
Projects
5 endpoints — create and manage projects to scope resources.
Virtual Machines
23 endpoints — VM lifecycle, power, resize, tags, and notes.
Networking
24 endpoints — VPCs, floating IPs, firewalls, and VM network attachments.
Volumes
7 endpoints — block storage CRUD, attach, detach, resize.
Snapshots
6 endpoints — VM and volume snapshots, restore, rename.
Backups
5 endpoints — on-demand backup CRUD plus restore.
Backup Schedules
5 endpoints — daily and weekly backup schedules with retention.
SSH Keys
5 endpoints — account-level SSH keys for VM provisioning.
Members
5 endpoints — invite, list, update, remove account members.
Project Members
5 endpoints — same shape, scoped to a project.
Roles
5 endpoints — system + custom roles bundling permissions.
Permissions
1 endpoint — full permission catalog used by roles.
API Keys
6 endpoints — create, list, rotate API keys for automation.
Invitations
3 endpoints — send and cancel email invitations.
Conventions
Every endpoint shares the same auth, header, and response conventions:- Auth:
X-API-Keyheader on all endpoints except/api/v1/public/*(catalog) and/health. - Project scope: mutating endpoints require
X-Project-ID(header). List endpoints accept it optionally to filter to a single project. - Pagination: list endpoints support
?limit=and?offset=. - Response envelope:
{success: true, data: ..., total: ...}for lists,{success: true, data: ...}for single resources. - Errors:
{error: "...", message: "..."}on 4xx and 5xx. Common statuses: 400 / 401 / 402 / 403 / 404 / 409 / 429.