Agents

The Agents section defines operations for working with protection groups, obtaining protected computers, managing Veeam Agent and other Veeam components on the computers and handling recovery tokens used for bare metal recovery.

Get All Recovery Tokens

The HTTP GET request to the /api/v1/agents/recoveryTokens endpoint gets an array of all recovery tokens.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of recovery tokens to skip.

limit
integer <int32>
Default: 200

Maximum number of recovery tokens to return.

orderColumn
string (EComputerRecoveryTokenFiltersOrderColumn)

Sorts recovery tokens by one of the parameters.

Enum: "Name" "ExpirationDate"
orderAsc
boolean

If true, sorts recovery tokens in ascending order by the orderColumn parameter.

nameFilter
string

Filters recovery tokens by the nameFilter pattern. The pattern can match any repository parameter. To substitute one or more characters, use the asterisk (*) character at the beginning, at the end or both.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/recoveryTokens
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create Recovery Token

The HTTP POST request to the /api/v1/agents/recoveryTokens endpoint creates a new recovery token.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
backupIds
required
Array of strings <uuid>

Array of backup IDs whose data you want to restore with the recovery token.

expirationDate
required
string <date-time>

Date and time when the recovery token expires.

Responses
201

Recovery token has been created.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/recoveryTokens
Request samples
application/json
{
  • "backupIds": [
    ],
  • "expirationDate": "2026-06-19T10:45:00Z"
}
Response samples
application/json
{
  • "id": "a2f6c81d-3e94-4b27-8d5a-1c0e9f7b6a32",
  • "name": "Recovery token for enterprise01",
  • "recoveryToken": "ASD-123-DSA-321-QWE-456",
  • "expirationDate": "2026-06-19T10:45:00Z"
}

Get Recovery Token

The HTTP GET request to the /api/v1/agents/recoveryTokens/{id} endpoint gets a recovery token that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Recovery token ID. To get the ID, run the Get All Recovery Tokens request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/recoveryTokens/{id}
Request samples
Response samples
application/json
{
  • "id": "a2f6c81d-3e94-4b27-8d5a-1c0e9f7b6a32",
  • "name": "Recovery token for enterprise01",
  • "recoveryToken": "ASD-123-DSA-321-QWE-456",
  • "expirationDate": "2026-06-19T10:45:00Z"
}

Edit Recovery Token

The HTTP PUT request to the /api/v1/agents/recoveryTokens/{id} endpoint edits settings of a recovery token that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Recovery token ID. To get the ID, run the Get All Recovery Tokens request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
id
required
string <uuid>

ID of the recovery token.

name
required
string

Friendly name of the recovery token.

expirationDate
required
string <date-time>

Date and time when the recovery token expires.

recoveryToken
string

Recovery token value.

Responses
200

Recovery token has been updated.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

put/api/v1/agents/recoveryTokens/{id}
Request samples
application/json
{
  • "id": "a2f6c81d-3e94-4b27-8d5a-1c0e9f7b6a32",
  • "name": "Recovery token for enterprise01",
  • "recoveryToken": "ASD-123-DSA-321-QWE-456",
  • "expirationDate": "2026-06-19T10:45:00Z"
}
Response samples
application/json
{
  • "id": "a2f6c81d-3e94-4b27-8d5a-1c0e9f7b6a32",
  • "name": "Recovery token for enterprise01",
  • "recoveryToken": "ASD-123-DSA-321-QWE-456",
  • "expirationDate": "2026-06-19T10:45:00Z"
}

Delete Recovery Token

The HTTP DELETE request to the /api/v1/agents/recoveryTokens/{id} endpoint deletes a recovery token that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Recovery token ID. To get the ID, run the Get All Recovery Tokens request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
204

Token has been deleted.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

delete/api/v1/agents/recoveryTokens/{id}
Request samples
Response samples
application/json
{
  • "errorCode": "AccessDenied",
  • "message": "Unauthorized. Get bearer JWT token at /api/login"
}

Get All Protected Linux ComputersDeprecated

The HTTP GET request to the /api/v1/agents/protectedComputers endpoint gets an array of all protected Linux computers.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of protected computers to skip.

