VPS.org API

Àwọn Àkọsílẹ̀ API REST

API Ìṣàkóso DNS

Ṣàkóso àwọn agbègbè DNS àti àwọn àkọsílẹ̀ ní ìlànà fún àwọn agbègbè rẹ.

Àwọn ìparí Àwọn ìparí mẹ́rin
Ipa-ọna Ipilẹ /api/v1/dns-zones
Ìjẹ́rìísí Àwọn Àwọn Àkọ́lé

Àkótán Àkótán

The DNS API provides full management of DNS zones and records. All zones are hosted on VPS.org's authoritative nameservers with automatic BIND9 zone file generation and deployment.

Àwọn Ààyè-iṣẹ́ Àwọn Ààtòjọ-ẹ̀yàn

Àwọn Àbùdá Ìjánu-ìṣàmúlò-ètò

Ìjẹ́rìísí

Àwọn ìtàn API DNS gbogbò ní ìṣàfihàn tókè Béréẹ̀. Ṣẹ̀dà tókè API láti inú àwọn àtòjọ-ẹ̀yàn kọ̀ǹpútà rẹ̀ ní /account/developers/ Àwọn ìwọ̀n àwọn ìṣẹ̀dà àwọn ìkúndùǹ yìí:

Àwọn Ààyè-iṣẹ́

Authorization: Bearer vps_abc123def456...
Àwọn àwọn àwọn àwọn àwọn àwọn àwọn Àwọn tókènì API ní a fi hàn nígbà kan nígbà ìṣàfarawé. Fi hàn hàn nípa ìdára. Tó pàtókènì kù, ò ní ìṣàfarawé kan tuntun.
GBÀ /api/v1/dns-zones/

Ṣe àkójọ gbogbo àwọn agbègbè DNS

Gba àtòjọ àwọn ojú-ìwé àwọn ààyè-iṣẹ́ DNS láti inú àwọn òǹlò tí a fọwọ́sì. Ǹ̀fà ìṣàfihàn láti inú orúkọ dóméènì.

Àwọn Ìbéèrè Pàtàkì

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
domain string _Kò Filter zones by exact domain name (e.g., example.com)

Àpẹẹrẹ Ìbéèrè

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

Àpẹẹrẹ Ìdáhùn

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

Àwọn Ààyè Ìdáhùn

Àwọn Ààyè-iṣẹ́ Irú Àwọn Àkọlé
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

Àwọn Kóòdù Ipò Ìdáhùn

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

Wa àwọn ìròyìn Zò́ǹ DNS

Gba àwọn ìròyìn àwọn ìdájú ààyè-iṣẹ́ ààyè-iṣẹ́ DNS kan, àti àwọn àkọsílẹ̀ gbogbó.

Àwọn Pílámítà Ọ̀nà

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
uuid string Bẹ́ẹ̀ni Unique zone identifier

Àpẹẹrẹ Ìdáhùn

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

Àwọn Kóòdù Ipò Ìdáhùn

200 Successfully retrieved zone details
404 Zone not found or not owned by user
Àwọn Àkọlé /api/v1/dns-zones/

Ṣẹ̀dà Ààyè-iṣẹ́ DNS

Ṣẹ̀dà ààyè-iṣẹ́ DNS tuntun fún dómìnirà kan. Ààyè-iṣẹ́ náà á fi pamọ́ sí àwọn ààyè-iṣẹ́ VPS.org.

Ìbéèrè fún Àwọn Ìwọ̀n Ara

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
domain string Bẹ́ẹ̀ni Domain name (e.g., example.com)

Àpẹẹrẹ Ìbéèrè

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

Àpẹẹrẹ Ìdáhùn

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

Àwọn Kóòdù Ipò Ìdáhùn

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
PARÍPÁRÁ /api/v1/dns-zones/{uuid}/

Pa Ààyè-iṣẹ́ DNS Rẹ̀

Pa ààyè-iṣẹ́ DNS kù ní pàtó àti àwọn àtòjọ-ẹ̀yàn tó dàjú. Àtòjọ-ẹ̀yàn yìí kò lè pà.

