VPS.org API

REST API 문서화

도메인 API

사용 가능한 도메인 이름을 검색하고, 도메인을 등록 및 갱신하고, 네임서버 및 자동 갱신을 관리합니다. 도메인은 uuid로 식별됩니다.

엔드포인트 7
기본 경로 /api/v1/domains
얻다 /api/v1/domains/

모든 도메인을 나열하세요

페이지당 25개의 계정에 등록된 도메인을 반환합니다. 목록에는 필터가 없습니다.

필요한 권한: domains:list

예시 요청

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for domain in response.json()["results"]:
    print(domain["domain_name"], domain["status"], domain["expiration_date"])
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

예시 답변

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
      "domain_name": "example.com",
      "status": "active",
      "registrar": "dynadot",
      "registration_date": "2026-01-15T10:30:00Z",
      "expiration_date": "2027-01-15T10:30:00Z",
      "days_until_expiration": 122,
      "is_expired": false,
      "needs_renewal_soon": false,
      "auto_renew": true,
      "renewal_period_years": 1,
      "registration_price": "12.64",
      "renewal_price": "12.64",
      "whois_privacy": true,
      "nameserver1": "ns1.vps.org",
      "nameserver2": "ns2.vps.org",
      "nameserver3": "ns3.vps.org",
      "nameserver4": null,
      "transfer_lock": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-09-01T08:12:40Z"
    }
  ]
}

응답 필드

필드 유형 설명
uuid string 다른 도메인 엔드포인트에서 사용되는 도메인 식별자
status string active, pending, expired, cancelled, transferred
registrar string 도메인이 변경되었습니다.
registration_date, expiration_date datetime 도메인이 등록된 시기와 만료되는 시기. expiration_date 는 null일 수 있습니다.
days_until_expiration integer | null expiration_date까지의 전체 일수, 만료되면 음수
is_expired, needs_renewal_soon boolean 도메인이 만료되었는지 여부 및 향후 30일 이내에 만료되는지 여부
auto_renew, renewal_period_years boolean, integer 도메인이 자동으로 갱신되는지 여부 및 몇 년 동안 갱신되는지
registration_price, renewal_price string USD 가격은 소수점 문자열로
whois_privacy, transfer_lock boolean WHOIS 개인정보 보호 및 등록자 전송 잠금 설정
nameserver1 to nameserver4 string | null 도메인의 네임서버
created_at, updated_at datetime 레코드가 생성되고 마지막으로 변경된 시점(ISO 8601, UTC)
얻다 /api/v1/domains/{uuid}/

도메인 세부 정보 가져오기

위의 필드를 가진 하나의 도메인 객체를 반환합니다.

필요한 권한: domains:list

curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

응답 상태 코드

200 성공
404 찾을 수 없거나 다른 계정에 속합니다.
메시지 /api/v1/domains/search/

도메인 이용 가능성 검색

약 20개의 인기 확장자(com, net, org, io, dev, co, app, ai 등)를 통해 이름을 사용할 수 있는지 확인합니다. 확장자가 없는 경우 입력한 확장자를 추가합니다. 정확한 일치로 시작한 다음 사용 가능한 이름을 표시하고, 사용 중인 이름을 표시합니다.

필요한 권한: domains:search

요청 본문 매개변수

파라미터 유형 필수의 설명
domain string 예 확장자가 있는지 없는지에 관계없이 이름, 예를 들어 mysite 또는 mysite.com(2~63자)

예시 요청

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/domains/search/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.com"}'
import requests

url = "https://admin.vps.org/api/v1/domains/search/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"domain": "mysite.com"})
for result in response.json()["results"]:
    if result["available"]:
        print(result["domain"], result["registration_price"], result["renewal_price"])

예시 답변

{
  "results": [
    {
      "domain": "mysite.com",
      "available": false,
      "price": null,
      "registration_price": null,
      "renewal_price": null,
      "tld": "com",
      "is_exact_match": true
    },
    {
      "domain": "mysite.dev",
      "available": true,
      "price": 17.24,
      "registration_price": 17.24,
      "renewal_price": 17.24,
      "tld": "dev",
      "is_exact_match": false
    }
  ],
  "base_domain": "mysite",
  "search_count": 20
}

가격은 1년간 USD로 표시되며, 사용 가능하지 않은 이름의 경우 null입니다. 표시된 가격은 예시입니다.

