VPS.org API

ឯកសារ REST API

API គ្រប់គ្រង DNS

បង្កើតតំបន់ DNS និងគ្រប់គ្រងកំណត់ត្រារបស់ពួកគេ។ តំបន់ត្រូវបានផ្តល់ជូនដោយ ns1.vps.org, ns2.vps.org និង ns3.vps.org ។

ចំណុចបញ្ចប់ 13
ផ្លូវមូលដ្ឋាន /api/v1/dns-zones, /api/v1/dns-records

ទិដ្ឋភាពទូទៅ

តំបន់មួយមានកំណត់ត្រាសម្រាប់ដែនមួយ. ការផ្លាស់ប្តូររាល់ដែលអ្នកធ្វើតាមរយៈ API ត្រូវបានជំរុញទៅម៉ាស៊ីនបម្រើឈ្មោះ VPS.org ភ្លាមៗ. ដើម្បីបម្រើដែនពីតំបន់ទាំងនេះ, កំណត់ម៉ាស៊ីនបម្រើឈ្មោះរបស់ខ្លួននៅអ្នកចុះបញ្ជីរបស់អ្នកទៅ ns1.vps.org, ns2.vps.org និង ns3.vps.org.

ការ​ផ្លាស់ប្ដូរ​ត្រូវ​បាន​រក្សាទុក និង​បោះពុម្ព​ផ្សាយ​ក្នុង​ជំហាន​មួយ ៖ ប្រសិន​បើ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​បដិសេធ​ការ​ផ្លាស់ប្ដូរ​នោះ​សំណើ​នឹង​ត្រឡប់ ៥០២ ហើយ​គ្មាន​អ្វី​ត្រូវ​បាន​រក្សាទុក​ឡើយ ។ តំបន់​មិន​អាច​ត្រូវ​បាន​បង្កើត​សម្រាប់​ដែន​ដែល​គណនី​ផ្សេង​ទៀត​គ្រប់គ្រង​រួច​ហើយ តំបន់​ឪពុក ឬ​កូន​របស់​គណនី​ផ្សេង​ទៀត ឬ​ឈ្មោះ​ដែល​បាន​បម្រុង​ទុក VPS.org ។

សិទ្ធិ​ដែល​ត្រូវការ: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

ទទួលបាន /api/v1/dns-zones/

រាយបញ្ជីតំបន់ DNS ទាំងអស់

ត្រឡប់​តំបន់​របស់​អ្នក ថ្មី​បំផុត​ដំបូង ២៥ ក្នុង​មួយ​ទំព័រ ។ កំណត់​ហេតុ​មិន​ត្រូវ​បាន​រួម​បញ្ចូល​នៅ​ទីនេះ​ទេ ។ យក​តំបន់​តែ​មួយ​ដើម្បី​យក​ពួក​វា ។

ប៉ារ៉ាម៉ែត្រសំណួរ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
domain string គ្មាន ត្រឡប់​តែ​តំបន់​ដែល​មាន​ឈ្មោះ​ដែន​នេះ​តែ​ប៉ុណ្ណោះ
page integer គ្មាន លេខ​ទំព័រ ចាប់ផ្ដើម​នៅ ១

សំណើឧទាហរណ៍

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/?domain=example.com" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

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

response = requests.get(url, headers=headers, params={"domain": "example.com"})
for zone in response.json()["results"]:
    print(zone["uuid"], zone["domain"], zone["record_count"])
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/?domain=example.com', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

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

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
      "domain": "example.com",
      "created_at": "2026-09-06T03:11:48.829693Z",
      "record_count": 5
    }
  ]
}

វាលឆ្លើយតប

វាល ប្រភេទ សេចក្ដី​ពិពណ៌នា
uuid string ឧបករណ៍​កំណត់​អត្តសញ្ញាណ​តំបន់
domain string ឈ្មោះ​ដែន​ដែល​បាន​រក្សា​ទុក​ជា​អក្សរ​តូច
created_at datetime ពេលវេលា​បង្កើត (ISO 8601 ពេលវេលា​សហគមន៍​អន្តរជាតិ)
record_count integer ចំនួន​កំណត់ហេតុ​ក្នុង​តំបន់ រួម​បញ្ចូល​ទាំង​កំណត់ហេតុ NS បី

លេខកូដស្ថានភាពឆ្លើយតប

200 ជោគជ័យ
403 បាត់ ឬ​មិន​ត្រឹមត្រូវ API token ឬ​ token ខ្វះ​សិទ្ធិ​ដែល​ត្រូវការ
ផ្ញើ​សារ /api/v1/dns-zones/

បង្កើត​តំបន់ DNS

