Create One Cluster from One Project
Deprecated
Creates one cluster in the specified project. Clusters contain a group of hosts that maintain the same data set. This resource can create clusters with asymmetrically-sized shards. Each project supports up to 25 database deployments. To use this resource, the requesting API Key must have the Project Owner role. This feature is not available for serverless clusters.
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.
Minimum length is
24
, maximum length is24
. Format should match the following pattern:^([a-f0-9]{24})$
.
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
.
Body
Required
Cluster to create in the specific project.
-
If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set acceptDataRisksAndForceReplicaSetReconfig to the current date.
Reconfiguring a Replica Set during a regional outage -
Range of instance sizes to which your cluster can scale.
Cluster Auto-Scaling -
Flag that indicates whether the cluster can perform backups. If set to
true
, the cluster can perform backups. You must set this value totrue
for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set tofalse
, the cluster doesn't use MongoDB Cloud backups. -
Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.
MongoDB Connector for Business Intelligence -
Configuration of nodes that comprise the cluster.
Values are
REPLICASET
,SHARDED
, orGEOSHARDED
. -
Storage capacity of instance data volumes expressed in gigabytes. Increase this number to add capacity.
This value is not configurable on M0/M2/M5 clusters.
MongoDB Cloud requires this parameter if you set replicationSpecs.
If you specify a disk size below the minimum (10 GB), this parameter defaults to the minimum disk size value.
Storage charge calculations depend on whether you choose the default value or a custom value.
The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.
Minimum value is
10
, maximum value is4096
. -
Disk warming mode selection.
Values are
FULLY_WARMED
orVISIBLE_EARLIER
. Default value isFULLY_WARMED
.Reduce Secondary Disk Warming Impact -
Cloud service provider that manages your customer keys to provide an additional layer of Encryption at Rest for the cluster.
Values are
NONE
,AWS
,AZURE
, orGCP
.Encryption at Rest using Customer Key Management -
Set this field to configure the Sharding Management Mode when creating a new Global Cluster.
When set to false, the management mode is set to Atlas-Managed Sharding. This mode fully manages the sharding of your Global Cluster and is built to provide a seamless deployment experience.
When set to true, the management mode is set to Self-Managed Sharding. This mode leaves the management of shards in your hands and is built to provide an advanced and flexible deployment experience.
This setting cannot be changed once the cluster is deployed.
Creating a Global Cluster -
Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster. The MongoDB Cloud console doesn't display your labels.
Cluster labels are deprecated and will be removed in a future release. We strongly recommend that you use resource tags instead.
Human-readable labels applied to this MongoDB Cloud component.
-
MongoDB major version of the cluster.
On creation: Choose from the available versions of MongoDB, or leave unspecified for the current recommended default in the MongoDB Cloud platform. The recommended version is a recent Long Term Support version. The default is not guaranteed to be the most recently released version throughout the entire release cycle. For versions available in a specific project, see the linked documentation or use the API endpoint for project LTS versions endpoint.
On update: Increase version only by 1 major version at a time. If the cluster is pinned to a MongoDB feature compatibility version exactly one major version below the current MongoDB version, the MongoDB version can be downgraded to the previous major version.
Available MongoDB Versions in Atlas -
Version of MongoDB that the cluster runs.
Format should match the following pattern:
([\d]+\.[\d]+\.[\d]+)
. -
Human-readable label that identifies the cluster.
Minimum length is
1
, maximum length is64
. Format should match the following pattern:^[a-zA-Z0-9][a-zA-Z0-9-]*$
. -
Number of shards up to 50 to deploy for a sharded cluster. The resource returns
1
to indicate a replica set and values of2
and higher to indicate a sharded cluster. The returned value equals the number of shards in the cluster.Minimum value is
1
, maximum value is50
. Default value is1
.Sharding -
Flag that indicates whether the cluster is paused.
-
Flag that indicates whether the cluster uses continuous cloud backups.
Continuous Cloud Backups -
Flag that indicates whether the M10 or higher cluster can perform Cloud Backups. If set to
true
, the cluster can perform backups. If this and backupEnabled are set tofalse
, the cluster doesn't use MongoDB Cloud backups. -
Number of members that belong to the replica set. Each member retains a copy of your databases, providing high availability and data redundancy. Use replicationSpecs instead.
Values are
3
,5
, or7
. Default value is3
. -
Physical location where MongoDB Cloud provisions cluster nodes.
-
List of settings that configure your cluster regions.
- For Global Clusters, each object in the array represents one zone where MongoDB Cloud deploys your clusters nodes.
- For non-Global sharded clusters and replica sets, the single object represents where MongoDB Cloud deploys your clusters nodes.
-
Root Certificate Authority that MongoDB Atlas clusters uses. MongoDB Cloud supports Internet Security Research Group.
Value is
ISRGROOTX1
. Default value isISRGROOTX1
. -
Flag that indicates whether termination protection is enabled on the cluster. If set to
true
, MongoDB Cloud won't delete the cluster. If set tofalse
, MongoDB Cloud will delete the cluster.Default value is
false
. -
Method by which the cluster maintains the MongoDB versions. If value is
CONTINUOUS
, you must not specify mongoDBMajorVersion.Values are
LTS
orCONTINUOUS
. Default value isLTS
.
atlas api clusters createCluster --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20230101001/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.CreateClusterApiParams{}
sdkResp, httpResp, err := client.ClustersApi.
CreateClusterWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2023-01-01+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2023-01-01+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters" \
-d '{ <Payload> }'
{
"acceptDataRisksAndForceReplicaSetReconfig": "2025-05-04T09:42:00Z",
"autoScaling": {
"compute": {
"enabled": true,
"scaleDownEnabled": true
},
"diskGBEnabled": true
},
"backupEnabled": true,
"biConnector": {
"enabled": true,
"readPreference": "PRIMARY"
},
"clusterType": "REPLICASET",
"diskSizeGB": 42.0,
"diskWarmingMode": "FULLY_WARMED",
"encryptionAtRestProvider": "NONE",
"globalClusterSelfManagedSharding": true,
"labels": [
{
"key": "string",
"value": "string"
}
],
"mongoDBMajorVersion": "string",
"mongoDBVersion": "string",
"name": "string",
"numShards": 1,
"paused": true,
"pitEnabled": true,
"providerBackupEnabled": true,
"providerSettings": {
"providerName": "AWS",
"autoScaling": {
"compute": {
"maxInstanceSize": "M10",
"minInstanceSize": "M10"
}
},
"diskIOPS": 42,
"encryptEBSVolume": true,
"instanceSizeName": "M10",
"regionName": "US_GOV_WEST_1",
"volumeType": "STANDARD"
},
"replicationFactor": 3,
"replicationSpec": {
"additionalProperty1": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
},
"additionalProperty2": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
}
},
"replicationSpecs": [
{
"id": "32b6e34b3d91647abb20e7b8",
"numShards": 1,
"regionsConfig": {
"additionalProperty1": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
},
"additionalProperty2": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
}
},
"zoneName": "string"
}
],
"rootCertType": "ISRGROOTX1",
"tags": [
{
"key": "string",
"value": "string"
}
],
"terminationProtectionEnabled": false,
"versionReleaseSystem": "LTS"
}
{
"acceptDataRisksAndForceReplicaSetReconfig": "2025-05-04T09:42:00Z",
"autoScaling": {
"compute": {
"enabled": true,
"scaleDownEnabled": true
},
"diskGBEnabled": true
},
"backupEnabled": true,
"biConnector": {
"enabled": true,
"readPreference": "PRIMARY"
},
"clusterType": "REPLICASET",
"connectionStrings": {
"awsPrivateLink": {
"additionalProperty1": "string",
"additionalProperty2": "string"
},
"awsPrivateLinkSrv": {
"additionalProperty1": "string",
"additionalProperty2": "string"
},
"private": "string",
"privateEndpoint": [
{
"connectionString": "string",
"endpoints": [
{
"endpointId": "string",
"providerName": "AWS",
"region": "string"
}
],
"srvConnectionString": "string",
"srvShardOptimizedConnectionString": "string",
"type": "MONGOD"
}
],
"privateSrv": "string",
"standard": "string",
"standardSrv": "string"
},
"createDate": "2025-05-04T09:42:00Z",
"diskSizeGB": 42.0,
"diskWarmingMode": "FULLY_WARMED",
"encryptionAtRestProvider": "NONE",
"globalClusterSelfManagedSharding": true,
"groupId": "32b6e34b3d91647abb20e7b8",
"id": "32b6e34b3d91647abb20e7b8",
"labels": [
{
"key": "string",
"value": "string"
}
],
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"mongoDBMajorVersion": "string",
"mongoDBVersion": "string",
"mongoURI": "string",
"mongoURIUpdated": "2025-05-04T09:42:00Z",
"mongoURIWithOptions": "string",
"name": "string",
"numShards": 1,
"paused": true,
"pitEnabled": true,
"providerBackupEnabled": true,
"providerSettings": {
"providerName": "AWS",
"autoScaling": {
"compute": {
"maxInstanceSize": "M10",
"minInstanceSize": "M10"
}
},
"diskIOPS": 42,
"encryptEBSVolume": true,
"instanceSizeName": "M10",
"regionName": "US_GOV_WEST_1",
"volumeType": "STANDARD"
},
"replicationFactor": 3,
"replicationSpec": {
"additionalProperty1": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
},
"additionalProperty2": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
}
},
"replicationSpecs": [
{
"id": "32b6e34b3d91647abb20e7b8",
"numShards": 1,
"regionsConfig": {
"additionalProperty1": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
},
"additionalProperty2": {
"analyticsNodes": 42,
"electableNodes": 0,
"priority": 42,
"readOnlyNodes": 42
}
},
"zoneName": "string"
}
],
"rootCertType": "ISRGROOTX1",
"srvAddress": "string",
"stateName": "IDLE",
"tags": [
{
"key": "string",
"value": "string"
}
],
"terminationProtectionEnabled": false,
"versionReleaseSystem": "LTS"
}
{
"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": 402,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Payment Required",
"errorCode": "NO_PAYMENT_INFORMATION_FOUND"
}
{
"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": 409,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
"reason": "Conflict",
"errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}