응답 상태 코드

200 성공
400 도메인이 누락되었거나 문자, 숫자 및 하이픈 이외의 문자가 포함되어 있습니다.
500 레지스트라 검색이 실패했습니다. 나중에 다시 시도하십시오.
메시지 /api/v1/domains/register/

새 도메인 등록

도메인을 등록하고 저장된 결제 방법을 사용하여 요금을 청구합니다. 요금 청구 전에 등록사와 다시 한 번 가용성 및 가격을 확인합니다. 등록자 연락처 정보는 계정 프로필에서 가져옵니다. 요금 청구 후 등록사가 등록을 거부하면 요금이 환불됩니다.

필요한 권한: domains:register (도메인에 의해 부여됨:*)

요청 본문 매개변수

파라미터 유형 필수의 설명
domain string 예 확장자를 포함한 전체 도메인 이름(예: example.com)
years integer 아니요 등록 기간, 1에서 10까지(기본값 1). 가격은 연간 가격을 년으로 나눈 값입니다..ai는 최소 2년이 필요하며, 값이 작으면 400을 반환합니다.
curl -X POST "https://admin.vps.org/api/v1/domains/register/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.dev", "years": 1}'

예시 답변

{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "domain_name": "mysite.dev",
  "message": "mysite.dev registered successfully!"
}

응답 상태 코드

201 도메인 등록
400 잘못된 도메인, 도메인이 더 이상 사용할 수 없음, 가격을 확인할 수 없음, 오래된 결제 방법 또는 결제 실패
402 파일에 결제 방법이 없거나 미지급 청구서
500 지불을 처리할 수 없거나, 등록사가 지불 후 등록을 거부했습니다. 두 번째 경우에는 오류 메시지가 환불이 진행되었는지 여부를 알려줍니다.
메시지 /api/v1/domains/{uuid}/renew/

도메인 갱신

도메인을 갱신하고 저장된 결제 방법으로 각 연도에 대한 renewal_price를 청구합니다.

필요한 권한: domains:renew

요청 본문 매개변수

파라미터 유형 필수의 설명
years integer 아니요 1에서 10까지 덧셈할 년수 (기본값 1)
curl -X POST "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"years": 1}'
{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "new_expiration": "2028-01-15T10:30:00+00:00",
  "message": "example.com renewed successfully for 1 year(s)!"
}

응답 상태 코드

200 도메인 갱신됨
400 잘못된 연도, 도메인 갱신 가격이 없음, 사용 가능한 결제 방법이 없음 또는 결제 실패
404 찾을 수 없거나 다른 계정에 속합니다.
500 지불을 처리할 수 없거나 지불이 진행되었지만 등록업체 갱신이 실패했습니다. 이 경우 지원팀에 문의하십시오.
PUT /api/v1/domains/{uuid}/nameservers/

네임서버 업데이트

DNS API로 DNS를 관리하려면 ns1.vps.org, ns2.vps.org 및 ns3.vps.org 를 사용하여 도메인에 대한 영역을 생성합니다. ns1.vps.org 는 네임서버를 호스트로부터 호스팅하는 클라이언트로부터 네임서버를 호스팅하는 클라이언트로 변환합니다.

필요한 권한: domains:update

요청 본문 매개변수

파라미터 유형 필수의 설명
nameserver1 string 예 기본 네임서버 호스트 이름
nameserver2, nameserver3, nameserver4 string 아니요 추가 네임서버 호스트 이름
curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/nameservers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameserver1": "ns1.vps.org", "nameserver2": "ns2.vps.org", "nameserver3": "ns3.vps.org"}'

응답 상태 코드

200 네임서버 업데이트; 본문은 도메인 객체입니다
400 네임서버1이 없음
404 찾을 수 없거나 다른 계정에 속합니다.
500 업데이트 실패; 본문에 오류와 메시지 필드가 있습니다
PUT /api/v1/domains/{uuid}/auto-renew/

자동 갱신 켜기 또는 끄기

Send enabled as a JSON boolean: 문자열 false를 포함한 모든 비빈 문자열은 자동 갱신을 켜줍니다.

필요한 권한: domains:update

curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/auto-renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'

응답 상태 코드

200 설정 저장; 본문은 도메인 객체입니다
400 활성화된 누락됨
404 찾을 수 없거나 다른 계정에 속합니다.

메모