Skip to content

Create Node

POST
/api/v1/nodes/
curl --request POST \
--url 'https://api.e2enetworks.com/myaccount/api/v1/nodes/?project_id=<PROJECT_ID>&apikey=<API_KEY>&location=<LOCATION>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"label": "default",
"name": "E1LC-2-6GB-272",
"plan": "E1-2vCPU-6RAM-0DISK-E1LC-Onetemplate-Ubuntu24.04-Delhi",
"image": "Ubuntu-24.04-Distro",
"image_id": 12345,
"is_saved_image": false,
"saved_image_template_id": null,
"ssh_keys": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com"
],
"start_scripts": [
"sudo apt-get update\nsudo apt-get install nginx -y"
],
"disable_password": true,
"disk": 250,
"backups": true,
"is_encryption_required": false,
"isEncryptionEnabled": true,
"encryption_passphrase": "ApiAuto@123",
"enable_bitninja": false,
"security_group_id": 12345,
"vpc_id": 12345,
"subnet_id": "282",
"default_public_ip": false,
"reserve_ip": "1.2.3.4",
"is_ipv6_availed": true,
"is_private": false,
"ngc_container_id": null,
"number_of_instances": 1
}'

Creates one or more nodes. For a committed node, use the Committed node body and set cn_id to a committed plan from OS Plans.

project_id
required
integer

Identifier of the project to scope the request to. Required integer project ID.

Example

<PROJECT_ID>
apikey
required
string

API key for authenticating the create node request

Example

<API_KEY>
location
required
string

Location identifier for the node

Example

<LOCATION>
Media typeapplication/json
One of:
On-demand node
object
label

Free-form label applied to the node. Used to organize nodes in the console and in resource filtering. Use "default" if you have no labelling scheme.

string

Example

default
name
required

Human-readable identifier for the node. Appears in the dashboard, billing reports, and as the hostname on the provisioned VM. Must be unique within the project.

string

Example

E1LC-2-6GB-272
plan
required

Plan SKU that selects vCPU, RAM, disk, and instance series. Plan identifiers are returned by the plans API and follow the convention <series>-<vCPU>vCPU-<RAM>RAM-<DISK>DISK-<series>-<template>-<image>-<region>.

string

Example

E1-2vCPU-6RAM-0DISK-E1LC-Onetemplate-Ubuntu24.04-Delhi
image
required

OS image name to install on the node. Use the OS plans API to list supported images for a given plan/region.

string

Example

Ubuntu-24.04-Distro
image_id

Numeric image identifier corresponding to image. Provide this in addition to image for deterministic image selection (avoids ambiguity when an image name maps to multiple internal records). Cannot be combined with multi-node create - omit when number_of_instances > 1.

integer

Example

12345
is_saved_image

Set true to provision from a previously saved image template (a snapshot the user has captured and saved). When true, saved_image_template_id must be supplied.

boolean

Example

false
saved_image_template_id

Identifier of the saved-image template to clone from. Required when is_saved_image is true, otherwise must be null.

integer
nullable

Example

null
ssh_keys
required

SSH public keys to inject into the node’s authorized_keys. Provide at least one key - password authentication is disabled by default. Keys are added for the OS’s default admin user (e.g. ubuntu, centos).

Array<string>
start_scripts

Shell scripts to execute via cloud-init the first time the node boots. Run sequentially as root. Use to install packages, fetch config, or register the node with an orchestrator.

Array<string>
disable_password

Disable password authentication for the default OS user. Strongly recommended for production nodes. SSH key authentication continues to work.

boolean
default: true

Example

true
disk

Root disk size in GB. Only honored for E1-series plans (other plan series include a fixed root disk and ignore this field). To extend the root disk after creation, use the increase-root-storage endpoint.

integer

Example

250
backups

Enable CDP backups on the node from creation. CDP creates continuous block-level backups. Billed separately - see the CDP backup plans API.

boolean

Example

true
is_encryption_required

