Start a Backup

Beacon will trigger a server backup using the POST /servers/{serverId}/backup endpoint. Use the level key to determine what to back up. If the server’s backup system allows for naming of backups, the backupName key will include the backup time in both UTC and the user’s local time zone.

If the backup has finished by the time the response is generated, return a 200 or 204 status. If the backup has not yet finished, return a 202 status.

Backup Levels

Key Notes
full Back up save data, config files, and anything else that can be backed up.
configOnly Back up only the config files and related data, such as launch options.
saveOnly Back up only the save data.

Asynchronous Backups

Since creating a backup of save data can be a slow process, implementers may choose to run the backup in the background. In this case, return a 204 Accepted status along with a JSON object containing the backupId and status keys. The backupId can be any unique identifier chosen by the implementer, but a UUID is recommended. The status should be either pending, completed, or failed.

Beacon will poll GET /backups/{backupId} to wait for the job to finish before continuing the deployment process. The response structure should match the initial response. Return a 200 status code for this endpoint.

Example Exchange

Request

POST /servers/bebb2aae-99bb-41be-b928-5374d6dabc61/backup HTTP/1.1
Authorization: KEY secretToken
Host: api.example.com

{
  "backupName": "Beacon 2026-08-11 18:42:12 GMT (2:42 PM America/New_York)",
  "level": "configOnly"
}

Synchronous Response

HTTP/1.1 204 No Content

Asynchronous Response

HTTP/1.1 202 Accepted
Content-Type: application/json

{
  "backupId": "88f5e5b0-7b76-4216-a39e-60db1d15796b",
  "status": "pending"
}

Completed Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "backupId": "88f5e5b0-7b76-4216-a39e-60db1d15796b",
  "status": "completed"
}