Network > Private DNS > API v2 Guide
To use the API, API endpoint and token are required. Refer to API usage preparations to prepare the information required to use the API.
Private DNS zones and recordsets use the endpoints of the network type. See the serviceCatalogin the token issuance response for the exact endpoint.
| Type |
Region |
Endpoint |
| network |
Korea (Pangyo) Region Korea (Pyeongchon) Region |
https://kr1-api-network-infrastructure.nhncloudservice.com https://kr2-api-network-infrastructure.nhncloudservice.com |
Fields not specified in the guide may appear in the API response. Do not use these fields as they are for NHN Cloud internal use and are subject to change without notice.
Private DNS Zone
View the list of Private DNS Zones
GET /v2.0/privatedns/zones
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| id |
Query |
UUID |
- |
Private DNS Zone ID to retrieve |
| name |
Query |
String |
- |
Private DNS Zone name to retrieve |
| String |
Query |
String |
- |
Private DNS Zone status to retrieve |
Response
| Name |
Type |
Format |
Description |
| zones |
Body |
Array |
List of Private DNS Zone objects |
| zones.id |
Body |
UUID |
Private DNS Zone ID |
| zones.name |
Body |
String |
Private DNS Zone name |
| zones.description |
Body |
String |
Private DNS Zone description |
| zones.status |
Body |
String |
Private DNS Zone status |
| zones.networks |
Body |
Array |
List of networks that belong to the Private DNS Zone |
| zones.created_at |
Body |
Date |
Private DNS Zone Created Time |
| zones.updated_at |
Body |
Date |
Private DNS Zone Modified Time |
| zones.rrset_count |
Body |
Integer |
Number of recordsets the Private DNS Zone has |
Example
{
"zones": [
{
"id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"name": "example.net.",
"description": "",
"status": "ACTIVE",
"networks": [
"8970f625-0b41-4e04-8ece-64a7d5651113",
"8a725559-671f-486f-96f0-8d77a21f6394"
],
"created_at": "2025-05-11 06:44:23",
"updated_at": "2025-05-11 06:44:23",
"rrset_count": 10
}
]
}
View Private DNS Zone
GET /v2.0/privatedns/zones/{zoneId}
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| Name |
Type |
Format |
Description |
| zones |
Body |
Array |
List of Private DNS Zone objects |
| zones.id |
Body |
UUID |
Private DNS Zone ID |
| zones.name |
Body |
String |
Private DNS Zone name |
| zones.description |
Body |
String |
Private DNS Zone description |
| zones.status |
Body |
String |
Private DNS Zone status |
| zones.networks |
Body |
Array |
List of Network UUIDs used by Private DNS Zone |
| zones.created_at |
Body |
Date |
Private DNS Zone Created Time |
| zones.updated_at |
Body |
Date |
Private DNS Zone Modified Time |
| zones.rrset_count |
Body |
Integer |
Number of recordsets the Private DNS Zone has |
Create a Private DNS Zone
POST /v2.0/privatedns/zones
X-Auth-Token: {tokenId}
Request
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zone |
Body |
Object |
O |
Private DNS Zone Information Object |
| zone.name |
Body |
String |
O |
Private DNS Zone name |
| zone.description |
Body |
String |
- |
Private DNS Zone description |
| zone.networks |
Body |
Arrray |
O |
List of VPC UUIDs that will use the Private DNS Zone |
Example
{
"zone": {
"name": "example.net.",
"description": "",
"networks": [
"8970f625-0b41-4e04-8ece-64a7d5651113",
"8a725559-671f-486f-96f0-8d77a21f6394"
]
}
}
Response
| Name |
Type |
Format |
Description |
| zone |
Body |
Array |
Private DNS Zone Information Object |
| zone.id |
Body |
UUID |
Private DNS Zone ID |
| zone.name |
Body |
String |
Private DNS Zone name |
| zone.description |
Body |
String |
Private DNS Zone description |
| zone.status |
Body |
String |
Private DNS Zone status |
| zone.networks |
Body |
Array |
List of Network UUIDs used by Private DNS Zone |
| zone.created_at |
Body |
Date |
Private DNS Zone Created Time |
| zone.updated_at |
Body |
Date |
Private DNS Zone Modified Time |
Example
{
"zone": {
"id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"name": "example.net.",
"description": "",
"status": "BUILD",
"networks": [
"8970f625-0b41-4e04-8ece-64a7d5651113",
"8a725559-671f-486f-96f0-8d77a21f6394"
],
"created_at": "2025-05-11 06:44:23",
"updated_at": "2025-05-11 06:44:23"
}
}
Modifying a Private DNS Zone
PUT /v2.0/privatedns/zones/{zoneId}
X-Auth-Token: {tokenId}
Request
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| zone |
Body |
Object |
O |
Private DNS Zone Information Object |
| zone.description |
Body |
String |
- |
Private DNS Zone description |
| zone.networks |
Body |
Arrray |
O |
List of VPC UUIDs that will use the Private DNS Zone If you modify the VPC UUID list, all existing values are removed and applied to the record you requested to modify. |
Example
{
"zone": {
"description": "test",
"networks": [
"2c590fdf-993d-4377-a49b-a54f66759909"
]
}
}
Response
| Name |
Type |
Format |
Description |
| zone |
Body |
Array |
Private DNS Zone Information Object |
| zone.id |
Body |
UUID |
Private DNS Zone ID |
| zone.name |
Body |
String |
Private DNS Zone name |
| zone.description |
Body |
String |
Private DNS Zone description |
| zone.status |
Body |
String |
Private DNS Zone status |
| zone.networks |
Body |
Array |
List of Network UUIDs used by Private DNS Zone |
| zone.created_at |
Body |
Date |
Private DNS Zone Created Time |
| zone.updated_at |
Body |
Date |
Private DNS Zone Modified Time |
Example
{
"zone": {
"id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"name": "example.net.",
"description": "test",
"status": "ACTIVE",
"networks": [
"2c590fdf-993d-4377-a49b-a54f66759909"
],
"created_at": "2025-05-11 08:44:23",
"updated_at": "2025-05-11 08:44:23"
}
}
Deleting a Private DNS Zone
DELETE /v2.0/privatedns/zones/{zoneId}
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
Response
This API does not return a response body.
Record set
View a list of recordsets
GET /v2.0/privatedns/zones/{zoneId}/rrsets
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Recordset to lookup Private DNS Zone ID |
| id |
Query |
UUID |
- |
Recordset ID to retrieve |
| name |
Query |
String |
- |
Name of the recordset to retrieve |
| String |
Query |
String |
- |
Record types to retrieve |
| ttl |
Query |
Integer |
- |
TTL of the record to retrieve |
Response
| Name |
Type |
Format |
Description |
| rrsets |
Body |
Array |
Recordset object list |
| rrsets.id |
Body |
UUID |
Record set ID |
| rrsets.name |
Body |
String |
Record set name |
| rrsets.description |
Body |
String |
Recordset description |
| rrsets.zone_id |
Body |
String |
The Private DNS Zone ID to which the recordset belongs |
| rrsets.ttl |
Body |
Integer |
Recordset TTL |
| rrsets.type |
Body |
String |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrsets.records |
Body |
Array |
List of record objects in a recordset |
| rrsets.records.content |
Body |
String |
Recordset record values |
| rrsets.created_at |
Body |
Date |
Time the recordset was created |
| rrsets.updated_at |
Body |
Date |
Time the recordset was modified |
Example
{
"rrsets": [
{
"id": "db12b85e-0b41-4c58-816f-dfb833ae098f",
"name": "test.example.net.",
"description": "DESCRIPTION",
"zone_id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"ttl": 1000,
"type": "A",
"records": [
{
"content": "192.168.59.9"
}
],
"created_at": "2025-05-11 06:44:23",
"updated_at": "2025-05-11 06:44:23"
}
]
}
View a Recordset
GET /v2.0/privatedns/zones/{zoneId}/rrsets/{rrsetId}
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| rrsetId |
URL |
UUID |
O |
Record set ID |
Response
| Name |
Type |
Format |
Description |
| rrset |
Body |
Array |
Recordset object list |
| rrset.id |
Body |
UUID |
Record set ID |
| rrset.name |
Body |
String |
Record set name |
| rrset.description |
Body |
String |
Recordset description |
| rrset.zone_id |
Body |
String |
The Private DNS Zone ID to which the recordset belongs |
| rrset.ttl |
Body |
Integer |
Recordset information update frequency. The default is 300 |
| rrset.type |
Body |
String |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrset.records |
Body |
Array |
List of record objects in a recordset |
| rrset.records.content |
Body |
Array |
Recordset record values |
| rrset.created_at |
Body |
Date |
Time the recordset was created |
| rrset.updated_at |
Body |
Date |
Time the recordset was modified |
Example
{
"rrsets": {
"id": "db12b85e-0b41-4c58-816f-dfb833ae098f",
"name": "test.example.net.",
"description": "DESCRIPTION",
"zone_id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"ttl": 1000,
"type": "A",
"records": [
{
"content": "192.168.59.9"
}
],
"created_at": "2025-05-11 06:44:23",
"updated_at": "2025-05-11 06:44:23"
}
}
Create a recordset
POST /v2.0/privatedns/zones/{zoneId}/rrsets
X-Auth-Token: {tokenId}
Request
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| rrset |
Body |
Object |
O |
Recordset information objects |
| rrset.name |
Body |
String |
O |
Record set name |
| rrset.records |
Body |
Array |
O |
Recordsets Records list |
| rrset.records.content |
Body |
String |
O |
Record values |
| rrset.ttl |
Body |
Integer |
- |
Recordset information update frequency. The default is 300 |
| rrset.type |
Body |
String |
O |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrset.description |
Body |
String |
O |
Recordset description |
Example
{
"rrset": {
"name": "test.example.net.",
"records": [
{
"content": "192.168.39.9"
},
{
"content": "192.168.49.10"
}
],
"ttl": 86400,
"type": "A",
"description": "test"
}
}
Response
| Name |
Type |
Format |
Description |
| rrset |
Body |
Array |
Recordset object list |
| rrset.id |
Body |
UUID |
Record set ID |
| rrset.name |
Body |
String |
Record set name |
| rrset.description |
Body |
String |
Recordset description |
| rrset.zone_id |
Body |
String |
The Private DNS Zone ID to which the recordset belongs |
| rrset.ttl |
Body |
Integer |
Recordset information update frequency. The default is 300 |
| rrset.type |
Body |
String |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrset.records |
Body |
Array |
List of record objects in a recordset |
| rrset.records.content |
Body |
Array |
Recordset record values |
| rrset.created_at |
Body |
Date |
Time the recordset was created |
| rrset.updated_at |
Body |
Date |
Time the recordset was modified |
Example
{
"rrset": {
"id": "db12b85e-0b41-4c58-816f-dfb833ae098f",
"name": "test.example.net.",
"description": "test",
"zone_id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"ttl": 86400,
"type": "A",
"records": [
{
"content": "192.168.39.9"
},
{
"content": "192.168.49.10"
}
],
"created_at": "2025-05-11 06:44:23",
"updated_at": "2025-05-11 06:44:23"
}
}
Modify a recordset
PUT /v2.0/privatedns/zones/{zoneId}/rrsets/{rrsetId}
X-Auth-Token: {tokenId}
Request
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| rrsetId |
URL |
UUID |
O |
Recordset ID to modify |
| rrset |
Body |
Object |
O |
Recordset information objects |
| rrset.records |
Body |
Array |
O |
Recordsets Records list If you modify a list of records, all existing values are removed and replaced with the records you requested to modify. |
| rrset.records.content |
Body |
String |
O |
Record values |
| rrset.ttl |
Body |
Integer |
- |
Recordset information update frequency. The default is 300 |
| rrset.type |
Body |
String |
O |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrset.description |
Body |
String |
O |
Recordset description |
Example
{
"rrset": {
"records": [
{
"content": "192.168.59.9"
}
],
"ttl": 1000,
"description": "change"
}
}
Response
| Name |
Type |
Format |
Description |
| rrset |
Body |
Array |
Recordset object list |
| rrset.id |
Body |
UUID |
Record set ID |
| rrset.name |
Body |
String |
Record set name |
| rrset.description |
Body |
String |
Recordset description |
| rrset.zone_id |
Body |
String |
The Private DNS Zone ID to which the recordset belongs |
| rrset.ttl |
Body |
Integer |
Recordset information update frequency. The default is 300 |
| rrset.type |
Body |
String |
Recordset type. a, aaaa, caa cname mx naptr ns ptr soa spf srv txt |
| rrset.records |
Body |
Array |
List of record objects in a recordset |
| rrset.records.content |
Body |
Array |
Recordset record values |
| rrset.created_at |
Body |
Date |
Time the recordset was created |
| rrset.updated_at |
Body |
Date |
Time the recordset was modified |
Example
{
"rrset": {
"id": "db12b85e-0b41-4c58-816f-dfb833ae098f",
"name": "test.example.net.",
"description": "change",
"zone_id": "ecb6de30-5665-4f97-9b96-3ff06e90ecd8",
"ttl": 1000,
"type": "A",
"records": [
{
"content": "192.168.59.9"
}
],
"created_at": "2025-08-11 06:44:23",
"updated_at": "2025-08-11 06:44:23"
}
}
Delete a recordset
DELETE /v2.0/privatedns/zones/{zoneId}/rrsets/{rrsetId}
X-Auth-Token: {tokenId}
Request
This API does not require a request body.
| Name |
Type |
Format |
Required |
Description |
| tokenId |
Header |
String |
O |
Token ID |
| zoneId |
URL |
UUID |
O |
Private DNS Zone ID |
| rrsetId |
URL |
UUID |
O |
Recordset ID to modify |
Response
This API does not return a response body.