limit
integer <int32>
Default: 200

Maximum number of protected computers to return.

orderColumn
string (EProtectedComputerFiltersOrderColumn)

Sorts protected computers by one of the protected computer parameters.

Enum: "Name" "Type"
orderAsc
boolean

If true, sorts protected computers in ascending order by the orderColumn parameter.

nameFilter
string

Filters protected computers by the nameFilter pattern. The pattern can match any protected computer parameter. To substitute one or more characters, use the asterisk (*) character at the beginning, at the end or both.

typeFilter
string (EProtectedComputerType)

Filters protected computers by protected computer type.

Value: "Linux"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectedComputers
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Protected Linux ComputerDeprecated

The HTTP GET request to the /api/v1/agents/protectedComputers/{id} endpoint gets a protected Linux computer that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

ID of the protected computer.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectedComputers/{id}
Request samples
Response samples
application/json
{
  • "id": "d6e1f7b0-4a93-4c28-8b5a-2c0e9f3b6a14",
  • "name": "enterprise01.tech.local",
  • "type": "Linux",
  • "protectionGroups": [
    ]
}

Get All Discovered Entities

The HTTP GET request to the /api/v1/agents/discoveredEntities endpoint gets an array of discovered entities across all protection groups.

Available to: Backup Administrator, Restore Operator.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of discovered entities to skip.

limit
integer <int32>
Default: 200

Maximum number of discovered entities to return.

orderColumn
string (EDiscoveredEntityFiltersOrderColumn)

Sorts discovered entities by one of the discovered entity parameters.

Enum: "Name" "State" "AgentStatus" "DriverStatus" "OperatingSystem"
orderAsc
boolean

Sorts discovered entities in ascending order by the orderColumn parameter.

nameFilter
string

Filters discovered entities by the nameFilter pattern. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

ipAddressFilter
string

Filters discovered entities by the ipAddressFilter pattern.

stateFilter
string

Filters discovered entities by their states.

agentStatusFilter
string

Filters discovered entities by the installed agent status.

driverStatusFilter
string

Filters discovered entities by the installed driver status.

permissionScope
string (EInventoryPermissionScope)

Permission scope type (advanced RBAC) for filtering discovered entities across all protection groups. Must be specified for custom roles. If the value is Any, entities are returned if valid under any permission scope.

Enum: "Backup" "Restore" "Any"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/discoveredEntities
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get All Agent States

The HTTP GET request to the /api/v1/agents/discoveredEntities/states endpoint gets an array of all agent states.

Available to: Backup Administrator, Restore Operator.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of agent states to skip.

limit
integer <int32>
Default: 200

Maximum number of agent states to return.

orderAsc
boolean

If true, sorts agent states in ascending order.

nameFilter
string

Filters agent states by the nameFilter pattern. The pattern can match any agent state parameter. To substitute one or more characters, use the asterisk (*) character at the beginning, at the end or both.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/discoveredEntities/states
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Agent State

The HTTP GET request to the /api/v1/agents/discoveredEntities/states/{id} endpoint gets an agent state that has the specified id.

Available to: Backup Administrator, Restore Operator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

ID of the agent.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/discoveredEntities/states/{id}
Request samples
Response samples
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Agent-Workstation-01",
  • "status": "Online"
}

Get Agent Backups

The HTTP GET request to the /api/v1/agents/discoveredEntities/{id}/backups endpoint gets an array of backups owned by the agent with the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have backup or restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

ID of the agent.

query Parameters
skip
integer <int32>

Number of backups to skip.

limit
integer <int32>
Default: 200

Maximum number of backups to return.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/discoveredEntities/{id}/backups
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Attach Backups to Agent

The HTTP POST request to the /api/v1/agents/discoveredEntities/{id}/attachBackup endpoint attaches backup ownership to the agent with the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

ID of the agent.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required

Array of backup IDs to attach.

backupIds
required
Array of strings <uuid>

Array of backup IDs.

Responses
204

Backups have been attached to the agent.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/discoveredEntities/{id}/attachBackup
Request samples
application/json
{
  • "backupIds": [
    ]
}
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Detach Backups from Agent

