Veeam Repositories API
The Repositories API from Veeam — 18 operation(s) for repositories.
The Repositories API from Veeam — 18 operation(s) for repositories.
openapi: 3.0.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents Repositories API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
security:
- Bearer: []
tags:
- name: Repositories
paths:
/api/v1/repositories:
get:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: RepositoriesGetAll
parameters:
- name: SearchPattern
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters'
schema:
type: string
- name: Offset
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters'
schema:
type: integer
format: int32
minimum: 0
- name: Sort
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters'
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- nameAsc
- nameDesc
- descriptionAsc
- descriptionDesc
- amazonAccountNameAsc
- amazonAccountNameDesc
- amazonBucketAsc
- amazonBucketDesc
- amazonStorageFolderAsc
- amazonStorageFolderDesc
- regionAsc
- regionDesc
- encryptionAsc
- encryptionDesc
uniqueItems: false
- name: Limit
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters'
schema:
type: integer
format: int32
minimum: -1
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoriesPage'
application/problem+json:
schema:
$ref: '#/components/schemas/RepositoriesPage'
'400':
description: Bad Request. The request body is malformed, incomplete or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: CreateRepository
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
application/json:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
text/json:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
application/*+json:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
application/csp-report:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Repository'
application/problem+json:
schema:
$ref: '#/components/schemas/Repository'
'400':
description: Bad Request. The request body is malformed, incomplete or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/repositories/{repositoryId}:
get:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: RepositoriesGetOneById
parameters:
- name: repositoryId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Repository'
application/problem+json:
schema:
$ref: '#/components/schemas/Repository'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found. One or more resources specified in the request could not be found in the specified resource collection.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
put:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: UpdateRepository
parameters:
- name: repositoryId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/RepositoryUpdateSpec'
application/json:
schema:
$ref: '#/components/schemas/RepositoryUpdateSpec'
text/json:
schema:
$ref: '#/components/schemas/RepositoryUpdateSpec'
application/*+json:
schema:
$ref: '#/components/schemas/RepositoryUpdateSpec'
application/csp-report:
schema:
$ref: '#/components/schemas/RepositoryUpdateSpec'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Repository'
application/problem+json:
schema:
$ref: '#/components/schemas/Repository'
'400':
description: Bad Request. The request body is malformed, incomplete or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found. One or more resources specified in the request could not be found in the specified resource collection.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
delete:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: DeleteRepository
parameters:
- name: repositoryId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found. One or more resources specified in the request could not be found in the specified resource collection.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The repository is in use by one or more policies.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/repositories/{repositoryId}/rescan:
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: RescanRepository
parameters:
- name: repositoryId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'202':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SessionLink'
application/problem+json:
schema:
$ref: '#/components/schemas/SessionLink'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found. One or more resources specified in the request could not be found in the specified resource collection.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/repositories/settings/validate:
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: RepositoryValidateSettings
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryCreateSpec'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
application/problem+json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
'400':
description: Bad Request. The request body is malformed, incomplete or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/repositories/{repositoryId}/checkPassword:
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: RepositoryPasswordIsCorrect
parameters:
- name: repositoryId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryPasswordValidationSpec'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryPasswordValidationResult'
application/problem+json:
schema:
$ref: '#/components/schemas/RepositoryPasswordValidationResult'
'400':
description: Bad Request. The request body is malformed, incomplete or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/repositories/export:
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- Repositories
operationId: ExportRepositories
parameters:
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
text/csv:
schema:
type: string
format: binary
application/xml:
schema:
type: string
format: binary
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
text/csv:
schema:
$ref: '#/components/schemas/Error'
application/xml:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.
content:
text/csv:
schema:
$ref: '#/components/schemas/Error'
application/xml:
schema:
$ref: '#/components/schemas/Error'
/api/v1/backupInfrastructure/repositories:
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/repositories` path allows you to get an array of all backup repositories that are added to the backup infrastructure.
operationId: GetAllRepositories
parameters:
- $ref: '#/components/parameters/apiVersionParam_2'
- description: Number of repositories to skip.
in: query
name: skip
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Maximum number of repositories to return.
in: query
name: limit
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Sorts repositories by one of the repository parameters.
in: query
name: orderColumn
schema:
$ref: '#/components/schemas/ERepositoryFiltersOrderColumn'
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Sorts repositories in the ascending order by the `orderColumn` parameter.
in: query
name: orderAsc
schema:
type: boolean
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by the `nameFilter` pattern. The pattern can match any repository parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.
in: query
name: nameFilter
schema:
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by repository type.
in: query
name: typeFilter
schema:
$ref: '#/components/schemas/ERepositoryType'
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by ID of the backup server.
in: query
name: hostIdFilter
schema:
format: uuid
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by path to the folder where backup files are stored.
in: query
name: pathFilter
schema:
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by VM Backup API parameters converted to the base64 string. To obtain the string, call the `GetApiProductInfoString` method of VM Backup API.
in: query
name: vmbApiFilter
schema:
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
- description: Filters repositories by ID of a platform that you use to communicate with VM Backup API.
in: query
name: vmbApiPlatform
schema:
format: uuid
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoriesFilters_2'
responses:
'200':
content:
application/json:
example:
data:
- description: Created by TECH\sheila.d.cory
hostId: e22b8842-c454-4036-abd5-f468c3248aaf
id: d4b5e196-f3ad-474c-99bc-dfef051dae07
mountServer:
mountServerId: e22b8842-c454-4036-abd5-f468c3248aaf
vPowerNFSEnabled: true
vPowerNFSPortSettings:
mountPort: 1063
vPowerNFSPort: 2049
writeCacheFolder: C:\ProgramData\Veeam\Backup\IRCache\
name: Backup Repository 1
repository:
advancedSettings:
alignDataBlocks: true
decompressBeforeStoring: false
perVmBackup: false
rotatedDrives: false
maxTaskCount: 4
path: C:\Backup Repository
readWriteRate: 0
tag: D4B5E196F3AD474C99BCDFEF051DAE07
type: WinLocal
- description: Created by Veeam Backup
hostId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
id: 88788f9e-d8f5-4eb4-bc4f-9b3f5403bcec
mountServer:
mountServerId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
vPowerNFSEnabled: true
vPowerNFSPortSettings:
mountPort: 1063
vPowerNFSPort: 2049
writeCacheFolder: C:\ProgramData\Veeam\Backup\IRCache\
name: Default Backup Repository
repository:
advancedSettings:
alignDataBlocks: true
decompressBeforeStoring: false
perVmBackup: false
rotatedDrives: false
maxTaskCount: 4
path: C:\Backup
readWriteRate: 0
tag: 88788F9ED8F54EB4BC4F9B3F5403BCEC
type: WinLocal
pagination:
count: 2
limit: 200
skip: 0
total: 2
schema:
$ref: '#/components/schemas/RepositoriesResult'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get All Repositories
tags:
- Repositories
x-veeam-authorize:
claims:
- ViewRepositories
post:
description: The HTTP POST request to the `/api/v1/backupInfrastructure/repositories` path allows you to add a repository to the backup infrastructure.
operationId: CreateRepository
parameters:
- $ref: '#/components/parameters/apiVersionParam_2'
- in: query
name: overwriteOwner
schema:
type: boolean
x-veeam-spec:
$ref: '#/components/schemas/RepositoryBehaviorFilters'
requestBody:
content:
application/json:
example:
description: Created by TECH\sheila.d.cory
kind: Das
mountServer:
mountServerId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
vPowerNFSEnabled: true
vPowerNFSPortSettings:
mountPort: 1058
vPowerNFSPort: 1058
writeCacheFolder: D:\ProgramData\Veeam\Backup\
repository:
advancedSettings:
alignDataBlocks: false
decompressBeforeStoring: false
perVmBackup: false
rotatedDrives: false
maxTaskCount: 8
path: D:\Backups
readWriteRate: 0
useFastCloningOnXFSVolumes: false
tag: big-repository
type: WinLocal
name: Main Backup Repository
hostId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
schema:
$ref: '#/components/schemas/RepositorySpec'
required: true
responses:
'201':
content:
application/json:
example:
activityId: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
progressPercent: 0
sessionType: Infrastructure
creationTime: '2022-01-28T20:18:47.563+01:00'
name: Infrastructure Item Saving
state: Working
usn: 0
id: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to add the repository. To check the progress, track the session `state`.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Add Repository
tags:
- Repositories
x-veeam-authorize:
claims:
- CreateRepositories
/api/v1/backupInfrastructure/repositories/states:
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/repositories/states` path allows you to get an array of all repository states. The states include repository location and brief statistics, such as repository capacity, free and used space.
operationId: GetAllRepositoriesStates
parameters:
- $ref: '#/components/parameters/apiVersionParam_2'
- description: Number of repository states to skip.
in: query
name: skip
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Maximum number of repository states to return.
in: query
name: limit
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Sorts repository states by one of the state parameters.
in: query
name: orderColumn
schema:
$ref: '#/components/schemas/ERepositoryStatesFiltersOrderColumn'
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Sorts repository states in the ascending order by the `orderColumn` parameter.
in: query
name: orderAsc
schema:
type: boolean
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by repository ID.
in: query
name: idFilter
schema:
format: uuid
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by the `nameFilter` pattern. The pattern can match any repository state parameter. To substitute one or more characters, use the asterisk (*) character at the beginning and/or at the end.
in: query
name: nameFilter
schema:
type: string
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by repository type.
in: query
name: typeFilter
schema:
$ref: '#/components/schemas/ERepositoryType'
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by repository capacity.
in: query
name: capacityFilter
schema:
format: double
type: number
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by repository free space.
in: query
name: freeSpaceFilter
schema:
format: double
type: number
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
- description: Filters repository states by repository used space.
in: query
name: usedSpaceFilter
schema:
format: double
type: number
x-veeam-spec:
$ref: '#/components/schemas/RepositoryStatesFilters'
responses:
'200':
content:
application/json:
example:
data:
- capacityGB: 299.4
description: Created by TECH\sheila.d.cory
freeGB: 217.8
hostId: e22b8842-c454-4036-abd5-f468c3248aaf
hostName: enterprise03.tech.local
id: d4b5e196-f3ad-474c-99bc-dfef051dae07
name: Backup R
# --- truncated at 32 KB (137 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/veeam/refs/heads/main/openapi/veeam-repositories-api-openapi.yml