បង្កើត​តំបន់​មួយ និង​បោះពុម្ព​ផ្សាយ​វា ។ តំបន់​ចាប់ផ្ដើម​ជាមួយ​នឹង​កំណត់ហេតុ NS បី​សម្រាប់ ns1, ns2 និង ns3. vps.org ដែល​ជា​កំណត់ហេតុ​ប្រព័ន្ធ និង​មិន​អាច​កែសម្រួល ឬ​លុប​បាន​ទេ ។

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
domain string បាទ/ចាស៎ ឈ្មោះ​ដែន ឧទាហរណ៍ example. com
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
  "domain": "example.com",
  "created_at": "2026-09-14T21:02:11.402113Z",
  "records": [
    {
      "uuid": "1f2e3d4c-5b6a-4978-8a9b-0c1d2e3f4a5b",
      "record_type": "NS",
      "name": "@",
      "value": "ns1.vps.org",
      "ttl": 86400,
      "priority": null,
      "created_at": "2026-09-14"
    },
    ...
  ],
  "record_count": 3
}

លេខកូដស្ថានភាពឆ្លើយតប

201 តំបន់​ដែល​បាន​បង្កើត
400 បាត់ ឬ​ឈ្មោះ​ដែន​មិន​ត្រឹមត្រូវ
ទទួលបាន /api/v1/dns-zones/{uuid}/

យក​សេចក្ដី​លម្អិត​តំបន់ DNS

ត្រឡប់​តំបន់​មួយ​ជាមួយ​នឹង​កំណត់ហេតុ​របស់​វា​ទាំងអស់​ក្នុង​អ័ក្ស​កំណត់ហេតុ ។ ការ​ឆ្លើយតប​មាន​រាង​ដូច​គ្នា​នឹង​ការ​ឆ្លើយតប​បង្កើត​ខាងលើ ។

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

លេខកូដស្ថានភាពឆ្លើយតប

200 ជោគជ័យ
404 រក​មិន​ឃើញ ឬ​វា​ជា​របស់​គណនី​ផ្សេង
លុប /api/v1/dns-zones/{uuid}/

លុប​តំបន់ DNS

យក​តំបន់​ចេញ​ពី​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​ទាំង​បី​ទាំងអស់ ពិនិត្យ​មើល​ថា​គ្មាន​នរណា​ម្នាក់​នៅ​តែ​បម្រើ​វា ហើយ​លុប​តំបន់ និង​កំណត់​ហេតុ​របស់​វា ។ ប្រសិន​បើ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​នៅ​តែ​ឆ្លើយ​តប​សម្រាប់​តំបន់ សំណើ​បរាជ័យ ហើយ​តំបន់​ត្រូវ​បាន​រក្សា​ទុក ដូច្នេះ​អ្នក​អាច​ព្យាយាម​ម្ដង​ទៀត ។

curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

លេខកូដស្ថានភាពឆ្លើយតប

204 បាន​លុប ។ ការ​ឆ្លើយតប​គ្មាន​តួ ។
400 ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​នៅ​តែ​បម្រើ​តំបន់ ។ តំបន់​មិន​ត្រូវ​បាន​លុប​ទេ វាល​លម្អិត​រាយ​កំហុស ។
404 រក​មិន​ឃើញ ឬ​វា​ជា​របស់​គណនី​ផ្សេង
ទទួលបាន ផ្ញើ​សារ /api/v1/dns-zones/{uuid}/records/

បញ្ជី ឬ​បន្ថែម​កំណត់ហេតុ​ក្នុង​តំបន់

GET ត្រឡប់​កំណត់ហេតុ​ទាំងអស់​ក្នុង​តំបន់​ជា​អ័ក្ស​ធម្មតា (មិន​បាន​ទំព័រ) ដែល​បាន​តម្រៀប​តាម​ប្រភេទ និង​ឈ្មោះ ។ POST បន្ថែម​កំណត់ហេតុ​ទៅ​តំបន់​ ហើយ​បោះពុម្ព​ផ្សាយ​វា ។

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ (POST)

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
record_type string បាទ/ចាស៎ A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string បាទ/ចាស៎ @ សម្រាប់​ដែន​ផ្ទាល់​ខ្លួន ឬ​ស្លាក​ដូច​ជា www ។ ឈ្មោះ​ត្រូវ​បាន​រក្សា​ទុក​ជា​អក្សរ​តូច ។
value string បាទ/ចាស៎ ទិន្នន័យ​កំណត់​ហេតុ ឧទាហរណ៍​អាសយដ្ឋាន IP ឬ​ឈ្មោះ​ម៉ាស៊ីន ។ ឈ្មោះ​ម៉ាស៊ីន​មិន​ត្រូវការ​ចំណុច​ចុង​ក្រោយ និង​តម្លៃ TXT មិន​ត្រូវការ​សញ្ញា​សម្រង់​ទេ ។ ទាំង​ពីរ​ត្រូវ​បាន​បន្ថែម​ពេល​កំណត់​ហេតុ​ត្រូវ​បាន​បោះពុម្ព ។
ttl integer បាទ/ចាស៎ ពេលវេលា​ដែល​ត្រូវ​រស់​គិត​ជា​វិនាទី
priority integer តែ MX និង SRV ប៉ុណ្ណោះ ចាំបាច់​សម្រាប់​កំណត់ហេតុ MX និង SRV ហើយ​មិនអើពើ​សម្រាប់​ប្រភេទ​ផ្សេង​ទៀត​ទាំងអស់ ។ សម្រាប់ SRV ដាក់​ទម្ងន់ ច្រក និង​គោលដៅ​ក្នុង​តម្លៃ ។