The HTTP POST request to the /api/v1/agents/discoveredEntities/{id}/detachBackup endpoint detaches backup ownership from the agent with the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

ID of the agent.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required

Array of backup IDs to detach.

backupIds
required
Array of strings <uuid>

Array of backup IDs.

Responses
204

Backups have been detached from the agent.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/discoveredEntities/{id}/detachBackup
Request samples
application/json
{
  • "backupIds": [
    ]
}
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Get Protection Groups

The HTTP GET request to the /api/v1/agents/protectionGroups endpoint gets an array of protection groups that are added to the physical and cloud infrastructure.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have backup or restore permissions.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of protection groups to skip.

limit
integer <int32>
Default: 200

Maximum number of protection groups to return.

orderColumn
string (EProtectionGroupFiltersOrderColumn)

Sorts protection groups by one of the protection group parameters.

Enum: "Name" "Description" "Type"
orderAsc
boolean

Sorts protection groups in ascending order by the orderColumn parameter.

nameFilter
string

Filters protection groups by the nameFilter pattern. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

typeFilter
string (EProtectionGroupType)

Filters protection groups by protection group type. The Virtual value is not supported and results in an HTTP 400 response.

Enum: "ManuallyAdded" "Unmanaged" "IndividualComputers" "ADObjects" "CSVFile" "PreInstalledAgents" "CloudMachines" "MongoDB" "Iris"
permissionScope
string (EInventoryPermissionScope)

Permission scope type (advanced RBAC) for filtering protection groups. Must be specified for custom roles. If the value is Any, protection groups valid under any permission scope are returned.

Enum: "Backup" "Restore" "Any"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectionGroups
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add Protection Group

The HTTP POST request to the /api/v1/agents/protectionGroups endpoint adds a protection group to the physical infrastructure.

Available to: Backup Administrator.

SecurityBearer
Request
query Parameters
performRescan
boolean
Default: false

If true and the settings are saved successfully, Veeam Backup & Replication automatically starts discovery (rescan).

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
description
required
string

Protection group description.

name
required
string

Protection group name.

type
required
string (EProtectionGroupType)

Protection group type

required
Array of objects (IndividualComputerContainerModel)

Array of protected computers.

tag
string

Protection group tag.

object (ProtectionGroupOptionsModel)

Protection group options.

Responses
201

An Infrastructure session has been created to add the protection group. To check the progress, track the session state.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups
Request samples
application/json
{
  • "computers": [
    ],
  • "type": "IndividualComputers",
  • "name": "Microsoft SQL Server PG",
  • "description": "Created by .\\Administrator"
}
Response samples
application/json
{
  • "sessionType": "Infrastructure",
  • "state": "Working",
  • "id": "89fe3413-cde0-4061-925a-6d72857db45c",
  • "name": "Infrastructure Item Saving",
  • "jobId": "89fe3413-cde0-4061-925a-6d72857db45c",
  • "creationTime": "2025-07-30T13:01:27.491999+02:00",
  • "progressPercent": 0,
  • "result": {
    },
  • "usn": 331548,
  • "initiatedBy": ".\\veeam-rest-service"
}

Get Protection Group

The HTTP GET request to the /api/v1/agents/protectionGroups/{id} endpoint gets a protection group that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have backup or restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

query Parameters
permissionScope
string (EInventoryPermissionScope)

Permission scope type (advanced RBAC) for filtering protection groups. Must be specified for custom roles. If the value is Any, the protection group is returned if it is valid under any permission scope.

Enum: "Backup" "Restore" "Any"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectionGroups/{id}
Request samples
Response samples
application/json
{
  • "computers": [
    ],
  • "options": {
    },
  • "type": "IndividualComputers",
  • "id": "c2600b42-7c64-4219-a447-95bd33e70c1a",
  • "name": "Microsoft SQL Server PG",
  • "description": "Created by .\\Administrator at 4/8/2025 5:51 PM."
}

Edit Protection Group

The HTTP PUT request to the /api/v1/agents/protectionGroups/{id} endpoint edits the settings of a protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

