Skip to main content

Base URL

https://api.rafftechnologies.com

Authentication

All endpoints require an X-API-Key header with your API key. See Authentication for details.

Required Headers

HeaderWhen RequiredDescription
X-API-KeyAll endpointsYour API key for authentication
X-Project-IDMutating endpoints (POST, DELETE, PATCH)Project ID for write operations
Content-TypeRequests with a bodyMust be application/json
Mutating endpoints return 400 Bad Request if X-Project-ID is missing.

Request Format

  • All request bodies must be JSON with Content-Type: application/json
  • Query parameters are used for filtering and pagination
  • Path parameters use UUIDs (e.g., /api/v1/vms/{id})

Response Format

All responses follow a consistent structure:

Success Response

{
  "success": true,
  "data": { ... },
  "message": "Operation completed successfully"
}

List Response

{
  "data": [ ... ],
  "total": 42
}

Error Response

{
  "error": "Error type",
  "message": "Human-readable description"
}

HTTP Status Codes

CodeDescription
200Success
201Resource created
400Invalid request parameters
401Authentication required
403Access denied or billing validation failed
404Resource not found
429Rate limit exceeded
500Internal server error
503Resources temporarily unavailable

Pagination

List endpoints support pagination via query parameters:
ParameterDefaultDescription
limit20Maximum items to return
offset0Number of items to skip
# Get page 2 with 10 items per page
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.rafftechnologies.com/api/v1/vms?limit=10&offset=10"

Available Endpoints

Virtual Machines

MethodEndpointDescription
GET/api/v1/vmsList VMs
POST/api/v1/vmsCreate VM
GET/api/v1/vms/{id}Get VM
DELETE/api/v1/vms/{id}Delete VM
POST/api/v1/vms/{id}/startStart VM
POST/api/v1/vms/{id}/stopStop VM
POST/api/v1/vms/{id}/rebootReboot VM
POST/api/v1/vms/{id}/resizeResize VM

Volumes

MethodEndpointDescription
GET/api/v1/volumesList volumes
POST/api/v1/volumesCreate a volume
GET/api/v1/volumes/{id}Get volume details
DELETE/api/v1/volumes/{id}Delete a volume
PATCH/api/v1/volumes/{id}Resize a volume
POST/api/v1/volumes/{id}/attachAttach to a VM
POST/api/v1/volumes/{id}/detachDetach from a VM

Snapshots

MethodEndpointDescription
GET/api/v1/snapshotsList snapshots
POST/api/v1/snapshotsCreate a snapshot
GET/api/v1/snapshots/{id}Get snapshot details
DELETE/api/v1/snapshots/{id}Delete a snapshot
POST/api/v1/snapshots/{id}/restoreRestore a snapshot
PATCH/api/v1/snapshots/{id}/renameRename a snapshot

Backups

MethodEndpointDescription
GET/api/v1/backupsList backups
POST/api/v1/backupsCreate a backup
GET/api/v1/backups/{id}Get backup details
DELETE/api/v1/backups/{id}Delete a backup
POST/api/v1/backups/{id}/restoreRestore a backup
GET/api/v1/backup-schedulesList backup schedules
POST/api/v1/backup-schedulesCreate a schedule
GET/api/v1/backup-schedules/{id}Get schedule details
DELETE/api/v1/backup-schedules/{id}Delete a schedule
PATCH/api/v1/backup-schedules/{id}Update a schedule