Create One Legacy Backup Restore Job Deprecated
Restores one legacy backup for one cluster in the specified project. To use this resource, the requesting Service Account or API Key must have the Project Owner role. Effective 23 March 2020, all new clusters can use only Cloud Backups. When you upgrade to 4.2, your backup system upgrades to cloud backup if it is currently set to legacy backup. After this upgrade, all your existing legacy backup snapshots remain available. They expire over time in accordance with your retention policy. Your backup policy resets to the default schedule. If you had a custom backup policy in place with legacy backups, you must re-create it with the procedure outlined in the Cloud Backup documentation. This endpoint doesn't support creating checkpoint restore jobs for sharded clusters, or creating restore jobs for queryable backup snapshots. If you create an automated restore job by specifying delivery.methodName
of AUTOMATED_RESTORE
in your request body, MongoDB Cloud removes all existing data on the target cluster prior to the restore.
Path parameters
-
Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
NOTE: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group/project id remains the same. The resource and corresponding endpoints use the term groups.
Format should match the following pattern:
^([a-f0-9]{24})$
. -
Human-readable label that identifies the cluster with the snapshot you want to return.
Format should match the following pattern:
^[a-zA-Z0-9][a-zA-Z0-9-]*$
.
Query parameters
-
Flag that indicates whether Application wraps the response in an
envelope
JSON object. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. Endpoints that return a list of results use the results object as an envelope. Application adds the status parameter to the response body.Default value is
false
. -
Flag that indicates whether the response body should be in the prettyprint format.
Default value is
false
.Prettyprint
Body Required
Legacy backup to restore to one cluster in the specified project.
-
Unique 24-hexadecimal digit string that identifies the sharded cluster checkpoint. The checkpoint represents the point in time back to which you want to restore you data. This parameter applies when
"delivery.methodName" : "AUTOMATED_RESTORE"
. Use this parameter with sharded clusters only.- If you set checkpointId, you can't set oplogInc, oplogTs, snapshotId, or pointInTimeUTCMillis.
- If you provide this parameter, this endpoint restores all data up to this checkpoint to the database you specify in the delivery object.
Format should match the following pattern:
^([a-f0-9]{24})$
. -
Method and details that indicate how to deliver the restored snapshot data.
-
Thirty-two-bit incrementing ordinal that represents operations within a given second. When paired with oplogTs, this represents the point in time to which MongoDB Cloud restores your data. This parameter applies when
"delivery.methodName" : "AUTOMATED_RESTORE"
.- If you set oplogInc, you must set oplogTs, and can't set checkpointId, snapshotId, or pointInTimeUTCMillis.
- If you provide this parameter, this endpoint restores all data up to and including this Oplog timestamp to the database you specified in the delivery object.
Minimum value is
1
. -
Date and time from which you want to restore this snapshot. This parameter expresses its value in ISO 8601 format in UTC. This represents the first part of an Oplog timestamp. When paired with oplogInc, they represent the last database operation to which you want to restore your data. This parameter applies when
"delivery.methodName" : "AUTOMATED_RESTORE"
. Run a query against local.oplog.rs on your replica set to find the desired timestamp.- If you set oplogTs, you must set oplogInc, and you can't set checkpointId, snapshotId, or pointInTimeUTCMillis.
- If you provide this parameter, this endpoint restores all data up to and including this Oplog timestamp to the database you specified in the delivery object.
Format should match the following pattern:
^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z|[+-][01]\\d:[0-5]\\d)$
. -
Timestamp from which you want to restore this snapshot. This parameter expresses its value in the number of milliseconds elapsed since the UNIX epoch. This timestamp must fall within the last 24 hours of the current time. This parameter applies when
"delivery.methodName" : "AUTOMATED_RESTORE"
.- If you provide this parameter, this endpoint restores all data up to this point in time to the database you specified in the delivery object.
- If you set pointInTimeUTCMillis, you can't set oplogInc, oplogTs, snapshotId, or checkpointId.
Minimum value is
1199145600000
.UNIX Epoch -
Unique 24-hexadecimal digit string that identifies the snapshot to restore. If you set snapshotId, you can't set oplogInc, oplogTs, pointInTimeUTCMillis, or checkpointId.
Format should match the following pattern:
^([a-f0-9]{24})$
.
curl \ --request POST 'https://cloud.mongodb.com/api/atlas/v1.0/groups/32b6e34b3d91647abb20e7b8/clusters/{clusterName}/restoreJobs' \ --header "Authorization: Bearer $ACCESS_TOKEN" \ --header "Content-Type: application/json" \ --data '{"checkpointId":"32b6e34b3d91647abb20e7b8","delivery":{"expirationHours":42,"maxDownloads":42,"methodName":"CLIENT_PIT_HTTP","targetClusterId":"32b6e34b3d91647abb20e7b8","targetClusterName":"string","targetGroupId":"32b6e34b3d91647abb20e7b8"},"oplogInc":42,"oplogTs":"string","pointInTimeUTCMillis":42,"snapshotId":"32b6e34b3d91647abb20e7b8"}'
{ "checkpointId": "32b6e34b3d91647abb20e7b8", "delivery": { "expirationHours": 42, "maxDownloads": 42, "methodName": "CLIENT_PIT_HTTP", "targetClusterId": "32b6e34b3d91647abb20e7b8", "targetClusterName": "string", "targetGroupId": "32b6e34b3d91647abb20e7b8" }, "oplogInc": 42, "oplogTs": "string", "pointInTimeUTCMillis": 42, "snapshotId": "32b6e34b3d91647abb20e7b8" }
{ "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "results": [ { "batchId": "32b6e34b3d91647abb20e7b8", "clusterId": "32b6e34b3d91647abb20e7b8", "clusterName": "string", "created": "2025-05-04T09:42:00Z", "delivery": { "authHeader": "string", "authValue": "string", "expirationHours": 42, "expires": "2025-05-04T09:42:00Z", "maxDownloads": 42, "methodName": "CLIENT_PIT_HTTP", "statusName": "NOT_STARTED", "targetClusterId": "32b6e34b3d91647abb20e7b8", "targetClusterName": "string", "targetGroupId": "32b6e34b3d91647abb20e7b8", "url": "string", "urlV2": "string" }, "encryptionEnabled": true, "groupId": "32b6e34b3d91647abb20e7b8", "hashes": [ { "fileName": "string", "hash": "string", "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "typeName": "SHA1" } ], "id": "32b6e34b3d91647abb20e7b8", "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "masterKeyUUID": "string", "snapshotId": "32b6e34b3d91647abb20e7b8", "statusName": "IN_PROGRESS", "timestamp": { "increment": 1199145600, "date": "2025-05-04T09:42:00Z" } } ], "totalCount": 42 }
{ "error": 400, "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.", "reason": "Bad Request", "errorCode": "VALIDATION_ERROR" }
{ "error": 401, "detail": "(This is just an example, the exception may not be related to this endpoint)", "reason": "Unauthorized", "errorCode": "NOT_ORG_GROUP_CREATOR" }
{ "error": 403, "detail": "(This is just an example, the exception may not be related to this endpoint)", "reason": "Forbidden", "errorCode": "CANNOT_CHANGE_GROUP_NAME" }
{ "error": 404, "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS", "reason": "Not Found", "errorCode": "RESOURCE_NOT_FOUND" }
{ "error": 500, "detail": "(This is just an example, the exception may not be related to this endpoint)", "reason": "Internal Server Error", "errorCode": "UNEXPECTED_ERROR" }