query Parameters
performRescan
boolean
Default: false

If true and the settings are saved successfully, Veeam Backup & Replication automatically starts discovery (rescan).

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
id
required
string <uuid>

Protection group ID.

description
required
string

Protection group description.

name
required
string

Protection group name.

type
required
string (EProtectionGroupType)

Protection group type

isDisabled
boolean

If true, the protection group is disabled

Array of objects (IndividualComputerContainerModel)

Array of protected computers.

object (ProtectionGroupOptionsModel)

Protection group options.

Responses
201

An Infrastructure session has been created to edit the repository. To check the progress, track the session state.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

put/api/v1/agents/protectionGroups/{id}
Request samples
application/json
{
  • "computers": [
    ],
  • "options": {
    },
  • "type": "IndividualComputers",
  • "id": "c2600b42-7c64-4219-a447-95bd33e70c1a",
  • "name": "Microsoft SQL Server PG",
  • "description": "Created by .\\Administrator at 4/8/2025 5:51 PM."
}
Response samples
application/json
{
  • "sessionType": "Infrastructure",
  • "state": "Working",
  • "id": "89fe3413-cde0-4061-925a-6d72857db45c",
  • "name": "Infrastructure Item Saving",
  • "jobId": "89fe3413-cde0-4061-925a-6d72857db45c",
  • "creationTime": "2025-07-30T13:01:27.491999+02:00",
  • "progressPercent": 0,
  • "result": {
    },
  • "usn": 331548,
  • "initiatedBy": ".\\veeam-rest-service"
}

Remove Protection Group

The HTTP DELETE request to the /api/v1/agents/protectionGroups/{id} endpoint removes a protection group that has the specified id from the physical infrastructure.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

query Parameters
uninstallEverything
boolean

If true, uninstalls all Veeam components installed on the protected computer.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
201

An InfrastructureItemDeletion session has been created to delete the protection group. To check the progress, track the session state.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

delete/api/v1/agents/protectionGroups/{id}
Request samples
Response samples
application/json
{
  • "sessionType": "InfrastructureItemDeletion",
  • "state": "Stopped",
  • "id": "af1a6027-3845-487e-9a16-6849f4775a1e",
  • "name": "Infrastructure Item Deletion",
  • "jobId": "fc5683a4-8c25-4f8e-97cc-0a40745a5729",
  • "creationTime": "2025-06-28T21:21:08.81+02:00",
  • "endTime": "2025-06-28T21:22:15.92+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "resourceId": "af1a6027-3845-487e-9a16-6849f4775a1e",
  • "usn": 0
}

Rescan Protection Group

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/rescan endpoint rescans a protection group.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
201

An AgentDiscovery session has been created to rescan the protection group. To check the progress, track the session state.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/rescan
Request samples
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Starting",
  • "platformName": "WindowsPhysical",
  • "id": "5ff0d667-56b2-462b-9d45-72ede959f7e1",
  • "name": "Rescan of Microsoft SQL Server PG",
  • "jobId": "c2600b42-7c64-4219-a447-95bd33e70c1a",
  • "creationTime": "2025-04-22T15:13:01.074252+02:00",
  • "progressPercent": 0,
  • "result": {
    },
  • "usn": 800461,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Enable Protection Group

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/enable endpoint enables a protection group.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
204

Protection group has been enabled.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/enable
Request samples
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Disable Protection Group

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/disable endpoint disables a protection group.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
204

Protection group has been disabled.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/disable
Request samples
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Download Protection Group Packages

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/packages endpoint downloads agent installation packages for the protection group. Use this request with protection groups with pre-installed backup agents.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
format
string

Format of the Veeam Agent package.

Enum: "Zip" "Tar"
includeWindowsPackages
boolean

If true, Microsoft Windows packages will be downloaded.

includeMacPackages
boolean

If true, Mac packages will be downloaded.

object (PreInstalledAgentsPackagesModel)

Pre-installed packages on the protection group.

object (PreInstalledAgentsPackagesModel)

Pre-installed packages on the protection group.

Responses
200

OK

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/packages
Request samples
application/json
{
  • "format": "Zip",
  • "includeWindowsPackages": true
}
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Get Discovered Entities