សំណើឧទាហរណ៍

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"record_type": "MX", "name": "@", "value": "mail.example.com", "ttl": 3600, "priority": 10}'
import requests

zone_uuid = "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c"
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {"record_type": "A", "name": "www", "value": "203.0.113.10", "ttl": 3600}

response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json())

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

វាលឆ្លើយតប

វាល ប្រភេទ សេចក្ដី​ពិពណ៌នា
uuid string ឧបករណ៍​កំណត់​អត្តសញ្ញាណ​កំណត់​ត្រា ដែល​ប្រើ​ដោយ / api/ v1/ dns- records/ endpoints
priority integer | null អាទិភាព​សម្រាប់​កំណត់​ហេតុ MX និង SRV បើ​មិន​ដូច្នោះ​ទេ​គឺ​ទទេ
created_at date កាលបរិច្ឆេទ​បង្កើត​តែ​ប៉ុណ្ណោះ (Y- MM- DD) ដោយ​គ្មាន​ពេលវេលា

លេខកូដស្ថានភាពឆ្លើយតប

200 យក ៖ កំណត់​ហេតុ​តំបន់
201 POST ៖ បង្កើត​កំណត់​ហេតុ
400 កំហុស​ធ្វើ​ឲ្យ​មាន​សុពលភាព ឧទាហរណ៍ ប្រភេទ​កំណត់ហេតុ​ដែល​មិន​ស្គាល់ បាត់​ ttl ឬ​កំណត់ហេតុ MX ឬ SRV ដោយ​គ្មាន​អាទិភាព
404 រក​មិន​ឃើញ ឬ​វា​ជា​របស់​គណនី​ផ្សេង
ផ្ញើ​សារ /api/v1/dns-zones/{uuid}/sync/

បោះពុម្ព​ផ្សាយ​តំបន់​ឡើងវិញ

ផ្លាស់ប្ដូរ​កំណត់ហេតុ​ដែល​បាន​បោះពុម្ព​ផ្សាយ​ដោយ​ស្វ័យ​ប្រវត្តិ ប៉ុន្តែ​ការ​បោះពុម្ព​ផ្សាយ​គឺ​ជា​ការ​ខិតខំ​ប្រឹងប្រែង​ដ៏​ល្អ​បំផុត ហើយ​ការ​បរាជ័យ​មិន​បរាជ័យ​សំណើ​ដើម​ទេ ដូច្នេះ​ប្រើ​វា​ពេល​ការ​ផ្លាស់ប្ដូរ​មិន​បង្ហាញ​នៅ​ក្នុង​ការ​ស្វែងរក DNS ។ គ្មាន​រាងកាយ​សំណើ​ដែល​ត្រូវការ​ទេ ។

curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/sync/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "detail": "Zone example.com synced to PowerDNS"
}
ទទួលបាន ផ្ញើ​សារ /api/v1/dns-records/

បញ្ជី ឬ​បង្កើត​កំណត់ហេតុ​នៅ​លើ​តំបន់

GET ត្រឡប់​កំណត់ហេតុ​នៃ​តំបន់​ទាំងអស់​របស់​អ្នក, 25 ក្នុង​មួយ​ទំព័រ, លំដាប់​ដោយ​ដែន, ប្រភេទ និង​ឈ្មោះ ។ POST បង្កើត​កំណត់ហេតុ​ដូច​ជា​កំណត់ហេតុ​តំបន់​ចុង​បញ្ចប់​ប៉ុន្តែ​យក​តំបន់​ក្នុង​រាងកាយ​ជា zone_uuid ។

