Create One Cluster in One Project

POST /api/atlas/v2/groups/{groupId}/clusters

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 Service Account or API Key must have the Project Owner role. This feature is not available for serverless clusters.

Please note that using an instanceSize of M2 or M5 will create a Flex cluster instead. Support for the instanceSize of M2 or M5 will be discontinued in January 2026. We recommend using the createFlexCluster API for such configurations moving forward. Deprecated versions: v2-{2024-08-05}, v2-{2023-02-01}, v2-{2023-01-01}

createFlexCluster

Path parameters

  • groupId string Required

    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})$.

Query parameters

  • envelope boolean

    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.

  • pretty boolean

    Flag that indicates whether the response body should be in the prettyprint format.

    Default value is false.

    Prettyprint
application/vnd.atlas.2024-10-23+json

Body Required

Cluster to create in this project.

  • acceptDataRisksAndForceReplicaSetReconfig string(date-time)

    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. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

    Reconfiguring a Replica Set during a regional outage
  • advancedConfiguration object

    Group of settings that configures a subset of the advanced configuration details.

    Hide advancedConfiguration attributes Show advancedConfiguration attributes object
    • customOpensslCipherConfigTls12 array[string]

      The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

      Values are TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

    • minimumEnabledTlsProtocol string

      Minimum Transport Layer Security (TLS) version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.

      Values are TLS1_0, TLS1_1, or TLS1_2.

      This option corresponds to the `netssldisabledProtocols` `mongod` configuration file option
    • tlsCipherConfigMode string

      The TLS cipher suite configuration mode. The default mode uses the default cipher suites. The custom mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.

      Values are CUSTOM or DEFAULT.

  • backupEnabled boolean

    Flag that indicates whether the cluster can perform backups. If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups.

    Default value is false.

    Cloud Backups
  • biConnector object

    Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.

    MongoDB Connector for Business Intelligence
    Hide biConnector attributes Show biConnector attributes object
    • enabled boolean

      Flag that indicates whether MongoDB Connector for Business Intelligence is enabled on the specified cluster.

    • readPreference string

      Data source node designated for the MongoDB Connector for Business Intelligence on MongoDB Cloud. The MongoDB Connector for Business Intelligence on MongoDB Cloud reads data from the primary, secondary, or analytics node based on your read preferences. Defaults to ANALYTICS node, or SECONDARY if there are no ANALYTICS nodes.

      Values are PRIMARY, SECONDARY, or ANALYTICS.

      Read preferences for BI Connector
  • clusterType string

    Configuration of nodes that comprise the cluster.

    Values are REPLICASET, SHARDED, or GEOSHARDED.

  • configServerManagementMode string

    Config Server Management Mode for creating or updating a sharded cluster.

    When configured as ATLAS_MANAGED, atlas may automatically switch the cluster's config server type for optimal performance and savings.

    When configured as FIXED_TO_DEDICATED, the cluster will always use a dedicated config server.

    Values are ATLAS_MANAGED or FIXED_TO_DEDICATED. Default value is ATLAS_MANAGED.

    MongoDB Sharded Cluster Config Servers
  • diskWarmingMode string

    Disk warming mode selection.

    Values are FULLY_WARMED or VISIBLE_EARLIER. Default value is FULLY_WARMED.

    Reduce Secondary Disk Warming Impact
  • encryptionAtRestProvider string

    Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely.

    Values are NONE, AWS, AZURE, or GCP.

    Encryption at Rest using Customer Key Management
  • globalClusterSelfManagedSharding boolean

    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
  • labels array[object] Deprecated

    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.

    Resource Tags
    Hide labels attributes Show labels attributes object
    • key string

      Key applied to tag and categorize this component.

      Minimum length is 1, maximum length is 255.

    • value string

      Value set to the Key applied to tag and categorize this component.

      Minimum length is 1, maximum length is 255.

  • mongoDBEmployeeAccessGrant object

    MongoDB employee granted access level and expiration for a cluster.

    Hide mongoDBEmployeeAccessGrant attributes Show mongoDBEmployeeAccessGrant attributes object
    • expirationTime string(date-time) Required

      Expiration date for the employee access grant. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

    • grantType string Required

      Level of access to grant to MongoDB Employees.

      Values are CLUSTER_DATABASE_LOGS, CLUSTER_INFRASTRUCTURE, or CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA.

  • mongoDBMajorVersion string

    MongoDB major version of the cluster. Set to the binary major version.

    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
  • name string

    Human-readable label that identifies the cluster.

    Format should match the following pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$.

  • paused boolean

    Flag that indicates whether the cluster is paused.

  • pitEnabled boolean

    Flag that indicates whether the cluster uses continuous cloud backups.

    Continuous Cloud Backups
  • redactClientLogData boolean

    Enable or disable log redaction.

    This setting configures the mongod or mongos to redact any document field contents from a message accompanying a given log event before logging. This prevents the program from writing potentially sensitive data stored on the database to the diagnostic log. Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.

    Use redactClientLogData in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.

    Note: changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.

    Log Redaction
  • replicaSetScalingStrategy string

    Set this field to configure the replica set scaling mode for your cluster.

    By default, Atlas scales under WORKLOAD_TYPE. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes.

    When configured as SEQUENTIAL, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads.

    When configured as NODE_TYPE, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads.

    Values are SEQUENTIAL, WORKLOAD_TYPE, or NODE_TYPE. Default value is WORKLOAD_TYPE.

    Modify the Replica Set Scaling Mode
  • replicationSpecs array[object]

    List of settings that configure your cluster regions. This array has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations.

    Details that explain how MongoDB Cloud replicates data on the specified MongoDB database.

    Hide replicationSpecs attributes Show replicationSpecs attributes object
    • regionConfigs array[object]

      Hardware specifications for nodes set for a given region. Each regionConfigs object must be unique by region and cloud provider within the replicationSpec. Each regionConfigs object describes the region's priority in elections and the number and type of MongoDB nodes that MongoDB Cloud deploys to the region. Each regionConfigs object must have either an analyticsSpecs object, electableSpecs object, or readOnlySpecs object. Tenant clusters only require electableSpecs. Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec.

      Example:

      If you set "replicationSpecs[n].regionConfigs[m].analyticsSpecs.instanceSize" : "M30", set "replicationSpecs[n].regionConfigs[m].electableSpecs.instanceSize" :"M30"if you have electable nodes and"replicationSpecs[n].regionConfigs[m].readOnlySpecs.instanceSize" : "M30" if you have read-only nodes.

      One of:
    • zoneName string

      Human-readable label that describes the zone this shard belongs to in a Global Cluster. Provide this value only if "clusterType" : "GEOSHARDED" but not "selfManagedSharding" : true.

  • rootCertType string

    Root Certificate Authority that MongoDB Atlas cluster uses. MongoDB Cloud supports Internet Security Research Group.

    Value is ISRGROOTX1. Default value is ISRGROOTX1.

  • tags array[object]

    List that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster.

    Key-value pair that tags and categorizes a MongoDB Cloud organization, project, or cluster. For example, environment : production.

    Resource Tags
    Hide tags attributes Show tags attributes object
    • key string Required

      Constant that defines the set of the tag. For example, environment in the environment : production tag.

      Minimum length is 1, maximum length is 255.

    • value string Required

      Variable that belongs to the set of the tag. For example, production in the environment : production tag.

      Minimum length is 1, maximum length is 255.

  • terminationProtectionEnabled boolean

    Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.

    Default value is false.

  • versionReleaseSystem string

    Method by which the cluster maintains the MongoDB versions. If value is CONTINUOUS, you must not specify mongoDBMajorVersion.

    Values are LTS or CONTINUOUS. Default value is LTS.