The HTTP GET request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities endpoint gets a list of discovered entities — a list of individual computers, clusters or Active Directory objects processed in the scope of the protection group that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have backup or restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

query Parameters
permissionScope
string (EInventoryPermissionScope)

Permission scope type (advanced RBAC) for filtering discovered entities by their parent protection group scope. Must be specified for custom roles. If the value is Any, entities are returned if the parent protection group is valid under any permission scope.

Enum: "Backup" "Restore" "Any"
skip
integer <int32>

Number of discovered entities to skip.

limit
integer <int32>
Default: 200

Maximum number of discovered entities to return.

orderColumn
string (EDiscoveredEntityFiltersOrderColumn)

Sorts discovered entities by one of the discovered entity parameters.

Enum: "Name" "State" "AgentStatus" "DriverStatus" "OperatingSystem"
orderAsc
boolean

Sorts discovered entities in ascending order by the orderColumn parameter.

nameFilter
string

Filters discovered entities by the nameFilter pattern. The pattern can match any discovered entity parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

ipAddressFilter
string

Filters discovered entities by the ipAddressFilter pattern.

stateFilter
string

Filters discovered entities by their states.

agentStatusFilter
string

Filters discovered entities by the installed agent status.

driverStatusFilter
string

Filters discovered entities by the installed driver status.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectionGroups/{id}/discoveredEntities
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Rescan Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/rescan endpoint starts rescan jobs, which can install or upgrade agents on a subset of discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/rescan
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Reboot Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/reboot endpoint reboots a subset of discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/reboot
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Install Agent on Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/installAgent endpoint installs Veeam Agent on discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/installAgent
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Uninstall Agent from Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallAgent endpoint uninstalls Veeam Agent from discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallAgent
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Upgrade Agent on Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/upgradeAgent endpoint upgrades the Veeam Agent on discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/upgradeAgent
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Install CBT Driver on Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/installCBTDriver endpoint installs the Changed Block Tracking (CBT) driver on discovered entities in the protection group that has the specified id.

This operation may be required, for example, if you want to evaluate driver performance on a selected computer rather than deploy the driver to all computers in the protection group at once. To enable the CBT driver after installation, reboot the computer.

Consider the following:

  • This request is available only for computers that are protected with Veeam Agent for Microsoft Windows.
  • This request is not available for computers in protection groups with pre-installed agents. In this case, use the Veeam Agent Configurator instead.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/installCBTDriver
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Uninstall CBT Driver from Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallCBTDriver endpoint uninstalls the Changed Block Tracking (CBT) driver from discovered entities in the protection group that has the specified id. To complete the driver uninstallation process, reboot the computer.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallCBTDriver
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Uninstall All Components from Discovered Entities

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallAllComponents endpoint uninstalls all components from discovered entities in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/uninstallAllComponents
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "ConfigurationBackup",
  • "state": "Stopped",
  • "id": "f848e90c-7f37-4ff5-9d55-04e33f8a4de3",
  • "name": "Backup Configuration Job",
  • "jobId": "99d1bf3d-e2e0-4bec-b2b3-820c0b87d212",
  • "creationTime": "2023-11-08T10:00:12.56+01:00",
  • "endTime": "2023-11-08T10:00:34.017+01:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 0,
  • "platformName": "VMware",
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Add Discovered Entities to Trusted Hosts List

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/trust endpoint adds discovered Linux computers to the trusted hosts list, in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
204

The discovered computers have been added to the trusted hosts list.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/trust
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "errorCode": "AccessDenied",
  • "message": "Unauthorized. Get bearer JWT token at /api/login"
}

Prepare Agent Hosts for Remote Bare Metal Recovery

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/prepareForRemoteBmr endpoint prepares agent hosts for Remote Bare Metal Recovery, in the protection group that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
201

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/prepareForRemoteBmr
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Recreate Embedded Recovery Media on Agent Hosts

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/recreateEmbeddedRm endpoint schedules recreation of embedded recovery media on agent hosts in the protection group that has the specified id.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the protection group ID, run the Get Protection Groups request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
entityIds
required
Array of strings <uuid>

