VPS.org API

REST API بەڵگەنامە

API-ya Rêvebiriya DNS-ê

Herêm û tomarên DNS-ê ji bo domainên xwe bi awayekî bernamekirî birêve bibin.

Xalên Dawî 4 xalên dawî
Riya bingehîn /api/v1/dns-zones
Rastkirin پێویست بە نیشانەی بارکەر هەیە

Têgihiştinî

دی ئێن ئێس ئەپی پی بەڕێوەبردنی تەواو دەدات بە ناوچەکانی دی ئێن ئێس و تۆمارەکان. هەموو ناوچەکان لەسەر VPS.org's authority name servers دادەنرێن لەگەڵ دروستکردنی ئۆتۆماتیکی BIND9 zone file و دابەشکردنی.

ناو:

تایبەتمەندی سەرەکی

Rastkirin

هەموو داواکاریەکانی ئەپی پی ئێن پێویستی بە ناساندنی نیشانەی بارکەر هەیە. نیشانەی ئەپی پی لە داشبۆردی هەژمارەکەت دروست بکە لە /account/developers/ بە مۆڵەتی خوارەوە:

نمونە

Authorization: Bearer vps_abc123def456...
گرنگ: توكەکانی ئەپی بی ئی تەنها جارێک نیشان دەدرێن لە کاتی دروستکردنیدا. بە دڵنیاییەوە بیپارێزە. ئەگەر توكێکت لەدەستدا، دەبێت توكێکی نوێ دروست بکەیت.
STENDIN /api/v1/dns-zones/

Hemû Herêmên DNS-ê Lîst bike

لیستێکی پەڕەیی لە هەموو ناوچەکانی DNS وەرگرە کە خاوەنەکەی بەکارهێنەرێکی ڕاستەوخۆیە. پشتگیری لە پاڵاوتن دەکات بە ناوی دۆمەین.

Parametreyên Lêpirsînê

پارامەتر Awa Pêwîst باسکردن
domain string نەخێر Filter zones by exact domain name (e.g., example.com)

Daxwaza Nimûne

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
  -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)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});

const zones = await response.json();
console.log(zones);

Bersiva Mînakî

[
  {
    "uuid": "abc123-def456-ghi789",
    "domain": "example.com",
    "created_at": "2024-01-15T10:30:00Z",
    "record_count": 12
  },
  {
    "uuid": "xyz789-uvw456-rst123",
    "domain": "myapp.io",
    "created_at": "2024-06-20T14:15:00Z",
    "record_count": 8
  }
]

Zeviyên Bersivê

بەشی ناوەوەی پەڕەکە Awa باسکردن
uuid string Unique zone identifier (used in API requests)
domain string Domain name for this DNS zone
created_at datetime Zone creation timestamp (ISO 8601 format)
record_count integer Total number of DNS records in this zone

Kodên Rewşa Bersivê

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
STENDIN /api/v1/dns-zones/{uuid}/

زانیارییەکانی ناوچەی DNS بەدەست بهێنە

زانیارییە وردەکان دەربارەی ناوچەی دیاریکراوی DNS بەدەست بهێنە، لەگەڵ هەموو تۆمارەکان.

Parametreyên Rêyê

پارامەتر Awa Pêwîst باسکردن
uuid string Erê Unique zone identifier

Bersiva Mînakî

{
  "uuid": "abc123-def456-ghi789",
  "domain": "example.com",
  "created_at": "2024-01-15T10:30:00Z",
  "record_count": 5,
  "records": [
    {
      "uuid": "rec-001",
      "record_type": "A",
      "name": "@",
      "value": "192.0.2.1",
      "ttl": 3600,
      "priority": null,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "uuid": "rec-002",
      "record_type": "MX",
      "name": "@",
      "value": "mail.example.com",
      "ttl": 3600,
      "priority": 10,
      "created_at": "2024-01-15T10:32:00Z"
    }
  ]
}

Kodên Rewşa Bersivê

200 Successfully retrieved zone details
404 Zone not found or not owned by user
پۆست /api/v1/dns-zones/

دروستکردنی ناوچەی DNS

Create a new DNS zone for a domain. The zone will be immediately deployed to VPS.org nameservers.

Parametreyên Laşê Daxwazê

پارامەتر Awa Pêwîst باسکردن
domain string Erê Domain name (e.g., example.com)

Daxwaza Nimûne

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

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({domain: 'newdomain.com'})
});

const zone = await response.json();
console.log(zone);

Bersiva Mînakî

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

Kodên Rewşa Bersivê

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
JÊBIRIN /api/v1/dns-zones/{uuid}/

