Navigation

Take One On-Demand Snapshot

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.

The Atlas API authenticates using HTTP Digest Authentication. Provide a programmatic API public key and corresponding private key as the username and password when constructing the HTTP request.

To learn how to configure API access for an Atlas project, see Configure Atlas API Access.

Take one on-demand snapshot. Atlas takes on-demand snapshots immediately, unlike scheduled snapshots which occur at regular intervals. If there is already an on-demand snapshot with a status of queued or inProgress, you must wait until Atlas has completed the on-demand snapshot before taking another.

Required Roles

You must grant your API Key either the Project Owner role to successfully call this endpoint.

All requests to this endpoint must originate from an IP address in the organization’s API access list.

Resource

Base URL: https://cloud.mongodb.com/api/atlas/v1.0

POST /groups/{GROUP-ID}/clusters/{CLUSTER-NAME}/backup/snapshots

Request

Path Parameters

Path Element Type Necessity Description
PROJECT-ID string Required Unique identifier of the project for the Atlas cluster.
CLUSTER-NAME string Required Name of the Atlas cluster that contains the snapshots you want to retrieve.

Query Parameters

This endpoint might use any of the HTTP request query parameters available to all Atlas API resources. All of these are optional.

Name Type Necessity Description Default
pretty boolean Optional Flag indicating whether the response body should be in a prettyprint format. false
envelope boolean Optional

Flag indicating if Atlas should wrap the response in a JSON envelope.

This option may be needed for some API clients. These clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query.

For endpoints that return one result, the response body includes:

status HTTP response code
envelope Expected response body
false

Body Parameters

Path Element Type Necessity Description
description string Required Description of the on-demand snapshot.
retentionInDays number Required Number of days that Atlas should retain the on-demand snapshot. Must be at least 1 .

Response

Name Type Description
cloudProvider string Cloud provider that stores this snapshot. Atlas returns this parameter when “type”: “replicaSet”.
createdAt string Timestamp in ISO 8601 date and time format in UTC when Atlas took the snapshot.
description string Description of the snapshot. Atlas returns this parameter when “status”: “onDemand”.
expiresAt string Timestamp in ISO 8601 date and time format in UTC when Atlas deletes the snapshot.
id string Unique identifier of the snapshot.
links array One or more links to sub-resources and/or related resources. The relations between URLs are explained in the Web Linking Specification
masterKeyUUID string Unique identifier of the AWS KMS Customer Master Key used to encrypt the snapshot. Atlas returns this value for clusters using Encryption at Rest via Customer KMS.
members array of objects List of snapshots and the cloud provider where the snapshots are stored. Atlas returns this parameter when “type”: “shardedCluster”.
members[n]
.cloudProvider
string Cloud provider that stores this snapshot.
members[n].id string Unique identifier for the sharded cluster snapshot.
members[n].replicaSetName string Label given to a shard or config server from which Atlas took this snapshot.
mongodVersion string Version of the MongoDB server.
replicaSetName string Label given to the replica set from which Atlas took this snapshot. Atlas returns this parameter when “type”: “replicaSet”.
snapshotIds array of strings Unique identifiers of the snapshots created for the shards and config server for a sharded cluster. Atlas returns this parameter when “type”: “shardedCluster”. These identifiers should match those given in the members[n].id parameters. This allows you to map a snapshot to its shard or config server name.
snapshotType string Type of snapshot. Atlas can return onDemand or scheduled.
status string

Current status of the snapshot. Atlas can return one of the following values:

  • queued
  • inProgress
  • completed
  • failed
storageSizeBytes integer Size of the snapshot in bytes.
type string Type of cluster. Atlas can return replicaSet or shardedCluster.

Example Request

1
2
3
4
5
6
7
8
9
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \
     --digest --include \
     --header "Accept: application/json" \
     --header "Content-Type: application/json" \
     --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/clusters/{CLUSTER-NAME}/backup/snapshots?pretty=true" \
     --data '{
         "description": "On Demand Snapshot",
         "retentionInDays": 5
       }'

Example Response

Response Header

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Date: {dateInUnixFormat}
WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false
Content-Length: {requestLengthInBytes}
Connection: keep-alive
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: application/json
Strict-Transport-Security: max-age=300
Date: {dateInUnixFormat}
Connection: keep-alive
Content-Length: {requestLengthInBytes}

Response Body

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "cloudProvider" : "AZURE",
  "createdAt" : "2020-09-24T03:50:43Z",
  "description" : "On Demand Snapshot",
  "expiresAt" : "2020-09-29T03:50:43Z",
  "id" : "{SNAPSHOT-ID}",
  "links" : [ {
    "href" : "http://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/clusters/{CLUSTER-NAME}/backup/snapshots/{SNAPSHOT-ID}",
    "rel" : "self"
  }, {
    "href" : "http://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/clusters/{CLUSTER-NAME}",
    "rel" : "http://mms.mongodb.com/cluster"
  } ],
  "mongodVersion" : "4.0.20",
  "replicaSetName" : "newCluster",
  "snapshotType" : "onDemand",
  "status" : "queued",
  "storageSizeBytes" : 0,
  "type" : "replicaSet"
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "createdAt" : "2018-12-31T20:54:03Z",
  "description" : "On Demand Snapshot",
  "expiresAt" : "2019-01-05T20:54:03Z",
  "id" : "{SNAPSHOT-ID}",
  "links" : [ {
    "href" : "http://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/clusters/{CLUSTER-NAME}/backup/snapshots/{SNAPSHOT-ID}",
    "rel" : "self"
  }, {
    "href" : "http://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/clusters/{CLUSTER-NAME}",
    "rel" : "http://mms.mongodb.com/cluster"
  } ],
  "members" : [ {
    "cloudProvider" : "AZURE",
    "id" : "{SNAPSHOT-ID-1}"
    "replicaSetName" : "atlas-f0hyvs-shard-0"
  }, {
    "cloudProvider" : "AZURE",
    "id" : "{SNAPSHOT-ID-2}"
    "replicaSetName" : "atlas-f0hyvs-config-0"
  } ],
  "mongodVersion" : "4.0.20",
  "snapshotIds" : [ "{SNAPSHOT-ID-1}", "{SNAPSHOT-ID-2}" ],
  "snapshotType" : "onDemand",
  "status" : "completed",
  "storageSizeBytes" : 2760466432,
  "type" : "shardedCluster"
}