Simple, stable JSON API for managing cassettes programmatically.
https://cassette.shhttp://localhost:3000/api/v1/…).Content-Type: application/json for POST bodies.Create API keys under "API Keys" (org‑scoped). Send as Bearer token:
Authorization: Bearer <API_KEY>
Alternatively, X-Api-Key: <API_KEY>.
/api/v1/cassettes
curl -s -H "Authorization: Bearer $API_KEY" \
$BASE_URL/api/v1/cassettes
[{
"id": "8b6a…",
"name": "autumn-sky-1",
"status": "running",
"plan_id": "small",
"region_id": "us-east-1",
"image_id": "ubuntu",
"vmid": 101,
"ip_address": "203.0.113.10",
"created_at": "2025-09-08T12:34:56Z",
"updated_at": "2025-09-08T12:35:10Z"
}]
/api/v1/cassettes/:id
curl -s -H "Authorization: Bearer $API_KEY" \
$BASE_URL/api/v1/cassettes/<INSTANCE_ID>
{
"id": "8b6a…",
"name": "autumn-sky-1",
"status": "running",
"plan_id": "small",
"region_id": "us-east-1",
"image_id": "ubuntu",
"vmid": 101,
"ip_address": "203.0.113.10",
"created_at": "2025-09-08T12:34:56Z",
"updated_at": "2025-09-08T12:35:10Z"
}
{"error":"not_found"}
/api/v1/cassettes
curl -s -X POST -H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"plan_id":"small","region_id":"us-east-1","image_id":"ubuntu"}' \
$BASE_URL/api/v1/cassettes
plan_id, region_id, image_id (all required){
"id": "9c33…",
"name": "breezy-river-2",
"status": "provisioning",
"plan_id": "small",
"region_id": "us-east-1",
"image_id": "ubuntu",
"vmid": null,
"ip_address": null,
"created_at": "2025-09-08T13:45:10Z",
"updated_at": "2025-09-08T13:45:10Z"
}
{"error":"no_active_subscription"}
{"error":"insufficient_capacity"}
/api/v1/cassettes/:id/resize
curl -s -X POST -H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"plan_id":"medium"}' \
$BASE_URL/api/v1/cassettes/<INSTANCE_ID>/resize
{
"id": "8b6a…",
"name": "autumn-sky-1",
"status": "provisioning",
"plan_id": "medium",
"region_id": "us-east-1",
"image_id": "ubuntu",
"vmid": 101,
"ip_address": "203.0.113.10",
"created_at": "2025-09-08T12:34:56Z",
"updated_at": "2025-09-08T13:50:00Z"
}
{"error":"insufficient_capacity"}
/api/v1/cassettes/:id
curl -s -X DELETE -H "Authorization: Bearer $API_KEY" \
$BASE_URL/api/v1/cassettes/<INSTANCE_ID>
(no content)
/status/api
curl -s $BASE_URL/status/api
{
"status": "operational",
"components": [
{
"name": "API",
"status": "operational",
"last_checked": "2024-01-15T12:30:45Z",
"response_time_ms": 45
},
{
"name": "Web Application",
"status": "operational",
"last_checked": "2024-01-15T12:30:45Z",
"response_time_ms": 23
}
],
"incidents": []
}
operational - Everything working normallydegraded - Minor issues, reduced performancepartial - Partial outage affecting some usersmajor - Major outage affecting most users401 Unauthorized: missing/invalid API key402 Payment Required: no active organization subscription404 Not Found: resource not found within your organization422 Unprocessable Entity: validation or capacity error (see error field)