ប៉ារ៉ាម៉ែត្រសំណួរ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
zone string គ្មាន មាន​តែ​កំណត់​ហេតុ​នៃ​តំបន់​ដែល​មាន uuid នេះ​ប៉ុណ្ណោះ
record_type string គ្មាន មាន​តែ​កំណត់​ហេតុ​ប្រភេទ​នេះ​ប៉ុណ្ណោះ ឧទាហរណ៍ MX (មិន​ប្រកាន់​តួអក្សរ​តូច​ធំ)
page integer គ្មាន លេខ​ទំព័រ ចាប់ផ្ដើម​នៅ ១
curl -X GET "https://admin.vps.org/api/v1/dns-records/?zone=c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c&record_type=A" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

curl -X POST "https://admin.vps.org/api/v1/dns-records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"zone_uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c", "record_type": "TXT", "name": "@", "value": "v=spf1 mx -all", "ttl": 3600}'
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f",
      "record_type": "A",
      "name": "www",
      "value": "203.0.113.10",
      "ttl": 3600,
      "priority": null,
      "created_at": "2026-09-14"
    }
  ]
}

លេខកូដស្ថានភាពឆ្លើយតប

200 GET ៖ បរាជ័យ
201 POST ៖ បង្កើត​កំណត់​ហេតុ
400 កំហុស​ធ្វើ​ឲ្យ​មាន​សុពលភាព ឬ zone_ uuid បាត់ ឬ​មិន​មែន​ជា​តំបន់​មួយ​របស់​អ្នក​ទេ
ទទួលបាន PUT PATCH លុប /api/v1/dns-records/{uuid}/

យក ធ្វើ​ឲ្យ​ទាន់សម័យ ឬ​លុប​កំណត់ហេតុ

GET ត្រឡប់​កំណត់ហេតុ​មួយ ។ PUT ជំនួស​វា​និង​ត្រូវការ record_ type, name, value និង ttl ។ PATCH ផ្លាស់ប្ដូរ​តែ​វាល​ដែល​អ្នក​ផ្ញើ ។ DELETE យក​កំណត់ហេតុ​ចេញ ហើយ​ត្រឡប់ 204 ដោយ​គ្មាន​រាងកាយ ។ ការ​ផ្លាស់ប្ដូរ​ត្រូវ​បាន​បោះពុម្ព​ផ្សាយ​ភ្លាមៗ ។ កំណត់ហេតុ NS ដែល​បាន​បង្កើត​ជាមួយ​តំបន់​គឺ​ជា​កំណត់ហេតុ​ប្រព័ន្ធ ៖ ការ​ធ្វើ​ឲ្យ​ទាន់​សម័យ ឬ​លុប​ពួក​វា​ត្រឡប់ 403 ។

ពេល​អ្នក​បិទ​អាទិភាព​នៃ​កំណត់ហេតុ MX ឬ SRV ផ្ញើ record_ type ក្នុង​សំណើ​ដូចគ្នា ។ រាងកាយ​បិទ​ជាមួយ​អាទិភាព​ប៉ុន្តែ​គ្មាន record_ type ជម្រះ​អាទិភាព ។
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 300}'

លេខកូដស្ថានភាពឆ្លើយតប

200 យក ដាក់ ឬ Patch ៖ កំណត់​ហេតុ
204 បាន​លុប ។ ការ​ឆ្លើយតប​គ្មាន​តួ ។
400 កំហុស​ធ្វើ​ឲ្យ​មាន​សុពលភាព
403 កំណត់ហេតុ​គឺ​ជា​កំណត់ហេតុ​ប្រព័ន្ធ ឬ​តួអក្សរ​ខ្វះ​សិទ្ធិ​ដែល​ត្រូវការ
404 រក​មិន​ឃើញ ឬ​វា​ជា​របស់​គណនី​ផ្សេង

ការ​ដោះស្រាយ​កំហុស

កំហុស​ធ្វើ​ឲ្យ​មាន​សុពលភាព​ត្រឡប់ ៤០០ ជាមួយ​បញ្ហា​ដែល​បាន​គូស​ដោយ​ឈ្មោះ​វាល ៖

{
  "priority": ["MX records require a priority value"]
}

កំពុង​សាកល្បង​ការ​ផ្លាស់ប្ដូរ DNS

សំណួរ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ VPS.org ដោយ​ផ្ទាល់​ដើម្បី​បញ្ជាក់​ការ​ផ្លាស់ប្ដូរ​គឺ​រស់​មុន​ពេល​ការ​ផ្ទេរ​អ្នក​ចុះ​ឈ្មោះ​របស់​អ្នក ឬ​ឃ្លាំង​សម្ងាត់​ដោះស្រាយ​ចាប់​យក​ឡើង ៖

dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com