Calculate Estimated Cost of Azure SQL Backup Policy

In this article

    You can calculate the estimated monthly cost for protecting Azure resources.

    Request

    To calculate the estimated cost of protected Azure resources, send the HTTP POST request to the /sqlCostEstimation endpoint.

    HTTP Request

    POST https://<hostname>/api/v3/sqlCostEstimation

    Query Parameters

    To control the amount and order of data in the response, you can use Offset, Limit and the following query parameters:

    Query Parameter

    Value

    Description

    ResourceNameFilter

    string

    Returns only estimated cost of protecting an Azure SQL database with the specified name. For more information, see Filter Parameters.

    Request Headers

    The request contains the following headers.

    Header

    Required

    Value

    Description

    Authorization

    Required

    Bearer <Access-Token>

    Authenticates a client who sends the request to the server. Must contain the access token for the current logon session in the Bearer <Access-Token> format.

    Request Body

    To calculate the estimated monthly cost for the protected Azure resources, send the parameters of the CostEstimationSqlPolicyFromClientV3 schema in the request body.

    Set the parameter value in the following format:

    {

     "priority": 0,

     "tenantId": "string",

     "serviceAccountId": "string",

     "regions": [

       {

         "regionId": "string"

       }

     ],

     "selectedItems": {

       "databases": [

         {

           "id": "string"

         }

       ],

       "sqlServers": [

         {

           "id": "string"

         }

       ]

     },

     "excludedItems": {

       "databases": [

         {

           "id": "string"

         }

       ]

     },

     "stagingServerId": "string",

     "managedStagingServerId": "string",

     "name": "string",

     "description": "string",

     "retrySettings": {

       "retryCount": 0

     },

     "policyNotificationSettings": {

       "recipient": "string",

       "notifyOnSuccess": true,

       "notifyOnWarning": true,

       "notifyOnFailure": true

     },

     "isEnabled": true,

     "backupType": "AllSubscriptions",

     "dailySchedule": {

       "dailyType": "Everyday",

       "selectedDays": [

         "Sunday"

       ],

       "backupSchedule": {

         "hours": [

           0

         ],

         "retention": {

           "timeRetentionDuration": 0,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "string"

       }

     },

     "weeklySchedule": {

       "startTime": 0,

       "backupSchedule": {

         "selectedDays": [

           "Sunday"

         ],

         "retention": {

           "timeRetentionDuration": 0,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "string"

       }

     },

     "monthlySchedule": {

       "startTime": 0,

       "type": "First",

       "dayOfWeek": "Sunday",

       "dayOfMonth": 0,

       "monthlyLastDay": true,

       "backupSchedule": {

         "selectedMonths": [

           "January"

         ],

         "retention": {

           "timeRetentionDuration": 0,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "string"

       }

     },

     "yearlySchedule": {

       "startTime": 0,

       "month": "January",

       "type": "First",

       "dayOfWeek": "Sunday",

       "dayOfMonth": 0,

       "yearlyLastDay": true,

       "retentionYearsCount": 0,

       "targetRepositoryId": "string"

     }

    }

    Response

    The server returns the following response to the client.

    Response Codes

    A successfully completed operation returns a response code 200 (OK).

    Response Headers

    The response to this request contains the following headers. The response may also include additional standard HTTP headers.

    Header

    Value

    Description

    Content-length

    integer

    Identifies the length of the response body message, in bytes.

    Content-type

    • application/json
    • application/problem+json

    Identifies the media type of the response body message.

    Response Body

    In the response body, Veeam Backup for Microsoft Azure returns estimated monthly cost of the backup policy with the specified settings. The CostEstimationSqlDataV3 schema is used for the resource representation.

    Calculate Estimated Cost of Backup Policy_2Example

    The following request calculates estimated monthly cost for a backup policy with the following settings.

    Request:

    POST https://51.11.247.127/api/v3/sqlCostEstimation

     

    Request Header:

    Authorization: Bearer <Access-Token>

     

    Request Body:

    {

     "priority": 1,

     "tenantId": "3e924ba9-93bc-40d5-8a47-33f07b239a52",

     "regions": [

         {

            "regionId":"northeurope"

         },

         {

            "regionId":"ukwest"

         },

         {

            "regionId":"westeurope"

         }

     ],

     "selectedItems": {

        "databases": [

         {

               "id":"ej43ifg58cgjs8e9cod74ye6cbwm5nttf6ijzk64rshqoip1abqy"

            },

            {

               "id":"g344t5o8hgxgyp9r5bxqsn1aom88kjsc3hjnk3o8umzdptc3w3ey"

            }

       ],

         

        "sqlServers": [

         {

               "id":"rg65igjs8e6cbwm5nfg58cttf6ije9cod74yzk64oip1abqyrshq"

            },

            {

               "id":"o8hg9r5bxqg344t5sn1aom88kjscnk3o8umzd3hjptc3w3eyxgyp"

            }

       ]

     },

     "excludedItems": {

       "databases": []

     },

     "stagingServerId": "string",

     "managedStagingServerId": "string",  

     "name": "backup policy-01",

     "description": "created by Default Admin",

     "retrySettings": {

       "retryCount": 6

     },

     "policyNotificationSettings": {

       "recipient": "adminc@tech.local",

       "notifyOnSuccess": true,

       "notifyOnWarning": true,

       "notifyOnFailure": true

     },

     "isEnabled": true,

     "backupType": "AllSubscriptions",

     

     },

     "dailySchedule": {

       "dailyType": "Everyday",

       "selectedDays": [

         "Sunday"

       ],

       "runsPerHour": 1,

       "snapshotSchedule": {

         "hours": [

           20:00:00

         ],

         "snapshotsToKeep": 7

       },

       "backupSchedule": {

         "hours": [

           20:00:00

         ],

         "retention": {

           "timeRetentionDuration": 2,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "14"

       }

     },

     "weeklySchedule": {

       "startTime": 0,

     

       },

       "backupSchedule": {

         "selectedDays": [

           "Sunday"

         ],

         "retention": {

           "timeRetentionDuration": 0,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "14"

       }

     },

     "monthlySchedule": {

       "startTime": 20:00:00,

       "type": "First",

       "dayOfWeek": "Sunday",

       "dayOfMonth": 1,

       "monthlyLastDay": true,

       

       },

       "backupSchedule": {

         "selectedMonths": [

           "January"

         ],

         "retention": {

           "timeRetentionDuration": 0,

           "retentionDurationType": "Days"

         },

         "targetRepositoryId": "14"

       }

     },

     "yearlySchedule": {

       "startTime": 0,

       "month": "January",

       "type": "First",

       "dayOfWeek": "Sunday",

       "dayOfMonth": 0,

       "yearlyLastDay": true,

       "retentionYearsCount": 0,

       "targetRepositoryId": "string"

     }

    }

     

    Response:

    200

     

    Response Body:

    {

     "metadata": {

       "totals": {

         "totalCosts": {

           "pricePerMonth": {

             "value": 133.15584213161907,

             "type": "Valid"

           },

           "warnings": []

         },

         "totalBackupCosts": {

           "pricePerMonth": {

             "value": 2.3619445218835025,

             "type": "Valid"

           },

           "warnings": []

         },

         "totalTrafficCosts": {

           "pricePerMonth": {

             "value": 115.40550232315063,

             "type": "Valid"

           },

           "warnings": []

         },

         "totalTransactionCosts": {

           "pricePerMonth": {

             "value": 0.6883952865849224,

             "type": "Valid"

           },

           "warnings": []

         }

       },

       "assumptions": {

         "diskOccupiedSizeRatio": 0.7,

         "dailyChurnRatio": 0.03,

         "dataCompressionRatio": 2

       },

       "warningGroups": [

         {

           "type": "StorageCouldBeCheaper",

           "text": "There are more cost-effective storage account alternatives than Standard_RAGRS, for example Standard_LRS.",

           "warnings": [

             {

               "id": "StorageCouldBeCheaper_7201feeca16d2c15e8a0b0cce8f43a2a",

               "protectedItemHashIds": [],

               "schedules": [

                 "Daily"

               ],

               "text": "There are more cost-effective storage account alternatives than Standard_RAGRS, for example Standard_LRS."

             }

           ]

         }

       ],

       "currencyIsoCode": "USD"

     },

     "offset": 0,

     "limit": 30,

     "totalCount": 2,

     "results": [

       {

         "protectedItemHashId": "1bds4myhyh4o66wzxk6ixcgp1xssgmwyhremj1su6ixj6p4snrny",

         "name": "rep-vm1",

         "backupCost": {

           "pricePerMonth": {

             "value": 1.1809722609417512,

             "type": "Valid"

           },

           "meters": [

             {

               "resource": {

                 "name": "rep-vm2",

                 "hashId": "rep-vm2_disk1_94bce520eee044358e842ad7d36c025d",

                 "resourceId": "/subscriptions/3a9a8330-7bbc-4b03-9c68-15d674fbc809/resourcegroups/-resourcegroup/providers/microsoft.compute/disks/rep-vm2_disk1_94bce520eee044358e842ad7d36c025d",

                 "size": 30

               },

               "meterId": "0623400b-f198-453e-b090-f09555b18e6a",

               "description": "Data Stored",

               "unitPrice": 0.049,

               "unit": "OneGbPerMonth",

               "quantityUsed": 17.11554001364857

                  },

           ],

           "warnings": []

         },

         "trafficCost": {

           "pricePerMonth": {

             "value": 57.702751161575314,

             "type": "Valid"

           },

           "meters": [

             {

               "resource": {

                 "name": "-server_disk1_94bce520eee044358e842ad7d36c025d",

                 "hashId": "duprymsckjawm1zxi1oatpmrinqqom3wamxm7gr7kto9h7xjn54y",

                 "resourceId": "/subscriptions/3a9a8330-7bbc-4b03-9c68-15d674fbc809/resourcegroups/-resourcegroup/providers/microsoft.compute/disks/-server_disk1_94bce520eee044358e842ad7d36c025d",

                 "size": 30

               },

               "meterId": "9995d93a-7d35-4d3f-9c69-7a7fea447ef4",

               "description": "Zone1/DataTransferOut",

               "unitPrice": 0.087,

               "unit": "OneGb",

               "quantityUsed": 663.2500133514404

             }

           ],

           "warnings": []

         },

         "transactionCost": {

           "pricePerMonth": {

             "value": 0.3441976432924612,

             "type": "Valid"

           },

           "meters": [

             {

               "resource": {

                 "name": "-server_disk1_94bce520eee044358e842ad7d36c025d",

                 "hashId": "duprymsckjawm1zxi1oatpmrinqqom3wamxm7gr7kto9h7xjn54y",

                 "resourceId": "/subscriptions/3a9a8330-7bbc-4b03-9c68-15d674fbc809/resourcegroups/-resourcegroup/providers/microsoft.compute/disks/-server_disk1_94bce520eee044358e842ad7d36c025d",

                 "size": 30

               },

               "meterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",

               "description": "Write Operations",

               "unitPrice": 0.108,

               "unit": "OneGb",

               "quantityUsed": 3.125057311304348

             }

           ],

           "warnings": []

         },

         "totalPerMonth": {

           "pricePerMonth": {

             "value": 6.57792106580953,

             "type": "Valid"

           },

           "warnings": []

         },

         "warnings": []

       }

     ],

     "_links": {}

    }