Backups
List, inspect, and create Vector Pro site backups, and request a download for one.
List Backups
Retrieves a paginated list of backups, optionally filtered by type, site, or environment.
Query Parameters
| Name | Type | Description |
|---|---|---|
type optional | string | Filter by archivable type (site, environment). Example: "site" |
site_id optional | string | Filter by site ID. Returns backups for the site and all of its environments. Example: "01jfgxk4nqrst5vwx9yz0abcde" |
environment_id optional | string | Filter by environment ID. Example: "01jfgxk4nqrst5vwx9yz0abcde" |
per_page optional | integer | Number of items per page (max 100). Default: 15. Example: 25 |
page optional | integer | Page number for pagination. Default: 1. Example: 1 |
Request
curl -X GET \
"https://api.builtfast.com/api/v1/vector/backups?type=site&site_id=01jfgxk4nqrst5vwx9yz0abcde&environment_id=01jfgxk4nqrst5vwx9yz0abcde&per_page=25&page=1" \
-H "Authorization: Bearer $API_KEY" \
-H "Accept: application/json"$response = $vectorPro
->backups
->get([
'type' => 'site',
'site_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'environment_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'per_page' => 25,
'page' => 1,
]);const response = await vectorPro
.backups
.get({
type: 'site',
site_id: '01jfgxk4nqrst5vwx9yz0abcde',
environment_id: '01jfgxk4nqrst5vwx9yz0abcde',
per_page: 25,
page: 1,
});Response
{
"data": [
{
"id": "01jfgxk4nqrst5vwx9yz0abcdg",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"type": "manual",
"type_label": "Manual",
"scope": "full",
"scope_label": "Full",
"status": "completed",
"status_label": "Completed",
"description": "Pre-deployment backup",
"file_snapshot_id": "abc123def456",
"database_snapshot_id": "ghi789jkl012",
"started_at": "2025-01-15T12:00:00+00:00",
"completed_at": "2025-01-15T12:00:00+00:00",
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
}
],
"links": {},
"meta": {},
"message": "Backups retrieved successfully",
"http_status": 200
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}Get Backup
Retrieves details of a specific backup.
URL Parameters
| Name | Type | Description |
|---|---|---|
backup required | string | The backup ID. Example: "01jfgxk4nqrst5vwx9yz0abcdg" |
Request
curl -X GET \
"https://api.builtfast.com/api/v1/vector/backups/01jfgxk4nqrst5vwx9yz0abcdg" \
-H "Authorization: Bearer $API_KEY" \
-H "Accept: application/json"$response = $vectorPro
->backups
->get('01jfgxk4nqrst5vwx9yz0abcdg');const response = await vectorPro
.backups
.get('01jfgxk4nqrst5vwx9yz0abcdg');Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdg",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"type": "manual",
"type_label": "Manual",
"scope": "full",
"scope_label": "Full",
"status": "completed",
"status_label": "Completed",
"description": "Pre-deployment backup",
"file_snapshot_id": "abc123def456",
"database_snapshot_id": "ghi789jkl012",
"started_at": "2025-01-15T12:00:00+00:00",
"completed_at": "2025-01-15T12:00:00+00:00",
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
},
"message": "Backup retrieved successfully",
"http_status": 200
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"message": "Backup not found",
"http_status": 404
}Create Backup
Creates a new backup for the specified site or environment. The backup is created with a
pending status and an async job is dispatched to orchestrate the restic backup via an
ECS task.
Body Parameters
| Name | Type | Description |
|---|---|---|
site_id optional | string | The site ID (required if environment_id not provided). Example: "01jfgxk4nqrst5vwx9yz0abcde" |
environment_id optional | string | The environment ID (required if site_id not provided). Example: "01jfgxk4nqrst5vwx9yz0abcde" |
type required | string | The backup type (manual, scheduled). Example: "manual" |
scope optional | string | The backup scope (full, database, files). Default: full. Example: "full" |
description optional | string | Optional description for the backup. Max 500 characters. Example: "Pre-deployment backup" |
Request
curl -X POST \
"https://api.builtfast.com/api/v1/vector/backups" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"site_id":"01jfgxk4nqrst5vwx9yz0abcde","environment_id":"01jfgxk4nqrst5vwx9yz0abcde","type":"manual","scope":"full","description":"Pre-deployment backup"}'$response = $vectorPro
->backups
->post([
'site_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'environment_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'type' => 'manual',
'scope' => 'full',
'description' => 'Pre-deployment backup',
]);const response = await vectorPro
.backups
.post({
site_id: '01jfgxk4nqrst5vwx9yz0abcde',
environment_id: '01jfgxk4nqrst5vwx9yz0abcde',
type: 'manual',
scope: 'full',
description: 'Pre-deployment backup',
});Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdg",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"type": "manual",
"type_label": "Manual",
"scope": "full",
"scope_label": "Full",
"status": "pending",
"status_label": "Pending",
"description": "Pre-deployment backup",
"file_snapshot_id": null,
"database_snapshot_id": null,
"started_at": null,
"completed_at": null,
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
},
"message": "Backup initiated successfully",
"http_status": 202
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"errors": {
"site_id": [
"Either a site ID or environment ID is required."
]
},
"message": "Validation failed",
"http_status": 422
}Backup Downloads
Manage backup download requests. When a download is requested, an async job archives the backup snapshots and uploads the archive to S3. Once complete, a presigned download URL is available for a limited time.
Download Status Lifecycle
pending- Download record created, waiting for ECS task to startprocessing- ECS task is archiving the backup snapshotscompleted- Archive uploaded to S3, presigned URL availablefailed- Download failed (see error_message for details)
Get Backup Download
Retrieves the status of a backup download. If the download is complete and not expired, includes a presigned download URL.
URL Parameters
| Name | Type | Description |
|---|---|---|
backup required | string | The backup ID. Example: "01jfgxk4nqrst5vwx9yz0abcdg" |
download required | string | The download ID. Example: "01jfgxk4nqrst5vwx9yz0abcdh" |
Request
curl -X GET \
"https://api.builtfast.com/api/v1/vector/backups/01jfgxk4nqrst5vwx9yz0abcdg/downloads/01jfgxk4nqrst5vwx9yz0abcdh" \
-H "Authorization: Bearer $API_KEY" \
-H "Accept: application/json"$response = $vectorPro
->backups.downloads
->get('01jfgxk4nqrst5vwx9yz0abcdg', '01jfgxk4nqrst5vwx9yz0abcdh');const response = await vectorPro
.backups.downloads
.get('01jfgxk4nqrst5vwx9yz0abcdg', '01jfgxk4nqrst5vwx9yz0abcdh');Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdg",
"status": "completed",
"status_label": "Completed",
"s3_key": "backups/downloads/01jfgxk4nqrst5vwx9yz0abcdh.tar.gz",
"size_bytes": 52428800,
"duration_ms": 12500,
"error_message": null,
"download_url": "https://s3.amazonaws.com/bucket/backups/downloads/01jfgxk4nqrst5vwx9yz0abcdh.tar.gz?presigned=...",
"download_expires_at": "2025-01-15T12:00:00+00:00",
"started_at": "2025-01-15T12:00:00+00:00",
"completed_at": "2025-01-15T12:00:00+00:00",
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
},
"message": "Backup download retrieved successfully",
"http_status": 200
}{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdg",
"status": "processing",
"status_label": "Processing",
"s3_key": null,
"size_bytes": null,
"duration_ms": null,
"error_message": null,
"download_url": null,
"download_expires_at": null,
"started_at": null,
"completed_at": null,
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
},
"message": "Backup download retrieved successfully",
"http_status": 200
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"message": "Backup download not found",
"http_status": 404
}Create Backup Download
Creates a new download request for the specified backup. The download is created with a
pending status and an async job is dispatched to archive the backup snapshots.
URL Parameters
| Name | Type | Description |
|---|---|---|
backup required | string | The backup ID. Example: "01jfgxk4nqrst5vwx9yz0abcdg" |
Request
curl -X POST \
"https://api.builtfast.com/api/v1/vector/backups/01jfgxk4nqrst5vwx9yz0abcdg/downloads" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json"$response = $vectorPro
->backups.downloads
->post('01jfgxk4nqrst5vwx9yz0abcdg');const response = await vectorPro
.backups.downloads
.post('01jfgxk4nqrst5vwx9yz0abcdg');Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdg",
"status": "pending",
"status_label": "Pending",
"s3_key": null,
"size_bytes": null,
"duration_ms": null,
"error_message": null,
"download_url": null,
"download_expires_at": null,
"started_at": null,
"completed_at": null,
"created_at": "2025-01-15T12:00:00+00:00",
"updated_at": "2025-01-15T12:00:00+00:00"
},
"message": "Backup download initiated",
"http_status": 202
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"message": "Backup not found",
"http_status": 404
}