Array of discovered entity IDs to process. To get the discovered entity IDs, run the Get Discovered Entities request.

Responses
201

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/recreateEmbeddedRm
Request samples
application/json
{
  • "entityIds": [
    ]
}
Response samples
application/json
{
  • "sessionType": "AgentDiscovery",
  • "state": "Stopped",
  • "platformName": "WindowsPhysical",
  • "id": "8ca855d7-4bde-4277-bbc9-fabd606d0a5e",
  • "name": "Rescan of dlsql03",
  • "jobId": "59e96b69-ae91-45b3-82be-c0b31f25c915",
  • "creationTime": "2025-04-23T09:46:47.664243+02:00",
  • "endTime": "2025-04-23T09:48:02.473501+02:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 806726,
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Get Discovered Entity

The HTTP GET request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId} endpoint gets a discovered entity that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have backup or restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the ID, run the Get Protection Groups request.

entityId
required
string <uuid>

Discovered entity ID. To get the ID, run the Get Discovered Entities request.

query Parameters
permissionScope
string (EInventoryPermissionScope)

Permission scope type (advanced RBAC) for filtering the discovered entity by its parent protection group scope. Must be specified for custom roles. If the value is Any, the entity is returned if the parent protection group is valid under any permission scope.

Enum: "Backup" "Restore" "Any"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}
Request samples
Response samples
application/json
{
  • "state": "Online",
  • "agentStatus": "Installed",
  • "driverStatus": "Installed",
  • "operatingSystem": "WindowsServer2022",
  • "operatingSystemPlatform": "X64",
  • "agentVersion": "13.0.0.632",
  • "driverVersion": "Veeam Volume CT Driver (13.0.0.12)",
  • "rebootRequired": false,
  • "ipAddresses": [
    ],
  • "lastConnected": "2025-04-23T08:18:33.90584",
  • "operatingSystemVersion": "Microsoft Windows Server 2022 (21H2, 64-bit)",
  • "operatingSystemUpdateVersion": 2109,
  • "objectId": "cb324094-3476-4b8e-92fd-94ff8bfcb7cf",
  • "biosUuid": "d8ad2542-9d46-e67e-7b05-efd2dc8e2595",
  • "plugins": [
    ],
  • "type": "Computer",
  • "id": "7e76a5bb-287a-490e-ae0a-5e852ea775ee",
  • "name": "dlsql03",
  • "parentId": "15aa12f6-6078-4e2f-8a90-0a3d496d6f77",
  • "protectionGroupId": "c2600b42-7c64-4219-a447-95bd33e70c1a",
  • "isTrusted": true
}

Remove Discovered Entity

The HTTP DELETE request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId} endpoint removes a discovered entity that has the specified id from the configuration.

Available to: Backup Administrator.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the ID, run the Get Protection Groups request.

entityId
required
string <uuid>

Discovered entity ID. To get the ID, run the Get Discovered Entities request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
204

Discovered entity has been removed.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

delete/api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}
Request samples
Response samples
application/json
{
  • "errorCode": "AccessDenied",
  • "message": "Unauthorized. Get bearer JWT token at /api/login"
}

Create Recovery Media Task for Discovered Entity

The HTTP POST request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}/createRecoveryMedia endpoint starts an asynchronous task that creates Veeam Recovery Media for a protected Microsoft Windows computer. The endpoint returns a task that you can poll through the Get Task request to track progress and surface failures. To download the resulting ISO file once the task completes successfully, run the Download Recovery Media request.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the ID, run the Get Protection Groups request.

entityId
required
string <uuid>

Discovered entity ID. To get the ID, run the Get Discovered Entities request.

query Parameters
format
required
string (ERecoveryMediaFormat)

Recovery media format.

Value: "Iso"
allowRemoteBmr
required
boolean

Enables the ability to perform Bare Metal Recovery remotely from the backup server when this recovery media is booted

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
201

