Skip to content
Documentation

Create Cluster (OpenSearch)

v2
OpenAPI 3.1.0

ClusterNest API

To get started, generate an access token via the POST /auth/token endpoint below. Afterwards include the token as Bearer in the Authorization header of all requests. e.g. Authorization: Bearer <your_access_token>.

Client Libraries

opensearch

​
opensearch Operations

Create Cluster

​

Body·OpenSearchCreate

required
application/json
  • Cluster name, unique within the organization. Lowercase letters, digits, and hyphens only.

  • Organization the cluster is created in.

  • External identity providers (OpenID Connect or SAML) the cluster accepts logins from, alongside the built-in internal user. Secret values are write-only: omit one on update to keep the stored value.

  • Custom domain to serve the OpenSearch endpoint on, instead of the generated default hostname.

  • Custom domain to serve OpenSearch Dashboards on, instead of the generated default hostname.

  • IP addresses or subnets allowed to reach OpenSearch Dashboards

  • Number of data nodes in the cluster. Only Advanced tier supports more than 3 data nodes upto a maximum of 10.

  • IP addresses or subnets allowed to reach the OpenSearch API

  • Weekly recurring window (UTC) during which maintenance may be performed on this cluster. Must be at least 2 hours (120 minutes) long. Leave unset to allow maintenance at any time.

    Properties: 3
  • S3 snapshot repository configuration for cluster backups. Leave unset to disable snapshots.

    Properties: 4
  • Sizing/pricing tier the cluster runs at.

  • OpenSearch version to run.

    values
    3.0.03.1.03.2.03.3.23.4.03.6.03.7.03.8.03.9.0

Responses

  • application/json
  • application/json
Request Example for post/cluster/opensearch/
curl /cluster/opensearch/ \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "name": "",
  "tier": "basic",
  "organization_id": 1,
  "maintenance_window": {
    "day_of_week": "monday",
    "start_time": "",
    "end_time": ""
  },
  "version": "3.8.0",
  "data_node_count": 3,
  "ip_allowlist": [
    "0.0.0.0/0",
    "::/0"
  ],
  "dashboards_ip_allowlist": [
    "0.0.0.0/0",
    "::/0"
  ],
  "custom_hostname": "",
  "dashboards_custom_hostname": "",
  "auth_sources": [],
  "repo_config": {
    "enable_iam_role": true,
    "enable_access_keys": false,
    "access_key_id": "",
    "secret_access_key": ""
  }
}'
{
  "id": 1,
  "organization_id": 1,
  "name": "string",
  "tier": "basic",
  "state": "creating",
  "created_at": "2026-10-16T06:47:20.484Z",
  "updated_at": "2026-10-16T06:47:20.484Z",
  "maintenance_window": {
    "day_of_week": "monday",
    "start_time": "string",
    "end_time": "string"
  },
  "version": "3.8.0",
  "data_node_count": 3,
  "ip_allowlist": [
    "0.0.0.0/0",
    "::/0"
  ],
  "dashboards_ip_allowlist": [
    "0.0.0.0/0",
    "::/0"
  ],
  "custom_hostname": "string",
  "dashboards_custom_hostname": "string",
  "url": "string",
  "opensearch_dashboards_url": "string",
  "auth_sources": [
    {
      "name": "string",
      "ca_cert": "string",
      "subject_key": "string",
      "roles_key": "string",
      "type": "oidc",
      "dashboards_login": false,
      "connect_url": "string",
      "client_id": "string",
      "audience": "string",
      "client_secret_set": false,
      "scope": "openid profile email",
      "logout_url": "string"
    }
  ],
  "repo_config": {
    "enable_iam_role": true,
    "aws_role_arn": "string",
    "enable_access_keys": false,
    "access_key_id": "string",
    "secret_access_key_set": false
  }
}