Responses

  • 201 application/vnd.atlas.2024-10-23+json

    Created

    Hide response attributes Show response attributes object
    • acceptDataRisksAndForceReplicaSetReconfig string(date-time)

      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. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

      Reconfiguring a Replica Set during a regional outage
    • advancedConfiguration object

      Group of settings that configures a subset of the advanced configuration details.

      Hide advancedConfiguration attributes Show advancedConfiguration attributes object
      • customOpensslCipherConfigTls12 array[string]

        The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

        Values are TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

      • minimumEnabledTlsProtocol string

        Minimum Transport Layer Security (TLS) version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.

        Values are TLS1_0, TLS1_1, or TLS1_2.

        This option corresponds to the `netssldisabledProtocols` `mongod` configuration file option
      • tlsCipherConfigMode string

        The TLS cipher suite configuration mode. The default mode uses the default cipher suites. The custom mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.

        Values are CUSTOM or DEFAULT.

    • backupEnabled boolean

      Flag that indicates whether the cluster can perform backups. If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups.

      Default value is false.

      Cloud Backups
    • biConnector object

      Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.

      MongoDB Connector for Business Intelligence
      Hide biConnector attributes Show biConnector attributes object
      • enabled boolean

        Flag that indicates whether MongoDB Connector for Business Intelligence is enabled on the specified cluster.

      • readPreference string

        Data source node designated for the MongoDB Connector for Business Intelligence on MongoDB Cloud. The MongoDB Connector for Business Intelligence on MongoDB Cloud reads data from the primary, secondary, or analytics node based on your read preferences. Defaults to ANALYTICS node, or SECONDARY if there are no ANALYTICS nodes.

        Values are PRIMARY, SECONDARY, or ANALYTICS.

        Read preferences for BI Connector
    • clusterType string

      Configuration of nodes that comprise the cluster.

      Values are REPLICASET, SHARDED, or GEOSHARDED.

    • configServerManagementMode string

      Config Server Management Mode for creating or updating a sharded cluster.

      When configured as ATLAS_MANAGED, atlas may automatically switch the cluster's config server type for optimal performance and savings.

      When configured as FIXED_TO_DEDICATED, the cluster will always use a dedicated config server.

      Values are ATLAS_MANAGED or FIXED_TO_DEDICATED. Default value is ATLAS_MANAGED.

      MongoDB Sharded Cluster Config Servers
    • configServerType string

      Describes a sharded cluster's config server type.

      Values are DEDICATED or EMBEDDED.

      MongoDB Sharded Cluster Config Servers
    • connectionStrings object

      Collection of Uniform Resource Locators that point to the MongoDB database.

      Connection string URI format
      Hide connectionStrings attributes Show connectionStrings attributes object
      • awsPrivateLinkSrv object

        Private endpoint-aware connection strings that use AWS-hosted clusters with Amazon Web Services (AWS) PrivateLink. Each key identifies an Amazon Web Services (AWS) interface endpoint. Each value identifies the related mongodb:// connection string that you use to connect to Atlas through the interface endpoint that the key names. If the cluster uses an optimized connection string, awsPrivateLinkSrv contains the optimized connection string. If the cluster has the non-optimized (legacy) connection string, awsPrivateLinkSrv contains the non-optimized connection string even if an optimized connection string is also present.

        Network Peering Connection
        Hide awsPrivateLinkSrv attribute Show awsPrivateLinkSrv attribute object
        • * string Additional properties

          Private endpoint-aware connection strings that use AWS-hosted clusters with Amazon Web Services (AWS) PrivateLink. Each key identifies an Amazon Web Services (AWS) interface endpoint. Each value identifies the related mongodb:// connection string that you use to connect to Atlas through the interface endpoint that the key names. If the cluster uses an optimized connection string, awsPrivateLinkSrv contains the optimized connection string. If the cluster has the non-optimized (legacy) connection string, awsPrivateLinkSrv contains the non-optimized connection string even if an optimized connection string is also present.

          Network Peering Connection
      • private string

        Network peering connection strings for each interface Virtual Private Cloud (VPC) endpoint that you configured to connect to this cluster. This connection string uses the mongodb+srv:// protocol. The resource returns this parameter once someone creates a network peering connection to this cluster. This protocol tells the application to look up the host seed list in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn't, use connectionStrings.private. For Amazon Web Services (AWS) clusters, this resource returns this parameter only if you enable custom DNS.

        Network Peering Connection
      • privateEndpoint array[object]

        List of private endpoint-aware connection strings that you can use to connect to this cluster through a private endpoint. This parameter returns only if you deployed a private endpoint to all regions to which you deployed this clusters' nodes.

        Private endpoint-aware connection string that you can use to connect to this cluster through a private endpoint.

        Hide privateEndpoint attributes Show privateEndpoint attributes object
        • connectionString string

          Private endpoint-aware connection string that uses the mongodb:// protocol to connect to MongoDB Cloud through a private endpoint.

        • endpoints array[object]

          List that contains the private endpoints through which you connect to MongoDB Cloud when you use connectionStrings.privateEndpoint[n].connectionString or connectionStrings.privateEndpoint[n].srvConnectionString.

          Details of a private endpoint deployed for this cluster.

          Hide endpoints attributes Show endpoints attributes object
          • endpointId string

            Unique string that the cloud provider uses to identify the private endpoint.

          • providerName string

            Cloud provider in which MongoDB Cloud deploys the private endpoint.

            Values are AWS, AZURE, or GCP.

          • region string

            Region where the private endpoint is deployed.

        • srvConnectionString string

          Private endpoint-aware connection string that uses the mongodb+srv:// protocol to connect to MongoDB Cloud through a private endpoint. The mongodb+srv protocol tells the driver to look up the seed list of hosts in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application supports it. If it doesn't, use connectionStrings.privateEndpoint[n].connectionString.

        • srvShardOptimizedConnectionString string

          Private endpoint-aware connection string optimized for sharded clusters that uses the mongodb+srv:// protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster supports it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[n].srvConnectionString.

        • type string

          MongoDB process type to which your application connects. Use MONGOD for replica sets and MONGOS for sharded clusters.

          Values are MONGOD or MONGOS.

      • privateSrv string

        Network peering connection strings for each interface Virtual Private Cloud (VPC) endpoint that you configured to connect to this cluster. This connection string uses the mongodb+srv:// protocol. The resource returns this parameter when someone creates a network peering connection to this cluster. This protocol tells the application to look up the host seed list in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your driver supports it. If it doesn't, use connectionStrings.private. For Amazon Web Services (AWS) clusters, this parameter returns only if you enable custom DNS.

        Network Peering Connection
      • standard string

        Public connection string that you can use to connect to this cluster. This connection string uses the mongodb:// protocol.

        Connection String URI Format
      • standardSrv string

        Public connection string that you can use to connect to this cluster. This connection string uses the mongodb+srv:// protocol.

        Connection String URI Format
    • createDate string(date-time)

      Date and time when MongoDB Cloud created this cluster. This parameter expresses its value in ISO 8601 format in UTC.

    • diskWarmingMode string

      Disk warming mode selection.

      Values are FULLY_WARMED or VISIBLE_EARLIER. Default value is FULLY_WARMED.

      Reduce Secondary Disk Warming Impact
    • encryptionAtRestProvider string

      Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely.

      Values are NONE, AWS, AZURE, or GCP.

      Encryption at Rest using Customer Key Management
    • featureCompatibilityVersion string

      Feature compatibility version of the cluster. This will always appear regardless of whether FCV is pinned.

    • featureCompatibilityVersionExpirationDate string(date-time)

      Feature compatibility version expiration date. Will only appear if FCV is pinned. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

    • globalClusterSelfManagedSharding boolean

      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
    • groupId string

      Unique 24-hexadecimal character string that identifies the project.

      Format should match the following pattern: ^([a-f0-9]{24})$.

    • id string

      Unique 24-hexadecimal digit string that identifies the cluster.

      Format should match the following pattern: ^([a-f0-9]{24})$.

    • labels array[object] Deprecated

      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.

      Resource Tags
      Hide labels attributes Show labels attributes object
      • key string

        Key applied to tag and categorize this component.

        Minimum length is 1, maximum length is 255.

      • value string

        Value set to the Key applied to tag and categorize this component.

        Minimum length is 1, maximum length is 255.

    • mongoDBEmployeeAccessGrant object

      MongoDB employee granted access level and expiration for a cluster.

      Hide mongoDBEmployeeAccessGrant attributes Show mongoDBEmployeeAccessGrant attributes object
      • expirationTime string(date-time) Required

        Expiration date for the employee access grant. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

      • grantType string Required

        Level of access to grant to MongoDB Employees.

        Values are CLUSTER_DATABASE_LOGS, CLUSTER_INFRASTRUCTURE, or CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA.

    • mongoDBMajorVersion string

      MongoDB major version of the cluster. Set to the binary major version.

      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
    • mongoDBVersion string

      Version of MongoDB that the cluster runs.

      Format should match the following pattern: ([\d]+\.[\d]+\.[\d]+).

    • name string

      Human-readable label that identifies the cluster.

      Format should match the following pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$.

    • paused boolean

      Flag that indicates whether the cluster is paused.

    • pitEnabled boolean

      Flag that indicates whether the cluster uses continuous cloud backups.

      Continuous Cloud Backups
    • redactClientLogData boolean

      Enable or disable log redaction.

      This setting configures the mongod or mongos to redact any document field contents from a message accompanying a given log event before logging. This prevents the program from writing potentially sensitive data stored on the database to the diagnostic log. Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.

      Use redactClientLogData in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.

      Note: changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.

      Log Redaction
    • replicaSetScalingStrategy string

      Set this field to configure the replica set scaling mode for your cluster.

      By default, Atlas scales under WORKLOAD_TYPE. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes.

      When configured as SEQUENTIAL, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads.

      When configured as NODE_TYPE, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads.

      Values are SEQUENTIAL, WORKLOAD_TYPE, or NODE_TYPE. Default value is WORKLOAD_TYPE.

      Modify the Replica Set Scaling Mode
    • replicationSpecs array[object]

      List of settings that configure your cluster regions. This array has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations.

      Details that explain how MongoDB Cloud replicates data on the specified MongoDB database.

      Hide replicationSpecs attributes Show replicationSpecs attributes object
      • id string

        Unique 24-hexadecimal digit string that identifies the replication object for a shard in a Cluster. If you include existing shard replication configurations in the request, you must specify this parameter. If you add a new shard to an existing Cluster, you may specify this parameter. The request deletes any existing shards in the Cluster that you exclude from the request. This corresponds to Shard ID displayed in the UI.

        Format should match the following pattern: ^([a-f0-9]{24})$.

      • regionConfigs array[object]

        Hardware specifications for nodes set for a given region. Each regionConfigs object must be unique by region and cloud provider within the replicationSpec. Each regionConfigs object describes the region's priority in elections and the number and type of MongoDB nodes that MongoDB Cloud deploys to the region. Each regionConfigs object must have either an analyticsSpecs object, electableSpecs object, or readOnlySpecs object. Tenant clusters only require electableSpecs. Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec.

        Example:

        If you set "replicationSpecs[n].regionConfigs[m].analyticsSpecs.instanceSize" : "M30", set "replicationSpecs[n].regionConfigs[m].electableSpecs.instanceSize" :"M30"if you have electable nodes and"replicationSpecs[n].regionConfigs[m].readOnlySpecs.instanceSize" : "M30" if you have read-only nodes.

        One of:
      • zoneId string

        Unique 24-hexadecimal digit string that identifies the zone in a Global Cluster. This value can be used to configure Global Cluster backup policies.

        Format should match the following pattern: ^([a-f0-9]{24})$.

      • zoneName string

        Human-readable label that describes the zone this shard belongs to in a Global Cluster. Provide this value only if "clusterType" : "GEOSHARDED" but not "selfManagedSharding" : true.

    • rootCertType string

      Root Certificate Authority that MongoDB Atlas cluster uses. MongoDB Cloud supports Internet Security Research Group.

      Value is ISRGROOTX1. Default value is ISRGROOTX1.

    • stateName string

      Human-readable label that indicates any current activity being taken on this cluster by the Atlas control plane. With the exception of CREATING and DELETING states, clusters should always be available and have a Primary node even when in states indicating ongoing activity.

      • IDLE: Atlas is making no changes to this cluster and all changes requested via the UI or API can be assumed to have been applied.
      • CREATING: A cluster being provisioned for the very first time returns state CREATING until it is ready for connections. Ensure IP Access List and DB Users are configured before attempting to connect.
      • UPDATING: A change requested via the UI, API, AutoScaling, or other scheduled activity is taking place.
      • DELETING: The cluster is in the process of deletion and will soon be deleted.
      • REPAIRING: One or more nodes in the cluster are being returned to service by the Atlas control plane. Other nodes should continue to provide service as normal.

      Values are IDLE, CREATING, UPDATING, DELETING, or REPAIRING.

    • tags array[object]

      List that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster.

      Key-value pair that tags and categorizes a MongoDB Cloud organization, project, or cluster. For example, environment : production.

      Resource Tags
      Hide tags attributes Show tags attributes object
      • key string Required

        Constant that defines the set of the tag. For example, environment in the environment : production tag.

        Minimum length is 1, maximum length is 255.

      • value string Required

        Variable that belongs to the set of the tag. For example, production in the environment : production tag.

        Minimum length is 1, maximum length is 255.

    • terminationProtectionEnabled boolean

      Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.

      Default value is false.

    • versionReleaseSystem string

      Method by which the cluster maintains the MongoDB versions. If value is CONTINUOUS, you must not specify mongoDBMajorVersion.

      Values are LTS or CONTINUOUS. Default value is LTS.

  • 400 application/json

    Bad Request.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 401 application/json

    Unauthorized.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 402 application/json

    Payment Required.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 403 application/json

    Forbidden.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 404 application/json

    Not Found.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 409 application/json

    Conflict.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 500 application/json

    Internal Server Error.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

