updraftplus/start-backup begins a backup of this site. What it returns is a promise, not a result.
The work runs in the background. This call returns a job_id and nothing else useful — the set appears in updraftplus/list-backups only once the job actually finishes.
At a glance
| Ability | updraftplus/start-backup |
| Toolset | UpdraftPlus — toolset/updraftplus |
| Group | UpdraftPlus › Taking backups |
| Requires | UpdraftPlus, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
It is not done when this returns
Treating a successful response as “the site is backed up” is the mistake this ability invites. Poll updraftplus/get-backup-progress with the job_id until it reports finished, and only then proceed with whatever you were protecting against. On a quiet site the job may sit waiting for a visitor before WordPress cron advances it at all.
How it works
By default the backup includes both files and database. Narrow it with files and database when you only need one — a database-only set is much faster and is the right choice before a content migration.
send_to_remote additionally uploads to whatever remote storage is configured. It is off by default because it makes the job substantially longer, and on by choice is how a backup survives the server it was taken on.
The label is worth using. “Before the 6.9 update” in the list six weeks later is the difference between a confident restore and a guess.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
files | boolean | No — defaults to true | Include uploads, themes and plugins. |
database | boolean | No — defaults to true | Include the database. |
send_to_remote | boolean | No — defaults to false | Also upload to the configured remote storage, where one is set up. |
label | string | No | A note stored with the backup — why it was taken. |
What comes back
| Name | Type | What it is |
|---|---|---|
job_id | string | Poll this with updraftplus/get-backup-progress. |
started | boolean | Whether the job was accepted. |
includes | object | What the job was asked to include. |
note | string | Anything worth knowing about how it was scheduled. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Take a full backup before I update these plugins, and label it.
It resolves to one call:
{
"ability": "updraftplus/start-backup",
"parameters": {
"files": true,
"database": true,
"send_to_remote": true,
"label": "Before the September plugin updates"
}
}Worth knowing
- Not idempotent — each call starts another backup.
- A quiet site has no cron traffic. If progress does not move, a single page view is often all it needs.
- Without
send_to_remotethe set exists only on the server you are about to change.
Related abilities
- Get Backup Progress — the poll that tells you it finished
- Get Backup Status — check what already exists first
- List Backups — where the finished set appears
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category