Àwọn Pílámítà Ọ̀nà

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
uuid string Bẹ́ẹ̀ni Unique zone identifier

Àwọn Kóòdù Ipò Ìdáhùn

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

Àtòjọ àwọn àkọlé DNS nínú Ààyè-iṣẹ́

Gba àwọn àtòjọ-ẹ̀yàn DNS fún ààyè-iṣẹ́ kan (àgbègbè àìdálẹ̀).

Àwọn Pílámítà Ọ̀nà

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
uuid string Bẹ́ẹ̀ni Zone UUID

Àpẹẹrẹ Ìbéèrè

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

Àpẹẹrẹ Ìdáhùn

[
  {
    "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"
  }
]
Àwọn Àkọlé /api/v1/dns-zones/{uuid}/records/

Ṣẹ̀dà àwọn àyọkà DNS nínú ààyè-iṣẹ́

Fi àtòjọ-ẹ̀yàn DNS tuntun sí ààyè-iṣẹ́ kan (àwọn ìṣàmúlò-ètò àìdáràn).

Ìbéèrè fún Àwọn Ìwọ̀n Ara

Àwọn Àtòjọ-ẹ̀yàn Irú Ti a nilo Àwọn Àkọlé
record_type string Bẹ́ẹ̀ni Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Bẹ́ẹ̀ni Record name (@ for root, subdomain, or FQDN)
value string Bẹ́ẹ̀ni 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)

Àpẹẹrẹ Ìbéèrè

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

Àwọn Kóòdù Ipò Ìdáhùn

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}/

Ṣàrà àwọn àkọlé DNS (Àtòjọ-ẹ̀yàn)

Àwọn iṣẹ́ CRUD ìparí nípa àwọn àkọlé DNS fún ẹnikẹ́ni nípa ìṣàfarawe UUID àkọlé.

Àwọn Ìṣàmúlò-ètò Tí Wá

Query Parameters (for GET /api/v1/dns-records/)

Parameter Irú Àwọn Àkọlé
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Àwọn Àwọn Àkọlé

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

Irú Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 _Kò
AAAA Maps domain to IPv6 address 2001:0db8::1 _Kò
CNAME Creates alias to another domain example.com _Kò
MX Mail server for domain mail.example.com Bẹ́ẹ̀ni
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all _Kò
NS Nameserver delegation ns1.example.com _Kò
SRV Service location record 10 5060 sip.example.com Bẹ́ẹ̀ni
CAA Certificate authority authorization 0 issue "letsencrypt.org" _Kò

Àwọn Ìṣàmúlò-ètò Tí O darà

Àtòjọ-ẹ̀yàn

Àwọn ìṣàmúlò-ètò àìpẹ̀

Àìdáràn

Ìṣàmúlò-ètò Àṣìṣe

Àwọn Àṣìṣe Àwọn Àwọn Àṣìṣe

Kóòdù Ipò Àṣìṣe Àwọn Àwọn Àwọn Àwọn
400 Orúkọ dóméǹ kò tọ́ Fi àwọn àwọn ìṣàmúlò-ètò DNS pamọ́
400 Àtòjọ-ẹ̀yàn MX ní ìjánu-ìjánù Àwọn àwọn àwọn àwọn àwọn priority ààyè fún àwọn àkọlé MX àti SRV
401 Àwọn àwọn àyọkà API àìdálẹ̀ Àwọn ìgúnrégé tókè ìṣàmúlò-ètò (ò yẹ ki o bẹrẹ láti inú vps_)
403 Àwọn ìkúndùǹ tí kò wa Ṣẹ̀dà tókè ìṣàfarawé àwọn ìṣàmúlò-ètò tuntun dns:* Àwọn ìkúndùǹ
404 Àwọn ààyè-iṣẹ́/àwọn ààyè-iṣẹ́ kò ri Ṣàyẹwo UUID àti ìròyìn àwọn ààyè-iṣẹ́ tí a fi pamọ́ sí àwọn kándà rẹ

Àwọn Àwọn Àṣìṣe

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

Àwọn Àyipada DNS

Àwọn àkọlé àwòrán

# 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

Lo Àwọn Àtúntò Àìlẹ̀