Restores
Start a restore from a Vector Pro backup and track it to completion.
List Restores
Retrieves a paginated list of restores, optionally filtered by type, site, environment, or backup.
Query Parameters
| Name | Type | Description |
|---|---|---|
type optional | string | Filter by archivable type (site, environment). Example: "site" |
site_id optional | string | Filter by site ID. Example: "01jfgxk4nqrst5vwx9yz0abcde" |
environment_id optional | string | Filter by environment ID. Example: "01jfgxk4nqrst5vwx9yz0abcde" |
backup_id optional | string | Filter by backup 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/restores?type=site&site_id=01jfgxk4nqrst5vwx9yz0abcde&environment_id=01jfgxk4nqrst5vwx9yz0abcde&backup_id=01jfgxk4nqrst5vwx9yz0abcde&per_page=25&page=1" \
-H "Authorization: Bearer $API_KEY" \
-H "Accept: application/json"$response = $vectorPro
->restores
->get([
'type' => 'site',
'site_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'environment_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'backup_id' => '01jfgxk4nqrst5vwx9yz0abcde',
'per_page' => 25,
'page' => 1,
]);const response = await vectorPro
.restores
.get({
type: 'site',
site_id: '01jfgxk4nqrst5vwx9yz0abcde',
environment_id: '01jfgxk4nqrst5vwx9yz0abcde',
backup_id: '01jfgxk4nqrst5vwx9yz0abcde',
per_page: 25,
page: 1,
});Response
{
"data": [
{
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"scope": "full",
"scope_label": "Full",
"trigger": "manual",
"trigger_label": "Manual",
"status": "completed",
"status_label": "Completed",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdg",
"search_replace": null,
"drop_tables": false,
"disable_foreign_keys": false,
"error_message": null,
"duration_ms": 45200,
"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": "Restores retrieved successfully",
"http_status": 200
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}Get Restore
Retrieves details of a specific restore.
URL Parameters
| Name | Type | Description |
|---|---|---|
restore required | string | The restore ID. Example: "01jfgxk4nqrst5vwx9yz0abcdh" |
Request
curl -X GET \
"https://api.builtfast.com/api/v1/vector/restores/01jfgxk4nqrst5vwx9yz0abcdh" \
-H "Authorization: Bearer $API_KEY" \
-H "Accept: application/json"$response = $vectorPro
->restores
->get('01jfgxk4nqrst5vwx9yz0abcdh');const response = await vectorPro
.restores
.get('01jfgxk4nqrst5vwx9yz0abcdh');Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"scope": "full",
"scope_label": "Full",
"trigger": "manual",
"trigger_label": "Manual",
"status": "completed",
"status_label": "Completed",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdg",
"search_replace": [
{
"from": "example.org",
"to": "example.com"
}
],
"drop_tables": false,
"disable_foreign_keys": false,
"error_message": null,
"duration_ms": 45200,
"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": "Restore retrieved successfully",
"http_status": 200
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"message": "Restore not found",
"http_status": 404
}Create Restore
Creates a new restore from a previously completed backup. The archivable (site or
environment) is inferred from the backup. The restore is created with a pending
status and an async job is dispatched to orchestrate the restic restore via an ECS task.
Body Parameters
| Name | Type | Description |
|---|---|---|
backup_id required | string | The ID of a completed backup to restore from. Must be a valid ULID. Example: "01jfgxk4nqrst5vwx9yz0abcdi" |
scope optional | string | The restore scope (full, database, files). Default: full. Example: "full" |
search_replace optional | string[] | Optional search and replace pairs. Example: [{"from":"example.org","to":"example.com"}] |
drop_tables optional | boolean | Whether to drop existing tables before restore. Default: false. Example: false |
disable_foreign_keys optional | boolean | Whether to disable foreign key checks during restore. Default: false. Example: false |
search_replace[].from required | string | Must not be greater than 255 characters. Example: "n" |
search_replace[].to required | string | Must not be greater than 255 characters. Example: "g" |
Request
curl -X POST \
"https://api.builtfast.com/api/v1/vector/restores" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"backup_id":"01jfgxk4nqrst5vwx9yz0abcdi","scope":"full","search_replace":[{"from":"example.org","to":"example.com"}],"drop_tables":false,"disable_foreign_keys":false}'$response = $vectorPro
->restores
->post([
'backup_id' => '01jfgxk4nqrst5vwx9yz0abcdi',
'scope' => 'full',
'search_replace' => [[
'from' => 'example.org',
'to' => 'example.com',
]],
'drop_tables' => false,
'disable_foreign_keys' => false,
]);const response = await vectorPro
.restores
.post({
backup_id: '01jfgxk4nqrst5vwx9yz0abcdi',
scope: 'full',
search_replace: [{
from: 'example.org',
to: 'example.com',
}],
drop_tables: false,
disable_foreign_keys: false,
});Response
{
"data": {
"id": "01jfgxk4nqrst5vwx9yz0abcdh",
"archivable_type": "vector_site",
"archivable_id": "01jfgxk4nqrst5vwx9yz0abcde",
"scope": "full",
"scope_label": "Full",
"trigger": "manual",
"trigger_label": "Manual",
"status": "pending",
"status_label": "Pending",
"vector_backup_id": "01jfgxk4nqrst5vwx9yz0abcdi",
"search_replace": [
{
"from": "example.org",
"to": "example.com"
}
],
"drop_tables": false,
"disable_foreign_keys": false,
"error_message": null,
"duration_ms": 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": "Restore initiated successfully",
"http_status": 202
}{
"data": {},
"message": "Unauthenticated",
"http_status": 401
}{
"data": {},
"errors": {
"backup_id": [
"A backup ID is required."
]
},
"message": "Validation failed",
"http_status": 422
}