Take One On-Demand Snapshot
Takes one on-demand snapshot for the specified cluster. Atlas takes on-demand snapshots immediately and scheduled snapshots at regular intervals. If an on-demand snapshot with a status of queued or inProgress exists, before taking another snapshot, wait until Atlas completes completes processing the previously taken on-demand snapshot.
To use this resource, the requesting Service Account or API Key must have the Project Backup Manager role.
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.
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
envelopeJSON 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
atlas api cloudBackups takeSnapshots --help import ( "os" "context" "log" sdk "go.mongodb.org/atlas-sdk/v20231115001/admin" ) func main() { ctx := context.Background() clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID") clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET") // See https://dochub.mongodb.org/core/atlas-go-sdk-oauth client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret)) if err != nil { log.Fatalf("Error: %v", err) } params = &sdk.TakeGroupClusterBackupSnapshotsApiParams{} sdkResp, httpResp, err := client.CloudBackupsApi. TakeGroupClusterBackupSnapshotsWithParams(ctx, params). Execute() } curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header "Accept: application/vnd.atlas.2023-11-15+json" \ --header "Content-Type: application/json" \ -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/backup/snapshots" \ -d '{ <Payload> }' curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \ --digest --include \ --header "Accept: application/vnd.atlas.2023-11-15+json" \ --header "Content-Type: application/json" \ -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/backup/snapshots" \ -d '{ <Payload> }' { "description": "string", "retentionInDays": 42 } { "createdAt": "2025-05-04T09:42:00Z", "description": "string", "expiresAt": "2025-05-04T09:42:00Z", "frequencyType": "hourly", "id": "32b6e34b3d91647abb20e7b8", "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "masterKeyUUID": "string", "mongodVersion": "string", "policyItems": [ "32b6e34b3d91647abb20e7b8" ], "snapshotType": "onDemand", "status": "queued", "storageSizeBytes": 42, "type": "replicaSet", "cloudProvider": "AWS", "copyRegions": [ "string" ], "replicaSetName": "string" } { "createdAt": "2025-05-04T09:42:00Z", "description": "string", "expiresAt": "2025-05-04T09:42:00Z", "frequencyType": "hourly", "id": "32b6e34b3d91647abb20e7b8", "links": [ { "href": "https://cloud.mongodb.com/api/atlas", "rel": "self" } ], "masterKeyUUID": "string", "mongodVersion": "string", "policyItems": [ "32b6e34b3d91647abb20e7b8" ], "snapshotType": "onDemand", "status": "queued", "storageSizeBytes": 42, "type": "shardedCluster", "configServerType": "EMBEDDED", "members": [ { "cloudProvider": "AWS", "id": "32b6e34b3d91647abb20e7b8", "replicaSetName": "string" } ], "snapshotIds": [ "32b6e34b3d91647abb20e7b8" ] } { "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" }