이 가이드는 API 명세를 기반으로 자동 생성했습니다.
Classic/VPC 환경에서 이용 가능합니다.
Ncloud API 표준 규격을 적용한 API입니다.
도메인을 생성합니다. 생성은 비동기로 완료되므로 요청이 접수되면 작업(Operation) 자원을 202 Accepted 로 반환합니다. 완료 여부는 응답의 id 로 GET /domains/operations/{operationId} 를 폴링해 done 으로 확인하며, 완료되면 작업의 results["0"] 에 확정된 도메인 자원이 담깁니다. 생성된 도메인의 domainNo 도 여기서 얻습니다. 작업이 끝나기 전의 도메인 자원은 status 가 PROCESSING 인데, 이는 네임서버 동기화가 아직 끝나지 않았다는 뜻일 뿐이므로 이 상태에서도 도메인 수정·삭제와 레코드 변경을 요청할 수 있습니다. 생성 직후에는 네임서버만 할당된 빈 상태이며, SOA 를 포함한 레코드 정보는 레코드 적용 전까지 채워지지 않습니다. 호출자 본인이 이미 보유한 도메인 이름으로 요청하면 409 AlreadyExists 오류를 반환합니다. 단, 다른 회원이 이미 보유한 도메인 이름이면 자원 존재 여부가 드러나지 않도록 403 Forbidden 으로 응답합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /domains |
요청 헤더
Global DNS API에서 공통으로 사용하는 헤더에 대한 정보는 Global DNS 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name |
String | Required | 도메인 이름
|
dnssecEnabled |
Boolean | Required | DNSSEC 적용 여부
|
description |
String | null | Optional | 도메인 설명
|
요청 예시
요청 예시는 다음과 같습니다.
curl --location --request POST 'https://globaldns.apigw.gov-ntruss.com/dns/v2/domains' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"name": "example.com",
"dnssecEnabled": false
}'
응답
응답 형식을 설명합니다.
응답 헤더
응답 헤더에 대한 설명은 다음과 같습니다.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
Retry-After |
Optional | 권장 폴링 대기 시간(초)
|
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
id |
String (uuid) | - | 작업 ID
|
done |
Boolean | - | 작업 완료 여부
|
metadata |
Object<OperationMetadata> | - | 작업 메타데이터 |
error |
Object<Error> | Null | - | 실패 사유 (완료 및 실패 시에만 존재)
|
results |
Map<DomainDetailed> | - | 작업 결과 자원 맵 (요청 인덱스를 문자열 키로 사용)
|
Error
에러 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
errorCode |
String | - | 에러 코드 |
message |
String | - | 에러 메시지 (기본 영어, 다국어 지원 가능) |
detail |
String | - | 에러 상세 정보 (기본 영어, 다국어 지원 가능) |
fieldErrors |
List<FieldError> | - | 입력값 에러가 발생한 경우 각 필드별 에러 상세 정보 목록 |
DomainDetailed
도메인 상세
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
domainNo |
Integer (int64) | - | 도메인 번호
|
name |
String | - | 도메인 이름
|
applied |
Boolean | - | 도메인 처리 완료 여부 (status 에서 파생)
|
dnssecEnabled |
Boolean | - | DNSSEC 적용 여부
|
status |
String | - | 도메인 처리 상태
|
description |
String | null | - | 도메인 설명
|
createdTimestamp |
Integer (int64) | - | 생성 시각 (Unix epoch 밀리초)
|
updatedTimestamp |
Integer (int64) | - | 수정 시각 (Unix epoch 밀리초)
|
recordCount |
Integer (int64) | - | 이 도메인(domainNo)에 속한 레코드 수
|
soa |
Object<SoaRecord> | - | SOA 레코드
|
SoaRecord
SOA 레코드. 사용자가 직접 설정하지 않으며, 도메인 설정 적용 시 시스템이 값을 채웁니다. 적용 전에는 domainName·nameServers·serial·refresh·retry·expire·ttl 이 null 이고, dnssecEnabled 는 항상 값이 있습니다(적용 전에는 false).
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
domainName |
String | null | - | 도메인 이름
|
nameServers |
List<String> | null | - | 네임서버 목록
|
serial |
Integer (int64) | null | - | SOA serial 번호
|
refresh |
Integer (int64) | null | - | SOA refresh (초)
|
retry |
Integer (int64) | null | - | SOA retry (초)
|
expire |
Integer (int64) | null | - | SOA expire (초)
|
ttl |
Integer (int64) | null | - | SOA 최소 TTL (초)
|
dnssecEnabled |
Boolean | - | DNSSEC 적용 여부
|
응답 상태 코드
Global DNS API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Global DNS 응답 상태 코드를 참조해 주십시오.
이 API에만 해당하는 응답 상태 코드는 다음과 같습니다.
| HTTP 상태 코드 | 코드 | 메시지 | 설명 |
|---|---|---|---|
| 202 | - | - | Accepted (생성 접수). 응답 본문은 작업(Operation) 자원이며 done 은 false 입니다. GET /domains/operations/{operationId} 로 폴링해 done 이 true 가 되면 results 에서 생성된 도메인 자원을 확인합니다. 폴링 간격은 Retry-After 헤더를 따릅니다. |
| 409 | AlreadyExists | A resource with the requested identifier already exists. | 호출자 본인이 이미 보유한 도메인 이름으로 다시 생성을 시도한 경우. 도메인 목록을 조회해 기존 도메인을 사용하거나 다른 이름으로 요청 |
응답 예시
응답 예시는 다음과 같습니다.
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"done": false,
"metadata": {
"operationType": "UPDATE",
"resourceType": "records",
"startDateTime": "2026-06-30T12:00:00Z",
"endDateTime": "2026-06-30T12:00:05Z",
"phase": "SYNCHRONIZING"
},
"results": {
"key": {
"domainNo": 1,
"name": "example.com",
"applied": true,
"dnssecEnabled": true,
"status": "SUCCEEDED",
"description": "my domain",
"createdTimestamp": 1568111263000,
"updatedTimestamp": 1568111263000,
"recordCount": 5,
"soa": {
"domainName": "example.com",
"nameServers": [
"ns1-1.ns-ncloud.com.",
"ns1-2.ns-ncloud.com."
],
"serial": 2019091001,
"refresh": 3600,
"retry": 600,
"expire": 604800,
"ttl": 300,
"dnssecEnabled": true
}
}
}
}