Reserved for compliance use cases that require a record of whether encryption was mandated for the workload. Independent of whether encryption is actually enabled (isEncryptionEnabled).

boolean

Example

false
isEncryptionEnabled

Enable LUKS encryption on the node’s root volume. When true, encryption_passphrase must be supplied. The passphrase cannot be recovered if lost.

boolean

Example

true
encryption_passphrase

LUKS passphrase used to encrypt the root volume. Required when isEncryptionEnabled is true. Stored encrypted; cannot be retrieved or reset afterwards.

string

Example

ApiAuto@123
enable_bitninja

Install and activate BitNinja server-side security on first boot (Linux only). BitNinja provides WAF, malware scanning, and DoS protection. Adds a per-node fee - see License Management.

boolean

Example

false
security_group_id

ID of the security group to attach at creation. If omitted, the project’s default security group is used. Use the security groups API to look up IDs.

integer

Example

12345
vpc_id

ID of the VPC the node should join. When omitted, the project’s default VPC for the region is used. Must be paired with subnet_id.

integer

Example

12345
subnet_id

ID of the subnet within vpc_id where the node’s primary network interface will be placed. Passed as a string for compatibility with legacy callers.

string

Example

282
default_public_ip

Assign an auto-allocated public IPv4 to the node. Set to false if you supply reserve_ip (you cannot have both - the reserved IP would be unused).

boolean

Example

false
reserve_ip

Existing reserved public IPv4 address to attach as the node’s primary public IP. Get one from the Reserve IP API. Mutually exclusive with default_public_ip: true and with multi-node create.

string

Example

1.2.3.4
is_ipv6_availed

Attach an IPv6 address to the node at creation. Region must support IPv6 - check the network capabilities endpoint.

boolean

Example

true
is_private

Provision the node on a private (dedicated) cluster instead of the shared public cluster. Requires the project to be entitled to a private cluster; additional private-cluster fields may be needed.

boolean

Example

false
ngc_container_id

NVIDIA GPU Cloud (NGC) container template ID to launch on the node. Only applicable to GPU plans. Leave null for general- purpose nodes.

integer
nullable

Example

null
number_of_instances
required

Number of identical nodes to provision in this request. Setting this above 1 disables reserve_ip and image_id - those flows are reserved for single-node create.

integer
default: 1

Example

1

Successful response

Media typeapplication/json
object
code

HTTP status code returned for the Create Node operation

integer
data
object
id

Unique identifier of the created node

integer
name

Unique identifier of the created node

string
vm_id

Identifier of the created virtual machine

integer
created_at

Timestamp when the node was created

string format: date-time
public_ip_address

The public IPv4 address assigned to the created node.

string
private_ip_address

The private IPv4 address assigned to the node.

string
backup

Indicates whether a backup was created for the node

boolean
disk

Disk size specification for the node

string
status

Current status of the node creation process

string
vcpus

Number of virtual CPUs allocated to the node

string
memory

Amount of memory allocated to the node

string
plan

Identifier of the node’s plan

string
region

Geographic region identifier for the created node

string
is_locked

Indicates whether the newly created node is locked

boolean
zabbix_host_id

Zabbix host identifier associated with the created node

string
zabbix_host_id_v2

Zabbix host identifier for the created node

string
gpu

Identifier of the GPU assigned to the node

string
price

Pricing string with currency and billing period

string
additional_ip
Array<string>
label

Human-readable name of the created node

string
ssh_keys
Array<object>
object
label

Label identifying the SSH key

string format: email
ssh_key

SSH public key string for the node

string
is_active

Indicates whether the created node is active

boolean
scaler_id

Identifier of the scaler associated with the node

string
os_info
object
name

Operating system name

string
version

Operating system version string

string
category

Operating system category name

string
full_name

Operating system full name string

string
is_monitored

Indicates whether the node is being monitored.

boolean
backup_status
object
status

Current backup status of the node

string
detail

Human-readable status detail of the backup operation

string
node_id

Identifier of the created node

integer
is_encryption_enabled

Indicates whether backup encryption is enabled.