بەشی DNS هەڵبگرە

بۆ هەمیشە ناوچەیەکی DNS و هەموو تۆمارە پەیوەندیدارەکانت هەڵبگرە. ئەم کردارە ناتوانرێت هەڵبگیرێت.

Parametreyên Rêyê

پارامەتر Awa Pêwîst باسکردن
uuid string Erê Unique zone identifier

Kodên Rewşa Bersivê

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
STENDIN /api/v1/dns-zones/{uuid}/records/

تۆماری DNS لە ناوچەکەدا تۆمار بکە

هەموو تۆمارەکانی DNS بۆ ناوچەی دیاریکراو وەرگرە (ڕێگای بەستراو).

Parametreyên Rêyê

پارامەتر Awa Pêwîst باسکردن
uuid string Erê Zone UUID

Daxwaza Nimûne

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Bersiva Mînakî

[
  {
    "uuid": "rec-001",
    "record_type": "A",
    "name": "@",
    "value": "192.0.2.1",
    "ttl": 3600,
    "priority": null,
    "created_at": "2024-01-15T10:30:00Z"
  },
  {
    "uuid": "rec-002",
    "record_type": "MX",
    "name": "@",
    "value": "mail.example.com",
    "ttl": 3600,
    "priority": 10,
    "created_at": "2024-01-15T10:32:00Z"
  }
]
پۆست /api/v1/dns-zones/{uuid}/records/

دروستکردنی تۆماری DNS لە ناوچەی

تۆماری نوێی DNS زیاد بکە بۆ ناوچەی دیاریکراو (ڕێگای ناوەوەی).

Parametreyên Laşê Daxwazê

پارامەتر Awa Pêwîst باسکردن
record_type string Erê Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Erê Record name (@ for root, subdomain, or FQDN)
value string Erê Record value (IP address, hostname, text)
ttl integer No Time to live in seconds (default: 3600)
priority integer For MX/SRV Priority (required for MX and SRV records)

Daxwaza Nimûne

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
  }'
import requests

url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
}

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

Kodên Rewşa Bersivê

201 DNS record created successfully
400 Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

بەڕێوەبردنی تۆمارەکانی DNS (دەسەڵاتی ڕاستەوخۆ)

پڕۆسەی تەواوکردنی CRUD لەسەر تۆماری DNS بە بەکارهێنانی تۆماری UUID.

پڕۆسەی دەستەبەرکراو

پارامەترەکانی پرسیار (بۆ GET /api/v1/dns-records/)

Parameter Awa باسکردن
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

نمونە: نوێکردنەوەی TTL ی تۆمارێک

curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 1800}'

Supported DNS Record Types

Awa Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 نەخێر
AAAA Maps domain to IPv6 address 2001:0db8::1 نەخێر
CNAME Creates alias to another domain example.com نەخێر
MX Mail server for domain mail.example.com Erê
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all نەخێر
NS Nameserver delegation ns1.example.com نەخێر
SRV Service location record 10 5060 sip.example.com Erê
CAA Certificate authority authorization 0 issue "letsencrypt.org" نەخێر

باشترین کار

ڕێکخستنی TTL

نمونە گشتیەکان

_پارێزە

هەڵە

هەڵە گشتیەکان

Koda Rewşê هەڵە چارەسەر
400 ناوێکی دامەزرێنەر نامۆ دڵنیابە لەوەی کە دامەزرێنەرەکەت شوێنی ڕێکەوتنی ناونووسی DNS دەکەوێت
400 تۆماری ئیمکس پێویستی بە پێشەنگی هەیە _بگرە ناو priority بۆ تۆمارەکانی MX و SRV
401 نیشانەی نایاسایی API شێوازی نیشانەی پشکنین (پێویستە دەست پێبکات بە vps_)
403 مۆڵەتی نەماوە دروستکردنی نیشانەی نوێ بە پێویست dns:* مۆڵەتەکان
404 شوێن/ڕێکلام نەدۆزرایەوە پشکنینی UUID بکە و دڵنیابە کە سەرچاوەکەت بۆ هەژمارەکەت دەچێت

نمونەی وەڵامدانەوەی هەڵە

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

تاقیکردنەوەی گۆڕانکاریەکانی DNS

پشکنینی بڵاوبوونەوەی تۆمار

# Query A record
dig example.com A

# Query specific nameserver
dig @ns1.vps.org example.com

# Query MX records
dig example.com MX

# Check all records
dig example.com ANY

بەکارهێنانی ئامرازەکانی ئینتەرنێت