--- title: "createServerInstances" slug: "compute-vserver-server-createserverinstances" tags: ["Server"] updated: 2026-09-17T10:06:02Z published: 2026-09-17T10:06:02Z canonical: "api.ncloud-docs.com/compute-vserver-server-createserverinstances" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # createServerInstances Available in VPC Create a server instance (VM). ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | GET \| POST | /vserver/v2/createServerInstances | Note This guide is based on the GET method. POST method call tests can be performed through Swagger in the API Gateway service of the NAVER Cloud Platform console. ### Request headers For information about the headers common to all Server APIs, see [Server request headers](/docs/en/compute-vserver#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request query parameters You can use the following query parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `regionCode` | String | Optional | Region code - See [getRegionList](/docs/en/compute-vserver-server-common-getregionlist). - First Region in the query results (default). | | `memberServerImageInstanceNo` | String | Conditional | Server image instance number - Enter when creating a server with a user-generated server image. - At least one of the following is required: `memberServerImageInstanceNo`, `serverImageNo`, or `serverImageProductCode`. - See [getMemberServerImageInstanceList](/docs/en/compute-vserver-serverimage-getmemberserverimageinstancelist). | | `serverImageNo` | String | Conditional | Server image number - Enter when creating a server with a new server image (KVM, RHV, XEN). - At least one of the following is required: `memberServerImageInstanceNo`, `serverImageNo`, or `serverImageProductCode`. - See [getServerImageList](/docs/en/compute-vserver-serverimage-getServerImageList). | | `serverImageProductCode` | String | Conditional | Server image product code - Enter when creating a server with a new server image (RHV, XEN). - At least one of the following is required: `memberServerImageInstanceNo`, `serverImageNo`, or `serverImageProductCode`. - See [getServerImageProductList](/docs/en/compute-vserver-server-common-getserverimageproductlist). | | `serverSpecCode` | String | Conditional | Server specification code - Set the server specifications when using `serverImageNo`. - Default: Minimum specifications (in the order of memory, CPU, default block storage capacity, disk type (NET)) - See [getServerSpecList](/docs/en/compute-vserver-server-common-getserverspeclist). | | `serverProductCode` | String | Optional | Server product code - Set the server specifications when using `serverImageProductCode`. - Default: Minimum specifications (in the order of memory, CPU, default block storage capacity, disk type (NET)) - See [getServerProductList](/docs/en/compute-vserver-server-common-getserverproductlist). | | `vpcNo` | String | Required | VPC number - Set the VPC to create the server instance. - See [getVpcList](/docs/en/networking-vpc-vpcmanagement-getvpclist). | | `subnetNo` | String | Required | Subnet number - Set subnet of the default network interface. - See [getSubnetList](/docs/en/networking-vpc-subnetmanagement-getsubnetlist). | | `isEncryptedBaseBlockStorageVolume` | Boolean | Optional | Whether to encrypt the default block storage volume - `true` \| `false` (default) - `true`: Encrypted - `false`: Not encrypted - Can only be set on RHV server images. | | `feeSystemTypeCode` | String | Optional | Pricing plan type code - `MTRAT` (default) \| `FXSUM` - `MTRAT`: Hourly pricing plan (pay-as-you-go plan) - `FXSUM`: Monthly pricing plan (flat rate plan) | | `serverCreateCount` | Integer | Optional | Number of created servers - 1-100 (default: 1) | | `serverCreateStartNo` | Integer | Optional | Server creation start number - 0-999 (default: 1) - Determine the start number of the serial number assigned to the server name when creating more than one server. - The sum of `serverCreateStartNo` and `serverCreateCount` can't exceed 1000. | | `serverName` | String | Optional | Server name - Enter 3-40 characters using a combination of lowercase English letters, numbers, and the special character "-" (3-15 characters for a Windows Server). - The string must start with a lowercase English letter and end with a lowercase English letter or a number. - Auto-generated on no input (default). | | `networkInterfaceList.N.networkInterfaceOrder` | Integer | Required | Network interface order - 0-2 - Default network interface: 0 - Up to 3 can be entered. - Use as a basis for device naming. - For example, if the order is 2, the device name is eth2. | | `networkInterfaceList.N.networkInterfaceNo` | String | Conditional | Network interface number - Required when adding a user-created network interface. - See [getNetworkInterfaceList](/docs/en/compute-vserver-networkinterface-getnetworkinterfacelist). | | `networkInterfaceList.N.subnetNo` | String | Conditional | Subnet number of the network interface - Required when creating a new network interface or entering `networkInterfaceNo`. - Auto-assign if it is the default network interface. - See [getSubnetList](/docs/en/networking-vpc-subnetmanagement-getsubnetlist). | | `networkInterfaceList.N.ip` | String | Optional | Network interface's IP address - Can be set directly when creating a new network interface. - Enter the IP range of the subnet where the network interface will be created. - Subnet's 0-5th and last IP addresses can't be used. - Can't duplicate IP addresses within the subnet range. - Automatically assign values that satisfy conditions sequentially on no input (default). | | `networkInterfaceList.N.accessControlGroupNoList.N` | Array | Conditional | Network interface's ACG number list - Required when creating a new network interface. - Up to 3 can be entered. - Example: `accessControlGroupNoList.1=1234&accessControlGroupNoList.2=2345` - See [getAccessControlGroupList](/docs/en/compute-vserver-acg-getaccesscontrolgrouplist). | | `placementGroupNo` | String | Optional | Physical placement group number - Set the physical placement group the server belongs to. - See [getPlacementGroupList](/docs/en/compute-vserver-server-placementgroup-getplacementgrouplist). | | `isProtectServerTermination` | Boolean | Optional | Termination protection status - Prevent accidental server termination. - `true` \| `false` (default) - `true`: Protected - `false`: Not protected | | `serverDescription` | String | Optional | Server description (byte) - 0-1000 | | `initScriptNo` | String | Optional | Init script number - Run user-set Init script on first boot. - See [getInitScriptList](/docs/en/compute-vserver-initscript-getinitscriptlist). | | `loginKeyName` | String | Optional | Authentication key name - See [getLoginKeyList](/docs/en/compute-vserver-server-loginkey-getloginkeylist). - Default: Recently created authentication key | | `associateWithPublicIp` | Boolean | Optional | Whether to create and assign a new public IP - `true` \| `false` (default) - `true`: Assign - `false`: Not assign - Available for a public subnet. - Available if `serverCreateCount` is 1. - Assignment is completed when the server is created and goes into operation. | | `raidTypeName` | String | Conditional | RAID type name - Required when creating a bare metal server. - See [getRaidList](/docs/en/compute-vserver-server-common-getraidlist). | | `blockDevicePartitionList.N.mountPoint` | String | Optional | Mount point - Enter the mount point that starts with the `/(root)` path. - The first mount point must be entered as `/(root)`. - The path under `/` only allows lowercase English letters and numbers, and it must start with a lowercase English letter. - Path names in use as operating system-specific system directories can't be entered. - Example: /root, /bin, /dev | | `blockDevicePartitionList.N.partitionSize` | String | Optional | Partition capacity - 50 GB or more | | `blockStorageMappingList.N.order` | Integer | Required | Created storage order - Only KVM is available. - One default storage must be assigned. - Default storage: 0 - Additional storage: 1-20 - Up to 21 can be assigned including default storage. | | `blockStorageMappingList.N.snapshotInstanceNo` | String | Optional | Created storage snapshot number - Enter when creating with a snapshot. - Only KVM is available. | | `blockStorageMappingList.N.blockStorageSize` | String | Optional | Created storage size - Only KVM is available. | | `blockStorageMappingList.N.blockStorageName` | String | Optional | Created storage name - Only KVM is available. | | `blockStorageMappingList.N.blockStorageVolumeTypeCode` | String | Optional | Created storage volume type code - Only KVM is available. - See [getBlockStorageVolumeTypeList](/docs/en/compute-vserver-storage-getblockstoragevolumetypelist). | | `blockStorageMappingList.N.noBlockStorage` | Boolean | Conditional | Whether to exclude storage - `true` \| `false` - `true`: Excluded - `false`: Not excluded (`snapshotInstanceNo` required) - The default storage can't be used. | | `blockStorageMappingList.N.emptyBlockStorage` | Boolean | Conditional | Whether to create new storage - `true` \| `false` - `true`: Created - `false`: Not created (`snapshotInstanceNo` required) - The default storage can't be used. | | `fabricClusterPoolNo` | String | Optional | Fabric cluster pool number - See [getFabricClusterPoolList](/docs/en/compute-vserver-fabriccluster-getfabricclusterpoollist). | | `isPreInstallGpuDriver` | Boolean | Optional | Whether to pre-install GPU driver - `true` \| `false` (default) | | `responseFormatType` | String | Optional | Format of the response data - `xml` (default) \| `json` | Note When entering a request query parameter, see the following: - When you create a server from a new server image, the available fields vary depending on the hypervisor type of the server image, as follows: - KVM: `serverImageNo` and `serverSpecCode` are used. - XEN: `serverImageNo` and `serverSpecCode` or `serverImageProductCode` and `serverProductCode` are used. - RHV: `serverImageNo` and `serverSpecCode` or `serverImageProductCode` and `serverProductCode` are used. - `associateWithPublicIp`: You will be charged after you are assigned a public IP, so terminate it if you are not using it. - `blockDevicePartitionList.N.mountPoint`: Depending on the server specifications you're creating, partitions might not be supported. ### Request example The request example is as follows: ``` curl --location --request GET 'https://ncloud.apigw.ntruss.com/vserver/v2/createServerInstances ?regionCode=KR &serverImageProductCode=SW.VSVR.OS.LNX64.UBNTU.SVR2004.B050 &vpcNo=***75 &subnetNo=***36 &serverProductCode=SVR.VSVR.STAND.C002.M008.NET.SSD.B050.G002 &feeSystemTypeCode=MTRAT &serverCreateCount=1 &serverName=test-*** &networkInterfaceList.1.networkInterfaceOrder=0 &networkInterfaceList.1.accessControlGroupNoList.1=***43 &isProtectServerTermination=false &loginKeyName=test-*** &associateWithPublicIp=true &responseFormatType=json' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `createServerInstancesResponse` | Object | - | Response result - See [ServerInstanceList](/docs/en/common-vapidatatype-serverinstancelist). | | `createServerInstancesResponse.requestId` | String | - | ID for the request - UUID format | | `createServerInstancesResponse.returnCode` | String | - | Response code | | `createServerInstancesResponse.returnMessage` | String | - | Response message | ### Response status codes For information about the HTTP status codes common to all Server APIs, see [Server response status codes](/docs/en/compute-vserver#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "createServerInstancesResponse": { "totalRows": 1, "serverInstanceList": [ { "serverInstanceNo": "*****9212", "serverName": "test-***", "serverDescription": "", "cpuCount": 2, "memorySize": 8589934592, "platformType": { "code": "UBS64", "codeName": "Ubuntu Server 64 Bit" }, "loginKeyName": "test-***", "publicIpInstanceNo": "", "publicIp": "", "serverInstanceStatus": { "code": "INIT", "codeName": "Server INIT status" }, "serverInstanceOperation": { "code": "NULL", "codeName": "Server NULL OP" }, "serverInstanceStatusName": "init", "createDate": "2025-06-13T17:01:34+0900", "uptime": "2025-06-13T17:01:33+0900", "serverImageProductCode": "SW.VSVR.OS.LNX64.UBNTU.SVR2004.B050", "serverProductCode": "SVR.VSVR.STAND.C002.M008.NET.SSD.B050.G002", "isProtectServerTermination": false, "zoneCode": "KR-1", "regionCode": "KR", "vpcNo": "", "subnetNo": "", "networkInterfaceNoList": [], "initScriptNo": "", "serverInstanceType": { "code": "STAND", "codeName": "Standard" }, "baseBlockStorageDiskType": { "code": "NET", "codeName": "Network storage" }, "baseBlockStorageDiskDetailType": { "code": "SSD", "codeName": "SSD" }, "placementGroupNo": "", "placementGroupName": "", "memberServerImageInstanceNo": "", "hypervisorType": { "code": "XEN", "codeName": "XEN" }, "serverImageNo": "16187005", "serverSpecCode": "s2-g2-s50", "eventList": [] } ], "requestId": "e4a3ca5e-9b81-4b3b-8011-ad0f0e2bf71a", "returnCode": "0", "returnMessage": "success" } } ```