boolean
location

City name where the node is located

string
monitor_status
object
status

Current monitoring status of the node

string
reason

Human-readable explanation for the monitor status

string
enable_bitninja_details
object
show_bitninja

Indicates whether BitNinja details are displayed

boolean
bitninja_cost

Cost associated with BitNinja service

integer
is_bitninja_license_active

Indicates whether the BitNinja license is active.

boolean
any_license_attached
object
is_license_attached

Indicates whether a license is attached to the created node

boolean
license_deletion_message

Message returned after a license deletion attempt

string
mssql_license_attached

Indicates whether a Microsoft SQL Server license is attached to the node.

boolean
is_committed

Indicates whether the node creation has been committed

boolean
audit_log_message

Human-readable message describing the audit log entry

string
monitoring_tab_enabled

Indicates whether the monitoring tab is enabled for the created node.

boolean
cdp_tab_enabled

Indicates if the CDP tab is enabled for the node.

boolean
alert_tab_enabled

Indicates whether the alert tab is enabled for the node.

boolean
bitninja_discount_percentage

Discount percentage applied by BitNinja

integer
is_image_deleted

Indicates whether the node’s image was deleted.

boolean
vpc_enabled

Indicates if the node has VPC enabled

boolean
is_snapshot_allowed

Indicates if snapshots are permitted for the created node.

boolean
is_fortigate_vm

Indicates whether the node is a FortiGate virtual machine.

boolean
rescue_mode_status

Indicates whether rescue mode is enabled for the node.

string
is_upgradable

Indicates if the created node can be upgraded.

boolean
abuse_flag

Indicates if the created node is flagged for abuse

boolean
currency

Three-letter ISO 4217 currency code of the node

string
vm_type

Type identifier of the created virtual machine

string
is_accidental_protection

Indicates if accidental protection is enabled for the created node

boolean
project_name

Name of the project associated with the created node

string
resource_type

The type of resource associated with the created node.

string
label_id

Identifier of the label associated with the created node

string
errors
object
message

Result message indicating the outcome of the node creation request

string

Example

{
"code": 200,
"data": {
"id": 12345,
"name": "C3-8GB-627",
"vm_id": 12345,
"created_at": "2025-09-04T06:17:21.574517Z",
"public_ip_address": "1.2.3.4",
"private_ip_address": "10.15.160.6",
"backup": false,
"disk": "100 GB",
"status": "Creating",
"vcpus": "4",
"memory": "8 GB",
"plan": "C3.8GB",
"is_locked": false,
"gpu": "",
"price": "Rs. 3.1/Hour or Rs. 2263.0 Monthly",
"label": "Default",
"ssh_keys": [
{
"label": "your_email@example.com",
"ssh_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com"
}
],
"is_active": true,
"os_info": {
"name": "Ubuntu",
"version": "24.04",
"category": "Linux Virtual Node",
"full_name": "Ubuntu 24.04 x86_64"
},
"is_monitored": false,
"backup_status": {
"status": "backup_not_activated",
"detail": "Not Activated",
"node_id": 12345,
"is_encryption_enabled": false
},
"location": "Delhi",
"monitor_status": {
"status": "not_activated",
"reason": ""
},
"enable_bitninja_details": {
"show_bitninja": true,
"bitninja_cost": 760
},
"is_bitninja_license_active": false,
"any_license_attached": {
"is_license_attached": false,
"license_deletion_message": "",
"mssql_license_attached": false
},
"is_committed": false,
"monitoring_tab_enabled": true,
"cdp_tab_enabled": true,
"alert_tab_enabled": true,
"bitninja_discount_percentage": 0,
"is_image_deleted": false,
"vpc_enabled": false,
"is_snapshot_allowed": true,
"is_fortigate_vm": false,
"rescue_mode_status": "Disabled",
"is_upgradable": true,
"abuse_flag": false,
"currency": "INR",
"vm_type": "vm",
"is_accidental_protection": false,
"project_name": "default-project-35027"
},
"message": "Success"
}