POST /api/atlas/v2/groups/{groupId}/clusters
atlas api clusters createGroupCluster --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20250219001/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.CreateGroupClusterApiParams{}
	sdkResp, httpResp, err := client.ClustersApi.
		CreateGroupClusterWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2025-02-19+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.2025-02-19+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters" \
  -d '{ <Payload> }'
Request example
Cluster
{
  "name": "myCluster",
  "clusterType": "SHARDED",
  "replicationSpecs": [
    {
      "zoneName": "Zone 1",
      "regionConfigs": [
        {
          "priority": 7,
          "regionName": "US_EAST_1",
          "autoScaling": {
            "diskGB": {
              "enabled": true
            },
            "compute": {
              "enabled": true,
              "maxInstanceSize": "M60",
              "minInstanceSize": "M30",
              "scaleDownEnabled": true
            },
            "autoIndexing": {
              "enabled": false
            }
          },
          "providerName": "AWS",
          "readOnlySpecs": {
            "nodeCount": 0,
            "diskSizeGB": 10,
            "instanceSize": "M60"
          },
          "analyticsSpecs": {
            "nodeCount": 0,
            "diskSizeGB": 10,
            "instanceSize": "M40"
          },
          "electableSpecs": {
            "nodeCount": 3,
            "diskSizeGB": 10,
            "instanceSize": "M60"
          },
          "analyticsAutoScaling": {
            "diskGB": {
              "enabled": true
            },
            "compute": {
              "enabled": true,
              "maxInstanceSize": "M40",
              "minInstanceSize": "M30",
              "scaleDownEnabled": true
            },
            "autoIndexing": {
              "enabled": false
            }
          }
        }
      ]
    },
    {
      "zoneName": "Zone 1",
      "regionConfigs": [
        {
          "priority": 7,
          "regionName": "US_EAST_1",
          "autoScaling": {
            "diskGB": {
              "enabled": true
            },
            "compute": {
              "enabled": true,
              "maxInstanceSize": "M60",
              "minInstanceSize": "M30",
              "scaleDownEnabled": true
            },
            "autoIndexing": {
              "enabled": false
            }
          },
          "providerName": "AWS",
          "readOnlySpecs": {
            "nodeCount": 0,
            "diskSizeGB": 10,
            "instanceSize": "M40"
          },
          "analyticsSpecs": {
            "nodeCount": 0,
            "diskSizeGB": 10,
            "instanceSize": "M30"
          },
          "electableSpecs": {
            "nodeCount": 3,
            "diskSizeGB": 10,
            "instanceSize": "M40"
          },
          "analyticsAutoScaling": {
            "diskGB": {
              "enabled": true
            },
            "compute": {
              "enabled": true,
              "maxInstanceSize": "M40",
              "minInstanceSize": "M30",
              "scaleDownEnabled": true
            },
            "autoIndexing": {
              "enabled": false
            }
          }
        }
      ]
    }
  ]
}
Response examples (201)
{
  "acceptDataRisksAndForceReplicaSetReconfig": "2025-05-04T09:42:00Z",
  "advancedConfiguration": {
    "customOpensslCipherConfigTls12": [
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    ],
    "minimumEnabledTlsProtocol": "TLS1_0",
    "tlsCipherConfigMode": "CUSTOM"
  },
  "backupEnabled": false,
  "biConnector": {
    "enabled": true,
    "readPreference": "PRIMARY"
  },
  "clusterType": "REPLICASET",
  "configServerManagementMode": "ATLAS_MANAGED",
  "configServerType": "DEDICATED",
  "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",
  "diskWarmingMode": "FULLY_WARMED",
  "encryptionAtRestProvider": "NONE",
  "featureCompatibilityVersion": "string",
  "featureCompatibilityVersionExpirationDate": "2025-05-04T09:42:00Z",
  "globalClusterSelfManagedSharding": true,
  "groupId": "32b6e34b3d91647abb20e7b8",
  "id": "32b6e34b3d91647abb20e7b8",
  "labels": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "links": [
    {
      "href": "https://cloud.mongodb.com/api/atlas",
      "rel": "self"
    }
  ],
  "mongoDBEmployeeAccessGrant": {
    "expirationTime": "2025-05-04T09:42:00Z",
    "grantType": "CLUSTER_DATABASE_LOGS",
    "links": [
      {
        "href": "https://cloud.mongodb.com/api/atlas",
        "rel": "self"
      }
    ]
  },
  "mongoDBMajorVersion": "string",
  "mongoDBVersion": "string",
  "name": "string",
  "paused": true,
  "pitEnabled": true,
  "redactClientLogData": true,
  "replicaSetScalingStrategy": "WORKLOAD_TYPE",
  "replicationSpecs": [
    {
      "id": "32b6e34b3d91647abb20e7b8",
      "regionConfigs": [
        {
          "electableSpecs": {
            "diskSizeGB": 42.0,
            "diskIOPS": 42,
            "ebsVolumeType": "STANDARD",
            "instanceSize": "M10",
            "nodeCount": 42
          },
          "priority": 42,
          "providerName": "AWS",
          "regionName": "US_GOV_WEST_1",
          "analyticsAutoScaling": {
            "compute": {
              "enabled": true,
              "": "M10",
              "predictiveEnabled": true,
              "scaleDownEnabled": true
            },
            "diskGB": {
              "enabled": true
            }
          },
          "analyticsSpecs": {
            "diskSizeGB": 42.0,
            "nodeCount": 42,
            "diskIOPS": 42,
            "ebsVolumeType": "STANDARD",
            "instanceSize": "M10"
          },
          "autoScaling": {
            "compute": {
              "enabled": true,
              "": "M10",
              "predictiveEnabled": true,
              "scaleDownEnabled": true
            },
            "diskGB": {
              "enabled": true
            }
          },
          "readOnlySpecs": {
            "diskSizeGB": 42.0,
            "nodeCount": 42,
            "diskIOPS": 42,
            "ebsVolumeType": "STANDARD",
            "instanceSize": "M10"
          }
        }
      ],
      "zoneId": "32b6e34b3d91647abb20e7b8",
      "zoneName": "string"
    }
  ],
  "rootCertType": "ISRGROOTX1",
  "stateName": "IDLE",
  "tags": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "terminationProtectionEnabled": false,
  "versionReleaseSystem": "LTS"
}
Response examples (400)
{
  "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"
}
Response examples (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
Response examples (402)
{
  "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"
}
Response examples (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
Response examples (404)
{
  "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"
}
Response examples (409)
{
  "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"
}
Response examples (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}