A RecoveryMedia task has been started. To check the progress, track the task state.

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}/createRecoveryMedia
Request samples
Response samples
application/json
{
  • "type": "Common",
  • "id": "c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e",
  • "name": "Rescan repository task",
  • "state": "Working",
  • "progressPercent": 45,
  • "creationTime": "2026-05-20T10:30:00Z",
  • "endTime": "2026-05-20T10:42:00Z",
  • "result": "None"
}

Create Recovery Media for Discovered EntityDeprecated

The HTTP GET request to the /api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}/createRecoveryMedia endpoint creates Veeam Recovery Media for a protected Microsoft Windows computer. The request will create an ISO file that you can boot from in case the computer stops working or the hard disk fails.

You can also create Veeam Recovery Media for a backup created by Veeam Agent for Microsoft Windows. For more information, see Create Recovery Media for Backup Object.

Deprecated: this synchronous endpoint blocks while the ISO is being created and returns a generic HTTP 500 on failure. Use the Create Recovery Media Task for Discovered Entity request followed by the Download Recovery Media request instead.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Protection group ID. To get the ID, run the Get Protection Groups request.

entityId
required
string <uuid>

Discovered entity ID. To get the ID, run the Get Discovered Entities request.

query Parameters
format
required
string (ERecoveryMediaFormat)

Recovery media format.

Value: "Iso"
allowRemoteBmr
required
boolean

Enables the ability to perform Bare Metal Recovery remotely from the backup server when this recovery media is booted

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

400

Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

404

Not found. No object was found with the path parameter specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/protectionGroups/{id}/discoveredEntities/{entityId}/createRecoveryMedia
Request samples
Response samples
application/json
{
  • "errorCode": "UnexpectedContent",
  • "message": "One or more request parameters are not valid."
}

Get Linux Agent Packages

The HTTP GET request to the /api/v1/agents/packages/linux endpoint gets an array of Linux agent packages available for export.

Available to: Backup Administrator.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of Linux packages to skip.

limit
integer <int32>
Default: 200

Maximum number of Linux packages to return.

orderColumn
string (ELinuxPackageFiltersOrderColumn)

Sorts Linux packages by one of the parameters.

Enum: "Name" "DistributionName"
orderAsc
boolean

Sorts Linux packages in ascending order by the orderColumn parameter.

nameFilter
string

Filters Linux packages by the nameFilter pattern. The pattern can match any Linux package parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

distributionFilter
string

Filters Linux packages by the distribution name.

packageBitnessFilter
string

Filters Linux packages by the package bitness.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/packages/linux
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Unix Agent Packages

The HTTP GET request to the /api/v1/agents/packages/unix endpoint gets an array of Unix agent packages available for export.

Available to: Backup Administrator.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of Unix packages to skip.

limit
integer <int32>
Default: 200

Maximum number of Unix packages to return.

orderColumn
string (EUnixPackageFiltersOrderColumn)

Sorts Unix packages by one of the parameters.

Value: "Name"
orderAsc
boolean

Sorts Unix packages in ascending order by the orderColumn parameter.

nameFilter
string

Filters Unix packages by the nameFilter pattern. The pattern can match any Unix Package parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/packages/unix
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Agents Recovery Appliances

The HTTP GET request to the /api/v1/agents/recoveryAppliances endpoint allows you to get an array of agents recovery appliances.

Available to: Backup Administrator, Backup Operator, Restore Operator, Backup Viewer. Also available to custom roles that have restore permissions.

SecurityBearer
Request
query Parameters
skip
integer <int32>

Number of Agents Recovery Appliances to skip.

limit
integer <int32>
Default: 200

Maximum number of Agents Recovery Appliances to return.

orderColumn
string (EAgentsRecoveryAppliancesOrderColumn)

Sorts Agents Recovery Appliances by one of the parameters.

Enum: "HostName" "Version" "Addresses" "IsDetached" "CreationTime" "LastContactTime" "PlatformType"
orderAsc
boolean

Sorts Agents Recovery Appliances in the ascending order by the orderColumn parameter.

nameFilter
string

Filters Agents Recovery Appliances by the nameFilter pattern. The pattern can match any Agents Recovery Appliance parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.

stateFilter
string (EAgentsRecoveryAppliancesStateFilter)

Filters Agents Recovery Appliances by their state.

