VPS.org API

Dokumentasi API REST

Domain API

Cari nama domain yang ada, daftar dan ulang domain, dan urus pelayan nama dan auto-ulang mereka. Domain diidentifikasi oleh uuid mereka.

Titik akhir 7
Laluan Asas /api/v1/domains
DAPATKAN /api/v1/domains/

Senaraikan Semua Domain

Kembalikan domain yang didaftarkan dalam akaun anda, 25 per halaman. Senarai tidak mempunyai penapis.

Keizinan diperlukan: domains:list

Contoh Permintaan

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);

Contoh Respons

{
  "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"
    }
  ]
}

Medan Respons

Medan Jenis Huraian
uuid string Pengecam domain digunakan pada titik akhir domain lain
status string active, pending, expired, cancelled, transferred
registrar string Pengurus domain
registration_date, expiration_date datetime Bila domain didaftarkan dan bila ia luput. tarikh_luput boleh jadi null.
days_until_expiration integer | null Hari penuh sehingga tarikh_luput, negatif apabila luput
is_expired, needs_renewal_soon boolean Sama ada domain telah luput, dan sama ada ia luput dalam 30 hari akan datang
auto_renew, renewal_period_years boolean, integer Samada domain diperbaharui secara automatik, dan untuk berapa tahun
registration_price, renewal_price string Harga dalam USD sebagai rentetan desimal
whois_privacy, transfer_lock boolean Tetapan privasi WHOIS dan kunci pemindahan pengurus
nameserver1 to nameserver4 string | null Pelayan nama domain
created_at, updated_at datetime Bila rekod dicipta dan diubah terakhir (ISO 8601, UTC)
DAPATKAN /api/v1/domains/{uuid}/

Dapatkan Perincian Domain

Kembalikan satu objek domain dengan medan di atas.

Keizinan diperlukan: domains:list

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

Kod Status Respons

200 Kejayaan
404 Tidak dijumpai, atau ia milik akaun lain
POST /api/v1/domains/search/

Kebolehcapaian Domain

Semak sama ada nama tersedia di sepanjang kira- kira 20 sambungan popular (com, net, org, io, dev, co, app, ai dan lebih), ditambah sambungan yang anda taip jika ia tidak di antara mereka. Hasil bermula dengan sepadan tepat, kemudian nama yang tersedia, kemudian yang diambil.

Keizinan diperlukan: domains:search

Minta Parameter Badan

Parameter Jenis Diperlukan Huraian
domain string Ya Nama dengan atau tanpa sambungan, contohnya mysite atau mysite.com (2 hingga 63 aksara)

Contoh Permintaan

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"])

Contoh Respons

{
  "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
}

Harga adalah nombor dalam USD untuk satu tahun dan adalah null untuk nama yang tidak tersedia. Harga yang dipaparkan adalah ilustratif.

Kod Status Respons

200 Kejayaan
400 Domain hilang, atau ia mengandungi aksara lain selain huruf, digit dan tanda kurung
500 Pencarian pengurus gagal. Cuba lagi kemudian.
POST /api/v1/domains/register/

Daftar Domain Baharu

Mendaftar domain dan membayar kaedah pembayaran yang disimpan. Kebolehcapaian dan harga diuji dengan pengurus semula sebelum membayar. Maklumat hubungan pengurus diambil dari profil akaun anda. Jika pengurus menolak pendaftaran selepas membayar, bayaran dikembalikan.

Keizinan diperlukan: domains:register (diberi oleh domain: *)

Minta Parameter Badan

Parameter Jenis Diperlukan Huraian
domain string Ya Nama domain penuh termasuk sambungan, contohnya example.com
years integer Tidak Tempoh pendaftaran, 1 hingga 10 (piawai 1). Harga adalah harga tahunan kali tahun..ai memerlukan sekurang-kurangnya 2 tahun; nilai yang lebih kecil mengembalikan 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}'

Contoh Respons

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

Kod Status Respons

201 Domain didaftarkan
400 Domain tidak sah, domain tidak lagi tersedia, harga tidak dapat disahkan, kaedah pembayaran luput, atau pembayaran gagal
402 Tiada kaedah pembayaran pada fail, atau bil tidak dibayar
500 Pembayaran tidak dapat diproses, atau pengurus menolak pendaftaran selepas pembayaran. Dalam kes kedua, mesej ralat menyatakan sama ada bayaran balik telah diproses.
POST /api/v1/domains/{uuid}/renew/

Domain

Memperbaharui domain dan membayar harga_perbaharui bagi setiap tahun kepada kaedah pembayaran yang disimpan.

Keizinan diperlukan: domains:renew

Minta Parameter Badan

Parameter Jenis Diperlukan Huraian
years integer Tidak Tahun untuk ditambah, 1 hingga 10 (piawai 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)!"
}

Kod Status Respons

200 Domain dipulihkan
400 Tahun tidak sah, tiada harga pembaharuan untuk domain, tiada kaedah pembayaran yang boleh digunakan, atau pembayaran gagal
404 Tidak dijumpai, atau ia milik akaun lain
500 Pembayaran tidak dapat diproses, atau pembayaran telah dilaksanakan tetapi pembaharuan pengurus gagal. Hubungi sokongan dalam kes ini.
PUT /api/v1/domains/{uuid}/nameservers/

Pelayan Nama

Tetapkan pelayan nama domain pada pengurus dan kembalikan objek domain dikemaskini. Untuk mengurus DNS dengan API DNS, gunakan ns1.vps.org, ns2.vps.org dan ns3.vps.org dan cipta zon untuk domain.

Keizinan diperlukan: domains:update

Minta Parameter Badan

Parameter Jenis Diperlukan Huraian
nameserver1 string Ya Nama hos pelayan nama utama
nameserver2, nameserver3, nameserver4 string Tidak Nama hos pelayan nama tambahan
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"}'

Kod Status Respons

200 Pelayan nama dikemaskini; badan adalah objek domain
400 namapelayan1 hilang
404 Tidak dijumpai, atau ia milik akaun lain
500 Kemas kini gagal; badan mempunyai medan ralat dan mesej
PUT /api/v1/domains/{uuid}/auto-renew/

Hidupkan atau Matikan Auto-Perbaharui

Tetapkan auto_renew dan kembalikan objek domain dikemaskini. Hantar dibenarkan sebagai boolean JSON: mana-mana rentetan bukan kosong, termasuk rentetan salah, matikan auto-renew.

Keizinan diperlukan: 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}'

Kod Status Respons

200 Tetapan disimpan; badan adalah objek domain
400 diaktifkan hilang
404 Tidak dijumpai, atau ia milik akaun lain

Nota