# Raff ## Docs - [Create API Key](https://docs.rafftechnologies.com/api-reference/api-keys/create-api-key.md): Create a new API key. The full secret is returned **once** in the `secret` field of the response — store it immediately. Subsequent reads only return the `key_prefix`. - [Get API Key](https://docs.rafftechnologies.com/api-reference/api-keys/get-api-key.md): Get an API key's metadata. The secret is never returned — only the prefix. - [List API Keys](https://docs.rafftechnologies.com/api-reference/api-keys/list-api-keys.md): List API keys belonging to the account. Only key prefixes are returned — full secrets are only shown once at create time. - [Regenerate API Key](https://docs.rafftechnologies.com/api-reference/api-keys/regenerate-api-key.md): Rotate an API key — issues a new secret value and immediately invalidates the previous secret. The key keeps its name, scope, role, and expiration. - [Revoke API Key](https://docs.rafftechnologies.com/api-reference/api-keys/revoke-api-key.md): Permanently revoke an API key. In-flight requests using this key fail with `401`. Cannot be undone. - [Update API Key](https://docs.rafftechnologies.com/api-reference/api-keys/update-api-key.md): Update an API key's name, expiry, rate-limit tier, or active flag. Permissions cannot be changed via this endpoint — change the role assigned to the key instead, or rotate to a new key. - [Create Backup](https://docs.rafftechnologies.com/api-reference/backups/create-backup.md): Create an on-demand backup of a VM. The backup is created asynchronously — the response returns immediately with a `pending` status. - [Delete Backup](https://docs.rafftechnologies.com/api-reference/backups/delete-backup.md): Permanently delete a backup. - [Get Backup](https://docs.rafftechnologies.com/api-reference/backups/get-backup.md): Get details of a specific backup. - [List Backups](https://docs.rafftechnologies.com/api-reference/backups/list-backups.md): List backups for the authenticated account. Filter by VM. - [Restore Backup](https://docs.rafftechnologies.com/api-reference/backups/restore-backup.md): Restore a VM from a backup. The restore runs asynchronously — the response returns immediately with a `pending` status. - [Create Backup Schedule](https://docs.rafftechnologies.com/api-reference/backups/schedules/create-backup-schedule.md): Create a recurring backup schedule for a VM. - [Delete Backup Schedule](https://docs.rafftechnologies.com/api-reference/backups/schedules/delete-backup-schedule.md): Delete a backup schedule. Existing backups created by this schedule are retained. - [Get Backup Schedule](https://docs.rafftechnologies.com/api-reference/backups/schedules/get-backup-schedule.md): Get details of a specific backup schedule. - [List Backup Schedules](https://docs.rafftechnologies.com/api-reference/backups/schedules/list-backup-schedules.md): List backup schedules for the authenticated account. Filter by VM. - [Update Backup Schedule](https://docs.rafftechnologies.com/api-reference/backups/schedules/update-backup-schedule.md): Update one or more fields on an existing backup schedule. Omitted fields are unchanged. - [Get Backup Pricing](https://docs.rafftechnologies.com/api-reference/catalog/list-backup-pricing.md): Returns backup storage pricing per GB. - [Get IP Pricing](https://docs.rafftechnologies.com/api-reference/catalog/list-ip-pricing.md): Returns pricing for IPv4 and IPv6 addresses. - [List Regions](https://docs.rafftechnologies.com/api-reference/catalog/list-regions.md): Returns all active data center regions. - [Get Snapshot Pricing](https://docs.rafftechnologies.com/api-reference/catalog/list-snapshot-pricing.md): Returns snapshot storage pricing per GB. - [List OS Templates](https://docs.rafftechnologies.com/api-reference/catalog/list-templates.md): Returns all public OS templates available for VM creation. Windows templates are only available for premium VM types. - [List VM Pricing](https://docs.rafftechnologies.com/api-reference/catalog/list-vm-pricing.md): Returns VM pricing plans. Use the plan `id` as `pricing_id` when creating a VM. - [Get Volume Pricing](https://docs.rafftechnologies.com/api-reference/catalog/list-volume-pricing.md): Returns block storage volume pricing per GB. - [Add tag to VM](https://docs.rafftechnologies.com/api-reference/endpoint/add-vm-tag.md): Attach a custom tag to a virtual machine. Tags help organize and filter resources. Returns the updated full tag list for the VM. - [Append to VM note](https://docs.rafftechnologies.com/api-reference/endpoint/append-vm-note.md): Append `content` to the existing note (separated by a newline). If no note exists yet for this scope, the new content becomes the entire note body. - [Attach firewall to VM NIC](https://docs.rafftechnologies.com/api-reference/endpoint/attach-vm-firewall.md): Attach a security group to a specific network interface on a VM. The security group's rules apply to inbound and outbound traffic on that NIC. - [Attach floating IP to VM](https://docs.rafftechnologies.com/api-reference/endpoint/attach-vm-ip.md): Attach a floating public IP to a virtual machine. Pick **one** of two modes: - [Attach VM to VPC](https://docs.rafftechnologies.com/api-reference/endpoint/attach-vm-to-vpc.md): Attach a virtual machine to a VPC. The VM gains a private network interface inside the VPC. - [Bulk Delete VMs](https://docs.rafftechnologies.com/api-reference/endpoint/bulk-delete-vms.md): Delete up to 50 virtual machines in a single request. - [Change reserved IP](https://docs.rafftechnologies.com/api-reference/endpoint/change-ip.md): Swap a reserved IP for a different one from the available pool. The subscription stays the same — no extra charge, no refund. Useful if the current IP is blacklisted somewhere. - [Create firewall](https://docs.rafftechnologies.com/api-reference/endpoint/create-firewall.md): Create a new security group with a set of inbound/outbound rules. - [Create VM](https://docs.rafftechnologies.com/api-reference/endpoint/create-vm.md): Create a new virtual machine with a chosen OS template, compute plan, and region. The VM is automatically assigned to a VPC for private networking. - [Create VPC](https://docs.rafftechnologies.com/api-reference/endpoint/create-vpc.md): Create a new virtual private cloud. Pick a `cidr` block that doesn't overlap with any of your existing VPCs. - [Delete firewall](https://docs.rafftechnologies.com/api-reference/endpoint/delete-firewall.md): Delete a security group. The group must not be attached to any VM NIC. Detach it first via `DELETE /api/v1/vms/{id}/security-groups/{sg_id}/{nic_id}`. - [Delete VM](https://docs.rafftechnologies.com/api-reference/endpoint/delete-vm.md): Permanently delete a virtual machine and release its resources. - [Delete VPC](https://docs.rafftechnologies.com/api-reference/endpoint/delete-vpc.md): Delete a VPC. The VPC must not have any VMs attached — detach them first via `DELETE /api/v1/vms/{id}/vpc/{nic_id}`. - [Detach firewall from VM NIC](https://docs.rafftechnologies.com/api-reference/endpoint/detach-vm-firewall.md): Remove a security group from a specific NIC on a VM. - [Detach VM from VPC](https://docs.rafftechnologies.com/api-reference/endpoint/detach-vm-from-vpc.md): Detach a VM's network interface from its VPC. Use the `nic_id` from `GET /api/v1/vms/{id}/networks` to identify the interface. - [Detach floating IP from VM](https://docs.rafftechnologies.com/api-reference/endpoint/detach-vm-ip.md): Detach a floating IP from a VM. The IP returns to your reserved pool (or is released, for auto-assigned IPs). Use the `nic_id` from `GET /api/v1/vms/{id}/networks`. - [Factory Reset VM](https://docs.rafftechnologies.com/api-reference/endpoint/factory-reset-vm.md): Factory reset a virtual machine to its original state. This will destroy all data on the VM and restore it to the original template. - [Get firewall](https://docs.rafftechnologies.com/api-reference/endpoint/get-firewall.md): Get details of a single security group, including its rules. - [Get floating IP](https://docs.rafftechnologies.com/api-reference/endpoint/get-ip.md): Get details of a single floating IP. - [Get VM](https://docs.rafftechnologies.com/api-reference/endpoint/get-vm.md): Get details of a specific virtual machine. - [Get VM notes](https://docs.rafftechnologies.com/api-reference/endpoint/get-vm-notes.md): Get the personal and account-shared notes attached to a VM. - [Get VPC](https://docs.rafftechnologies.com/api-reference/endpoint/get-vpc.md): Get details of a single VPC. The response wraps the core VPC fields under `data.vpc` and includes additional detail fields (`ip_range_start`, `ip_range_end`, `leases`) at the same level. - [Hard reboot VM](https://docs.rafftechnologies.com/api-reference/endpoint/hard-reboot-vm.md): Force an immediate power-off and restart of a virtual machine, **without** a graceful shutdown. - [List firewall templates](https://docs.rafftechnologies.com/api-reference/endpoint/list-firewall-templates.md): Pre-built security group templates customers can clone when creating a new group (e.g. "Web server", "SSH only", "Database"). Pass the chosen `id` as `template_id` on `POST /api/v1/security-groups`. - [List firewalls](https://docs.rafftechnologies.com/api-reference/endpoint/list-firewalls.md): List the account's security groups. Pass `X-Project-ID` to scope to one project, or omit it to list across all accessible projects. - [List floating IPs](https://docs.rafftechnologies.com/api-reference/endpoint/list-ips.md): List the account's floating (public) IP addresses, including reserved IPs and IPs currently attached to VMs. Filter to just reserved IPs with `?reserved=true`. - [List VM network interfaces](https://docs.rafftechnologies.com/api-reference/endpoint/list-vm-networks.md): List all network interfaces (NICs) attached to a virtual machine. Each NIC has a `nic_id` used when detaching from a VPC, IP, or security group. - [List VMs](https://docs.rafftechnologies.com/api-reference/endpoint/list-vms.md): List all virtual machines for the authenticated account. - [Suggest CIDR blocks for new VPCs](https://docs.rafftechnologies.com/api-reference/endpoint/list-vpc-cidr-suggestions.md): Returns suggested CIDR blocks that don't overlap with the account's existing VPCs. Use one of these as `cidr` when creating a new VPC. - [List VPCs](https://docs.rafftechnologies.com/api-reference/endpoint/list-vpcs.md): List virtual private clouds (VPCs). - [Reboot VM](https://docs.rafftechnologies.com/api-reference/endpoint/reboot-vm.md): Reboot a running virtual machine. - [Reinstall VM](https://docs.rafftechnologies.com/api-reference/endpoint/reinstall-vm.md): Reinstall a virtual machine with a new OS template. This will destroy all data on the VM. - [Release a reserved IP](https://docs.rafftechnologies.com/api-reference/endpoint/release-ip.md): Release a reserved IP back to the pool. - [Remove VM tag](https://docs.rafftechnologies.com/api-reference/endpoint/remove-vm-tag.md): Remove a tag from a VM. Returns the updated full tag list for the VM. - [Rename VM](https://docs.rafftechnologies.com/api-reference/endpoint/rename-vm.md): Rename a virtual machine. - [Reserve a floating IP](https://docs.rafftechnologies.com/api-reference/endpoint/reserve-ip.md): Reserve a floating public IP. The IP is allocated immediately and held for your account until you release it. - [Reset VM Password](https://docs.rafftechnologies.com/api-reference/endpoint/reset-vm-password.md): Reset the root/admin password of a virtual machine. The new password will be emailed to the account owner. - [Resize VM](https://docs.rafftechnologies.com/api-reference/endpoint/resize-vm.md): Resize a virtual machine's CPU and RAM by selecting a new pricing plan. The VM must be stopped before resizing. - [Resize VM Disk](https://docs.rafftechnologies.com/api-reference/endpoint/resize-vm-disk.md): Increase the primary disk of a virtual machine. The VM must be stopped. Disk size can only be increased. - [Save VM disk as custom image](https://docs.rafftechnologies.com/api-reference/endpoint/save-vm-disk-as-image.md): Save a VM's disk (live state or a snapshot) as a reusable custom OS image. The new image becomes available alongside the public OS templates and can be passed as `template_id` when creating a new VM. - [Start VM](https://docs.rafftechnologies.com/api-reference/endpoint/start-vm.md): Start a stopped virtual machine. - [Stop VM](https://docs.rafftechnologies.com/api-reference/endpoint/stop-vm.md): Stop a running virtual machine. The VM will retain its resources and can be started again. - [Update firewall](https://docs.rafftechnologies.com/api-reference/endpoint/update-firewall.md): Update a security group's name, description, or rules. Passing `rules` replaces the entire rule set — to add or remove a single rule, GET the current rules first, modify the array, then PUT the result. - [Update VM note](https://docs.rafftechnologies.com/api-reference/endpoint/update-vm-note.md): Replace an existing note's content. - [Update VM tag](https://docs.rafftechnologies.com/api-reference/endpoint/update-vm-tag.md): Update a tag's name or priority on a specific VM. Returns the updated full tag list for the VM. - [Update VPC](https://docs.rafftechnologies.com/api-reference/endpoint/update-vpc.md): Update a VPC's name or description. CIDR cannot be changed after creation. - [Upsert VM note](https://docs.rafftechnologies.com/api-reference/endpoint/upsert-vm-note.md): Create or fully replace the personal or account note on a VM. - [All Endpoints](https://docs.rafftechnologies.com/api-reference/endpoints.md): Every endpoint in the Raff REST API, grouped by category - [Cancel Invitation](https://docs.rafftechnologies.com/api-reference/invitations/cancel-invitation.md): Cancel a pending invitation. The accept link in the recipient's email becomes invalid. - [Create Account Invitation](https://docs.rafftechnologies.com/api-reference/invitations/create-account-invitation.md): Send an email invitation for someone to join the account with the given role. The recipient gets an email with an accept link. Until they accept, the invitation appears in [List Members](#tag/Members/operation/listMembers) with `status: pending`. - [Create Project Invitation](https://docs.rafftechnologies.com/api-reference/invitations/create-project-invitation.md): Send an email invitation for someone to join a specific project with the given role. The recipient gets an email with an accept link. - [Add Member](https://docs.rafftechnologies.com/api-reference/members/add-member.md): Add a new member to the account. There are three ways: - [Get Member](https://docs.rafftechnologies.com/api-reference/members/get-member.md): Get details of a specific account member. - [List Members](https://docs.rafftechnologies.com/api-reference/members/list-members.md): List all members of the authenticated account, including pending invitations. - [Remove Member](https://docs.rafftechnologies.com/api-reference/members/remove-member.md): Remove a member from the account. Account owners cannot be removed via this endpoint — transfer ownership first from the dashboard. - [Update Member](https://docs.rafftechnologies.com/api-reference/members/update-member.md): Update a member's role or status. Pass only the fields you want to change. - [List Permissions](https://docs.rafftechnologies.com/api-reference/permissions/list-permissions.md): List the full catalog of permission strings recognized by the role system. Use this to discover valid values for the `permissions` array on [Create Role](#tag/Roles/operation/createRole) and [Update Role](#tag/Roles/operation/updateRole). - [Add Project Member](https://docs.rafftechnologies.com/api-reference/project-members/add-project-member.md): Add an existing account member (or API key) to a project with a specific role. - [Get Project Member](https://docs.rafftechnologies.com/api-reference/project-members/get-project-member.md) - [List Project Members](https://docs.rafftechnologies.com/api-reference/project-members/list-project-members.md): List members of a specific project. - [Remove Project Member](https://docs.rafftechnologies.com/api-reference/project-members/remove-project-member.md): Remove a member from a project. The user remains an account member; only the project-scoped grant is revoked. - [Update Project Member](https://docs.rafftechnologies.com/api-reference/project-members/update-project-member.md): Change a project member's role or status. - [Create Project](https://docs.rafftechnologies.com/api-reference/projects/create-project.md): Create a new project within the authenticated account. - [Delete Project](https://docs.rafftechnologies.com/api-reference/projects/delete-project.md): Delete a project. The project must not contain any active resources. - [Get Project](https://docs.rafftechnologies.com/api-reference/projects/get-project.md): Get details of a specific project. - [List Projects](https://docs.rafftechnologies.com/api-reference/projects/list-projects.md): List all projects for the authenticated account. - [Update Project](https://docs.rafftechnologies.com/api-reference/projects/update-project.md): Update an existing project's settings. - [Create Role](https://docs.rafftechnologies.com/api-reference/roles/create-role.md): Create a custom role bundling a set of permissions at either account or project scope. - [Delete Role](https://docs.rafftechnologies.com/api-reference/roles/delete-role.md): Delete a custom role. The role must not be in use by any member or API key — reassign them first or deletion will fail. - [Get Role](https://docs.rafftechnologies.com/api-reference/roles/get-role.md) - [List Roles](https://docs.rafftechnologies.com/api-reference/roles/list-roles.md): List all roles available to the account — both **system roles** (e.g. `Owner`, `Admin`, `Member`, `Operator`) and any **custom roles** the account has defined. - [Update Role](https://docs.rafftechnologies.com/api-reference/roles/update-role.md): Update a custom role's name, description, or permission set. **System roles cannot be edited** — return `400 Bad Request`. - [Create Snapshot](https://docs.rafftechnologies.com/api-reference/snapshots/create-snapshot.md): Create a snapshot of a VM or a volume. - [Delete Snapshot](https://docs.rafftechnologies.com/api-reference/snapshots/delete-snapshot.md): Permanently delete a snapshot. - [Get Snapshot](https://docs.rafftechnologies.com/api-reference/snapshots/get-snapshot.md): Get details of a specific snapshot. - [List Snapshots](https://docs.rafftechnologies.com/api-reference/snapshots/list-snapshots.md): List snapshots for the authenticated account. Filter by VM, volume, or type. - [Rename Snapshot](https://docs.rafftechnologies.com/api-reference/snapshots/rename-snapshot.md): Rename a snapshot. Updates the display name only — does not affect the underlying disk image. - [Restore Snapshot](https://docs.rafftechnologies.com/api-reference/snapshots/restore-snapshot.md): Revert the source VM (or volume) to the state captured in this snapshot. - [Create SSH Key](https://docs.rafftechnologies.com/api-reference/ssh-keys/create-ssh-key.md): Add an SSH public key to your account. Pass the key on VM create via the `ssh_keys` array to enable key-based login. - [Delete SSH Key](https://docs.rafftechnologies.com/api-reference/ssh-keys/delete-ssh-key.md): Permanently delete an SSH key from your account. VMs that already have this key installed continue to accept it until the key is removed from the VM's `~/.ssh/authorized_keys`. - [Get SSH Key](https://docs.rafftechnologies.com/api-reference/ssh-keys/get-ssh-key.md): Get details of a specific SSH key. - [List SSH Keys](https://docs.rafftechnologies.com/api-reference/ssh-keys/list-ssh-keys.md): List SSH keys for the authenticated account. SSH keys are account-level — no project scoping. - [Update SSH Key](https://docs.rafftechnologies.com/api-reference/ssh-keys/update-ssh-key.md): Update an SSH key's display name. The public key itself cannot be changed — delete and recreate to rotate. - [Attach Volume](https://docs.rafftechnologies.com/api-reference/volumes/attach-volume.md): Attach a volume to a VM. The VM must be in the same region as the volume. A volume can only be attached to one VM at a time — detach it first if it's already attached elsewhere. - [Create Volume](https://docs.rafftechnologies.com/api-reference/volumes/create-volume.md): Create a new block storage volume. Volumes are created asynchronously — the response returns immediately with `pending` status. - [Delete Volume](https://docs.rafftechnologies.com/api-reference/volumes/delete-volume.md): Permanently delete a volume. The volume must be detached from any VM before deletion. - [Detach Volume](https://docs.rafftechnologies.com/api-reference/volumes/detach-volume.md): Detach a volume from its current VM. Unmount the filesystem inside the guest before calling this endpoint to avoid data corruption. - [Get Volume](https://docs.rafftechnologies.com/api-reference/volumes/get-volume.md): Get details of a specific volume. - [List Volumes](https://docs.rafftechnologies.com/api-reference/volumes/list-volumes.md): List volumes for the authenticated account. Filter by VM or region. - [Resize Volume](https://docs.rafftechnologies.com/api-reference/volumes/resize-volume.md): Increase the size of a block storage volume. Volume size can only be increased, never decreased. - [Authentication](https://docs.rafftechnologies.com/authentication.md): Authenticate with the Raff API — API keys, required headers, response shape, rate limits, and how to call the API from popular HTTP clients - [Create Your First VM](https://docs.rafftechnologies.com/guides/create-your-first-vm.md): Step-by-step guide to deploying a virtual machine on Raff - [Introduction](https://docs.rafftechnologies.com/introduction.md): Welcome to the Raff API documentation - [Account limits](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/account-limits.md): Per-account quotas that govern how many VMs and how much CPU/RAM you can run at once - [Authentication & access](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/authentication.md): How credentials and transports combine to let you reach a VM, and what to use when - [Billing model](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/billing-model.md): How money moves through your account — cards, balance, subscriptions, credits, and the rotation rule - [Custom images](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/custom-images.md): Save a VM's disk as a reusable template, then create new VMs from it - [Lifecycle states](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/lifecycle-states.md): How a VM moves through provisioning, running, stopped, and terminal states - [Monitoring & metrics](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/monitoring-and-metrics.md): How Raff measures VM health, what each graph means, and where to read live state - [OS templates](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/os-templates.md): The Linux distros, BSD, and Windows Server images Raff provides at VM creation, plus the marketplace one-click apps that install software on top - [Plans & sizing](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/plans-and-sizing.md): Two plan tiers (General Purpose / shared CPU and CPU Optimized / dedicated CPU), how to pick between them, and which size to start with for common workloads — web apps, databases, workers, dev/staging, Windows desktop, game servers - [Regions](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/regions.md): Where Raff VMs run today (us-east only) and how regional scope affects networking, IP allocation, and migration - [Snapshots vs Backups](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/snapshots-vs-backups.md): Both capture a VM's disk state, but they answer different needs — manual restore points vs scheduled protection. Both are deleted with the VM. - [Storage model](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/storage-model.md): How base disks, volumes, snapshots, backups, and custom images relate — and what survives what - [Tags & organization](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/tags-and-organization.md): How VM tags, priorities, and Group by Tag let you organize many VMs without losing your mind - [VM notes — My Notes & Team Notes](https://docs.rafftechnologies.com/products/build/virtual-machines/concepts/vm-notes.md): Two kinds of free-form notes attached to a VM, and who can see each - [Acceptable use](https://docs.rafftechnologies.com/products/build/virtual-machines/details/acceptable-use.md): What you can and can't run on a Raff VM, abuse handling, and how to report violations - [Features & limits](https://docs.rafftechnologies.com/products/build/virtual-machines/details/features-and-limits.md): Full feature list for Virtual Machines on the Raff Platform, plus account, VM, and platform limits - [Pricing](https://docs.rafftechnologies.com/products/build/virtual-machines/details/pricing.md): How Virtual Machines are billed on the Raff Platform — full per-plan rate tables for Standard and Premium tiers, subscription vs PAYG, billing-date alignment, and what's billed alongside the plan - [SLA](https://docs.rafftechnologies.com/products/build/virtual-machines/details/sla.md): Uptime commitment, service credit schedule, and how to claim for Virtual Machines on the Raff Platform - [Support](https://docs.rafftechnologies.com/products/build/virtual-machines/details/support.md): How to reach Raff support, response times, working hours, languages, and what we help with - [Overview](https://docs.rafftechnologies.com/products/build/virtual-machines/index.md): On-demand Linux and Windows server instances on the Raff Platform - [Connect via RDP](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/connect-via-rdp.md): Open a session to a Windows VM — in-browser VNC console or direct RDP from a desktop client - [Connect via SSH](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/connect-via-ssh.md): Open a session to a Linux VM — in-browser terminal, direct SSH, or VNC console fallback - [Create a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/create-a-vm.md): Launch a new virtual machine from the Raff Platform dashboard - [Create a snapshot](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/create-snapshot.md): Capture a point-in-time copy of a VM's OS disk or a volume's contents - [Delete a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/delete-vm.md): Permanently destroy a virtual machine, decide what to do with its volumes and VPCs, and credit unused subscription time back to your balance - [Enable backups](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/enable-backups.md): Run an instant backup, schedule recurring daily or weekly backups, and manage retention - [Factory reset](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/factory-reset.md): Reinstall the same OS on a VM with a clean disk while keeping volumes, snapshots, and backups - [Initial server setup (Linux)](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/initial-server-setup.md): Harden a fresh Linux VM in 10 minutes — non-root user, key-only SSH, firewall, automatic security updates - [Manage power](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/manage-power.md): Stop, start, and reboot virtual machines from the dashboard - [Open the browser console](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/open-browser-console.md): The "Console" button on every VM is a single entry point that picks the right in-browser session for the situation — an SSH-backed terminal for Linux, or a VNC graphical console for Windows and recovery scenarios. This page explains what each mode is, how the dashboard decides between them, and when… - [Recover a locked-out VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/recover-locked-vm.md): Get back into a VM when SSH, RDP, or the OS itself has stopped letting you in - [Reinstall a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/reinstall.md): Re-image a VM with a fresh OS template while keeping the IP, attached volumes, and specs - [Rename a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/rename.md): Change a virtual machine's display name - [Reset password](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/reset-password.md): Reset or recover the root or Administrator password on a virtual machine - [Resize a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/resize.md): Change CPU, RAM, or disk size on a virtual machine - [Transfer files to and from a VM](https://docs.rafftechnologies.com/products/build/virtual-machines/quickstart-guides/transfer-files.md): Move files to and from your Raff VM with SCP for one-shot copies, SFTP for interactive sessions, rsync for big trees, or a GUI client like FileZilla / WinSCP. Same SSH credentials you already use for shell access. - [Troubleshooting](https://docs.rafftechnologies.com/products/build/virtual-machines/troubleshooting.md): Common Virtual Machine issues and how to fix them - [Products](https://docs.rafftechnologies.com/products/index.md): Every product on the Raff Platform — Virtual Machines, Volumes, Object Storage, VPC, Public IPs, Firewall, Team & Projects — plus what's coming next. One platform, one bill, one API. - [API keys](https://docs.rafftechnologies.com/products/manage/team-projects/concepts/api-keys.md): How Raff API keys work — the role-based permission model, the raff_ token format, the create-once / show-once secret lifecycle, expiration, rotation, and the security practices that make leaked keys non-events - [Resource scoping](https://docs.rafftechnologies.com/products/manage/team-projects/concepts/projects-and-scoping.md): How projects scope resources, IDs, and API calls - [Roles, scopes, and the Owner](https://docs.rafftechnologies.com/products/manage/team-projects/concepts/roles-and-api-keys.md): How Raff splits access into Account-level and Project-level roles, why account-level grants don't include project-level visibility, what the seven prebuilt System roles do, and how to build Custom roles - [Permissions matrix](https://docs.rafftechnologies.com/products/manage/team-projects/details/permissions-matrix.md): The full list of System roles on Raff — three account-level (Admin, Billing, Member) and four project-level (Project Admin, Operator, Project Member, Viewer) — with every permission each one grants - [Overview](https://docs.rafftechnologies.com/products/manage/team-projects/index.md): Team & Projects on Raff — invite members, organize resources into projects, scope access at the account or per-project level, and assign roles - [Change or remove a member's role](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/change-role.md): Re-scope an existing member by changing their account role or any of their per-project roles, or remove a single grant entirely without removing the member from the account - [Create a project](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/create-a-project.md): Open the Projects tab, click + Create Project, name it, optionally describe it, and save — projects organize resources for access control and let you scope members to specific subsets of your fleet - [Edit or delete a project](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/delete-a-project.md): Open the project's row menu to rename it, change its description (Edit Project), or delete it — with the hard rule that the Default project can never be deleted - [Generate an API key](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/generate-api-key.md): Create an API key with the same Account / Project role model used for members — pick an Account Role, pick projects and a Project Role (skipped when Owner is chosen), set expiration, and copy the key once - [Invite a member](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/invite-member.md): Send an email invitation to add a new member at the Account or Project access level — and grant additional access from the member's row after they accept, without sending another invite - [Remove a member](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/remove-member.md): Permanently revoke a team member's access to the account — removes their account role, every project role they hold, and ends their dashboard sessions. API keys they created keep working until rotated separately. - [Rotate an API key](https://docs.rafftechnologies.com/products/manage/team-projects/quickstart-guides/rotate-api-key.md): Use the Regenerate action to issue a new key value with the same name, scope, and expiration — invalidating the old one — and roll your applications without downtime - [Troubleshooting](https://docs.rafftechnologies.com/products/manage/team-projects/troubleshooting.md): Common Team & Projects problems — invitation never arrived, role changes not taking effect, API keys still authenticating after a member leaves, the Owner question, lost-access recovery, and the rules behind permission denied errors - [Use Raff docs in your AI tools](https://docs.rafftechnologies.com/products/mcp.md): Plug Raff's full documentation into Claude, Cursor, and other MCP-enabled AI clients. The Model Context Protocol endpoint exposes search and page retrieval over Raff's docs so your AI assistant grounds its answers on real, current Raff content instead of guessing. - [Inbound vs outbound, layers, and rule format](https://docs.rafftechnologies.com/products/network/firewall/concepts/inbound-vs-outbound.md): How the Raff Firewall actually evaluates traffic — the two layers (system Default + your Groups), what a single rule looks like (protocol, direction, port, source IP), the formats Raff accepts, and the ports you cannot open - [Features & limits](https://docs.rafftechnologies.com/products/network/firewall/details/features-and-limits.md): Raff Firewall features, the system Default Firewall blocked-port list, custom Firewall Group rule formats, per-group limits, the 5 templates, and pricing - [Overview](https://docs.rafftechnologies.com/products/network/firewall/index.md): Stateful network firewall on Raff — every public interface gets the system Default Firewall automatically, and you can add your own Firewall Groups with custom inbound and outbound rules - [Add rules — port and IP formats by example](https://docs.rafftechnologies.com/products/network/firewall/quickstart-guides/add-rules.md): The exact formats Raff accepts for the Ports and Source IP fields, with copy-pasteable examples for the most common rules - [Attach a Firewall Group to a VM](https://docs.rafftechnologies.com/products/network/firewall/quickstart-guides/attach-to-vm.md): Two ways to attach a Firewall Group to a VM's public IP — from the group's row menu, or from the VM's Network tab — plus the mandatory reboot to make the rules take effect inside the guest - [Create a Firewall Group](https://docs.rafftechnologies.com/products/network/firewall/quickstart-guides/create-firewall-group.md): Walk the Create Firewall Group dialog — name, description, optional template, then build the inbound and outbound rule lists, save, and attach to a VM - [Delete a Firewall Group](https://docs.rafftechnologies.com/products/network/firewall/quickstart-guides/delete-firewall-group.md): Permanently remove a custom Firewall Group from the row menu — the action is blocked while VMs are attached, and any attached VMs need to be rebooted afterward - [Update rules in a Firewall Group](https://docs.rafftechnologies.com/products/network/firewall/quickstart-guides/update-rules.md): Open Edit Firewall Group from the row menu to change a group's name, description, inbound rules, or outbound rules — same dialog as Create, just prefilled with the existing rule set - [Troubleshooting](https://docs.rafftechnologies.com/products/network/firewall/troubleshooting.md): Common Firewall problems — rules saved but not applied (the reboot trap), Default-blocked ports rejected silently, port forwarding stops working after a group attach, locked-out-by-firewall recovery, save errors and rule-format gotchas - [Auto-assigned vs reserved IPs](https://docs.rafftechnologies.com/products/network/public-ips/concepts/reserved-vs-ephemeral.md): How the two public-IP lifecycles differ on Raff — what survives a detach, what survives a VM delete, when each one bills, and which to pick for stable addresses - [Features & limits](https://docs.rafftechnologies.com/products/network/public-ips/details/features-and-limits.md): Public IP features, IPv4/IPv6 support, pricing for auto-assigned and reserved IPs, regional pools, and per-VM and per-account limits - [Overview](https://docs.rafftechnologies.com/products/network/public-ips/index.md): Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6) - [Auto-assign a public IP](https://docs.rafftechnologies.com/products/network/public-ips/quickstart-guides/auto-assign.md): Give a VM that has no public IP a free address from the regional pool — IPv4 or IPv6, no commitment, returns to the pool when detached - [Manage public IPs from a VM](https://docs.rafftechnologies.com/products/network/public-ips/quickstart-guides/manage-from-vm.md): Every VM has a Network tab in its detail page where you can add, remove, or attach a Firewall to the VM's public IPv4 and IPv6 addresses, and connect the VM to a VPC - [Move a reserved IP between VMs](https://docs.rafftechnologies.com/products/network/public-ips/quickstart-guides/move-between-vms.md): Detach a reserved public IP from one VM, attach it to another, without changing the IP itself — useful for blue/green deploys, failover, and partner-whitelist preservation - [Release a public IP](https://docs.rafftechnologies.com/products/network/public-ips/quickstart-guides/release-ip.md): Stop billing on a reserved IP by releasing it back to the pool — irreversible, the IP becomes available for someone else to auto-assign or reserve - [Reserve a static IP](https://docs.rafftechnologies.com/products/network/public-ips/quickstart-guides/reserve-ip.md): Reserve a public IPv4 or IPv6 address that stays yours across VM rebuilds and detaches — $3/month, billed continuously, attach and detach freely - [Troubleshooting](https://docs.rafftechnologies.com/products/network/public-ips/troubleshooting.md): Common public-IP problems — auto-assign returning empty, IP not bound to interface, "billing keeps running" surprises, type mismatch, region pool exhausted — and the fix for each - [VXLAN, CIDR, and isolation](https://docs.rafftechnologies.com/products/network/vpc/concepts/cidr-and-isolation.md): How Raff VPCs are isolated — every VPC is its own VXLAN segment with a unique VNI, which is why two VPCs can use the same CIDR and still never see each other - [Features & limits](https://docs.rafftechnologies.com/products/network/vpc/details/features-and-limits.md): VPC features, supported CIDR sizes, MTU, internet gateway options, and platform limits - [Overview](https://docs.rafftechnologies.com/products/network/vpc/index.md): Virtual Private Cloud networking on Raff — VXLAN-isolated private networks for VMs in the same region - [Attach a VM](https://docs.rafftechnologies.com/products/network/vpc/quickstart-guides/attach-vm.md): Add a VM to an existing VPC — three entry points in the dashboard, all open the same Add VM dialog with auto-assign or specific-IP options - [Create a VPC](https://docs.rafftechnologies.com/products/network/vpc/quickstart-guides/create-vpc.md): Open the VPCs tab, click Create VPC, pick a network size (Recommended / Small / Large / Custom), and confirm - [Delete a VPC](https://docs.rafftechnologies.com/products/network/vpc/quickstart-guides/delete-vpc.md): Delete is blocked while VMs are attached — detach or delete the VMs first, then delete the VPC from the row menu or the detail page - [Manage a VPC](https://docs.rafftechnologies.com/products/network/vpc/quickstart-guides/manage-vpc.md): Open the VPC detail page to rename, change DNS, enable an internet gateway (Platform Router or Firewall Appliance), attach VMs, and configure port forwarding - [Use the Networking diagram](https://docs.rafftechnologies.com/products/network/vpc/quickstart-guides/use-networking-diagram.md): Visualize every VPC, VM, and public IP in your account on one interactive canvas — and manage them inline with click-to-action menus - [Troubleshooting](https://docs.rafftechnologies.com/products/network/vpc/troubleshooting.md): Common VPC problems — CIDR rejection, IPs that don't talk to each other, DNS not propagating, port forwarding not working, gateway and delete blocks — and the fix for each - [S3 compatibility](https://docs.rafftechnologies.com/products/store/object-storage/concepts/s3-compatibility.md): What S3-compatibility means in practice — the API surface that works on Raff, the AWS-only features that don't, and the gotchas that catch every new integration - [Features & limits](https://docs.rafftechnologies.com/products/store/object-storage/details/features-and-limits.md): Object Storage features, S3 endpoint, pricing tiers, storage class, and platform limits - [Overview](https://docs.rafftechnologies.com/products/store/object-storage/index.md): S3-compatible object storage on the Raff Platform — NVMe SSD buckets, AWS-SDK-compatible, with the same regional endpoint and SigV4 auth model as AWS S3 - [Create a bucket](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/create-bucket.md): Create an S3-compatible Object Storage bucket and get its endpoint URL - [Generate access keys](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/generate-access-keys.md): Create S3-compatible access key pairs for programmatic access — Full Access or Limited (per-bucket) scope - [Monitor bucket usage](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/monitor-usage.md): Read the live Metrics tab — storage size, object count, GET/PUT/DELETE counts, and ingress/egress data transfer for the current month - [Use the S3 SDK](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/s3-sdk-access.md): Connect to Raff Object Storage from any S3-compatible SDK or CLI — boto3, aws-cli, JavaScript, Go, rclone, s3cmd, mc, Cyberduck - [Set public or private](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/set-public-private.md): Bucket-level ACL, bucket policies (JSON), per-object ACL, and presigned URLs — three layers that combine to control who can read what - [Upload files](https://docs.rafftechnologies.com/products/store/object-storage/quickstart-guides/upload-files.md): Drag-and-drop files into a Raff Object Storage bucket via the dashboard, plus what to do with them after - [Troubleshooting](https://docs.rafftechnologies.com/products/store/object-storage/troubleshooting.md): Common Raff Object Storage errors — authentication, connection, uploads, ACLs — and the fix that works in each case - [Volume types](https://docs.rafftechnologies.com/products/store/volumes/concepts/volume-types.md): What a Raff volume is, how it persists, how it attaches, and what currently varies between volumes - [Features & limits](https://docs.rafftechnologies.com/products/store/volumes/details/features-and-limits.md): Full feature list for Raff volumes plus capacity, attach, and lifecycle limits - [Overview](https://docs.rafftechnologies.com/products/store/volumes/index.md): NVMe SSD block storage you attach to a VM — survives VM destroy, grows on demand, billed per GiB - [Attach to a VM](https://docs.rafftechnologies.com/products/store/volumes/quickstart-guides/attach-to-vm.md): Mount a Raff volume on a Linux or Windows VM, format it, persist it across reboots, and grow it after a resize - [Create a volume](https://docs.rafftechnologies.com/products/store/volumes/quickstart-guides/create-a-volume.md): Provision a new block volume — pick size, billing term, target VM, and how it should be formatted - [Delete a volume](https://docs.rafftechnologies.com/products/store/volumes/quickstart-guides/delete-volume.md): Permanently remove a volume, stop its billing, and credit unused subscription time back to your balance - [Detach from a VM](https://docs.rafftechnologies.com/products/store/volumes/quickstart-guides/detach-from-vm.md): Cleanly unmount a volume from a VM so it can be reattached elsewhere, while keeping all data intact - [Resize a volume](https://docs.rafftechnologies.com/products/store/volumes/quickstart-guides/resize-volume.md): Grow an attached volume's capacity in the dashboard, then expand the filesystem inside the VM - [Troubleshooting](https://docs.rafftechnologies.com/products/store/volumes/troubleshooting.md): Common volume issues — attach, mount, resize, detach, delete — and how to fix them - [Why Raff](https://docs.rafftechnologies.com/products/why-raff.md): Building the future of cloud computing — one platform where digital teams deploy, store, communicate, automate, and ship AI features without juggling vendors. Read our founding story, mission, vision, values, and the ecosystem we're building. - [Quickstart](https://docs.rafftechnologies.com/quickstart.md): Make your first API call in under 5 minutes - [raff configure](https://docs.rafftechnologies.com/reference/cli/configure.md): Set up the CLI's API credentials, base URL, and default project. Supports multiple profiles for switching between accounts or environments. - [Install the Raff CLI](https://docs.rafftechnologies.com/reference/cli/install.md): Install the raff binary via go install, build from source, or download a release. Single static Go binary; supports macOS, Linux, and Windows. - [Raff CLI](https://docs.rafftechnologies.com/reference/cli/introduction.md): Manage Raff Platform resources from your terminal — VMs, projects, VPCs, public IPs, firewalls. The CLI uses the same public API as the dashboard, with the same role-based authorization model. - [raff ip](https://docs.rafftechnologies.com/reference/cli/ip.md): Manage Public IPs from the CLI — list, get, reserve a static IP ($3/mo IPv4, $1/mo IPv6), release, or swap a reserved IP for a different one from the pool. - [raff project](https://docs.rafftechnologies.com/reference/cli/project.md): Manage projects from the CLI — list, get, create, update, delete. Projects are the container for VMs, volumes, IPs, VPCs, buckets, and access control. - [raff security-group](https://docs.rafftechnologies.com/reference/cli/security-group.md): Manage Firewall Groups (security groups in the API) from the CLI — list, list templates, get, create, delete. Customer-facing label is Firewall; the API path is still security-groups. - [raff vm](https://docs.rafftechnologies.com/reference/cli/vm.md): Manage Virtual Machines from the CLI — list, get, create, update, delete (incl. bulk-delete), power, reboot, hard-reboot, reinstall, factory-reset, rename, reset-password, resize, resize-disk, save-image, plus IP, firewall, VPC, tags, notes, and networks subcommands. - [raff vpc](https://docs.rafftechnologies.com/reference/cli/vpc.md): Manage VPCs from the CLI — list, get, create, update, delete, and fetch CIDR suggestions. Each VPC is a VXLAN-isolated private network for VMs in the same region. - [Install the Raff Terraform Provider](https://docs.rafftechnologies.com/reference/terraform/install.md): Install the provider from the Terraform Registry, build from source for local development, or pin a specific version. Works with Terraform 1.0+ and OpenTofu. - [Raff Terraform Provider](https://docs.rafftechnologies.com/reference/terraform/introduction.md): Provision and manage Raff Platform resources declaratively with HashiCorp Terraform. Supports raff_project and raff_vm resources today; more coming as the public API surface grows. - [raff_project](https://docs.rafftechnologies.com/reference/terraform/raff_project.md): Manage Raff projects with Terraform — the access-control container for VMs, volumes, IPs, VPCs, and Object Storage buckets. Required attribute is name; optional are description and default_region. - [raff_vm](https://docs.rafftechnologies.com/reference/terraform/raff_vm.md): Manage Raff Virtual Machines with Terraform — pick template, plan, region, SSH keys, optional VPC and backup schedule. Required: name, template_id, pricing_id, region. Resizing is in-place via pricing_id change. ## OpenAPI Specs - [openapi](https://docs.rafftechnologies.com/api-reference/openapi.yaml) ## Optional - [Dashboard](https://app.rafftechnologies.com) - [Support](mailto:support@rafftechnologies.com)