Enum: "All" "Connected" "Disconnected"
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/recoveryAppliances
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Agents Recovery Appliance

The HTTP GET request to the /api/v1/agents/recoveryAppliances/{id} endpoint allows you to get an agent recovery appliance that has the specified id.

Available to: Backup Administrator, Backup Operator, Restore Operator, Backup Viewer. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Agent recovery appliance ID. To get the agent recovery appliance ID, run the Get Agents Recovery Appliances request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
200

OK

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/agents/recoveryAppliances/{id}
Request samples
Response samples
application/json
{
  • "id": "0b7bedc6-8368-477c-8d26-264b611e5f4c",
  • "hostName": "recovery-appliance-name",
  • "version": "13.0.1.23",
  • "addresses": [
    ],
  • "port": 9123,
  • "creationTime": "2025-04-22T15:13:01.074252+02:00",
  • "isVerified": true,
  • "isDetached": false,
  • "canExpire": false,
  • "verificationPhrase": "ASD-123-DSA-321",
  • "usedPersonalCertificate": true,
  • "lastContactTime": "2025-04-22T17:13:01.074252+02:00",
  • "platformId": "00000000-0000-0000-0000-000000000000",
  • "platformType": "WindowsPhysical",
  • "hostBiosId": "b5aed685-9d33-4320-953f-5b2ae3f9c722",
  • "operations": [
    ],
  • "lastKnownHostName": "hostname.domain",
  • "endpoint": "172.1.1.1"
}

Reboots Agents Recovery Appliances

The HTTP POST request to the /api/v1/agents/recoveryAppliances/reboot endpoint reboots specified agents recovery appliances.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Request Body schema: application/json
required
ids
Array of strings <uuid>

Array of IDs of agents recovery appliances that must be rebooted. To get the agent recovery appliance IDs, run the Get Agents Recovery Appliances request.

Responses
201

A session has been created to reboot specified agents recovery appliances. To check the progress, track the session state.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/recoveryAppliances/reboot
Request samples
application/json
{
  • "ids": [
    ]
}
Response samples
application/json
{
  • "sessionType": "ConfigurationBackup",
  • "state": "Stopped",
  • "id": "f848e90c-7f37-4ff5-9d55-04e33f8a4de3",
  • "name": "Backup Configuration Job",
  • "jobId": "99d1bf3d-e2e0-4bec-b2b3-820c0b87d212",
  • "creationTime": "2023-11-08T10:00:12.56+01:00",
  • "endTime": "2023-11-08T10:00:34.017+01:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 0,
  • "platformName": "VMware",
  • "platformId": "00000000-0000-0000-0000-000000000000"
}

Reboots Agents Recovery Appliance

The HTTP POST request to the /api/v1/agents/recoveryAppliances/{id}/reboot endpoint reboots an agents recovery appliance that has the specified id.

Available to: Backup Administrator, Restore Operator. Also available to custom roles that have restore permissions.

SecurityBearer
Request
path Parameters
id
required
string <uuid>

Agent recovery appliance ID. To get the agent recovery appliance ID, run the Get Agents Recovery Appliances request.

header Parameters
x-api-version
required
string
Default: 1.3-rev2

Version and revision of the client REST API. Must be in the following format: <version>-<revision>.

Responses
201

A session has been created to reboot an agents recovery appliance. To check the progress, track the session state.

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.

500

Internal server error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/agents/recoveryAppliances/{id}/reboot
Request samples
Response samples
application/json
{
  • "sessionType": "ConfigurationBackup",
  • "state": "Stopped",
  • "id": "f848e90c-7f37-4ff5-9d55-04e33f8a4de3",
  • "name": "Backup Configuration Job",
  • "jobId": "99d1bf3d-e2e0-4bec-b2b3-820c0b87d212",
  • "creationTime": "2023-11-08T10:00:12.56+01:00",
  • "endTime": "2023-11-08T10:00:34.017+01:00",
  • "progressPercent": 100,
  • "result": {
    },
  • "usn": 0,
  • "platformName": "VMware",
  • "platformId": "00000000-0000-0000-0000-000000000000"
}