VPS.org API

Dokumentacja REST API

Interfejs API zarządzania DNS

Zarządzaj programowo strefami i rekordami DNS dla swoich domen.

Punkty końcowe 4 punkty końcowe
Ścieżka bazowa /api/v1/dns-zones
Uwierzytelnianie Wymagany tok nośnika

Przegląd

DNS API zapewnia pełne zarządzanie strefami DNS i zapisami. Wszystkie strefy są umieszczone na VPS.org autoryteckich serwerach nazw z automatyczną generacją i rozmieszczaniem plików z strefą BIND9.

Infrastruktura serwera nazw

Kluczowe cechy

Uwierzytelnianie

Wszystkie żądania DNS API wymagają uwierzytelnienia bearera tokena. Generuj API tokeny z panelu centralnego konta na /account/developers/ z następującymi uprawnieniami:

Przykład

Authorization: Bearer vps_abc123def456...
Ważne: Tokeny API są pokazywane tylko raz podczas tworzenia. Przechowywać je bezpiecznie. Jeśli stracisz token, musisz wygenerować nowy.
DOSTAWAĆ /api/v1/dns-zones/

Wyświetl wszystkie strefy DNS

Pobierz paginowaną listę wszystkich stref DNS należących do uwierzytelnionego użytkownika. Podtrzymuje filtrowanie według nazwy domeny.

Parametry zapytania

Parametr Typ Wymagany Opis
domain string Nie. Filter zones by exact domain name (e.g., example.com)

Przykładowe żądanie

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

Przykładowa odpowiedź

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

Pola odpowiedzi

Pole Typ Opis
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

Kody statusu odpowiedzi

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

Szczegóły strefy DNS

Pobierz szczegółowe informacje na temat określonej strefy DNS, w tym wszystkie rejestry.

Parametry ścieżki

Parametr Typ Wymagany Opis
uuid string Tak Unique zone identifier

Przykładowa odpowiedź

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

Kody statusu odpowiedzi

200 Successfully retrieved zone details
404 Zone not found or not owned by user
POST /api/v1/dns-zones/

Utwórz strefę DNS

Utwórz nową strefę DNS dla domeny. Strefa zostanie natychmiast rozmieszczona do VPS.org serwerów nazw.

Parametry treści żądania

Parametr Typ Wymagany Opis
domain string Tak Domain name (e.g., example.com)

Przykładowe żądanie

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

Przykładowa odpowiedź

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

Kody statusu odpowiedzi

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

Usuń strefę DNS

Trajnie usuń strefę DNS i wszystkie powiązane zapisy. Ta akcja nie może być cofnięta.

Parametry ścieżki

Parametr Typ Wymagany Opis
uuid string Tak Unique zone identifier

Kody statusu odpowiedzi

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

Lista Records DNS w strefie

Pobierz wszystkie zapisy DNS dla określonej strefy (założona trasa).

Parametry ścieżki

Parametr Typ Wymagany Opis
uuid string Tak Zone UUID

Przykładowe żądanie

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

Przykładowa odpowiedź

[
  {
    "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"
  }
]
POST /api/v1/dns-zones/{uuid}/records/

Utwórz zapis DNS w strefie

Dodaj nowy zapis DNS do określonej strefy (założona trasa).

Parametry treści żądania

Parametr Typ Wymagany Opis
record_type string Tak Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Tak Record name (@ for root, subdomain, or FQDN)
value string Tak 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)

Przykładowe żądanie

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

Kody statusu odpowiedzi

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

Zarządzanie DNS Records (Direct Access)

Pełne operacje CRUD na poszczególnych płytach DNS przy użyciu rejestru UUID.

Dostępne operacje

Parametry zapytania (dla GET /api/v1/dns-recordes /)

Parameter Typ Opis
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Przykład: Uaktualnij TTL rejestru

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

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

Najlepsze praktyki

Konfiguracja TTL

Zwykłe wzory

Bezpieczeństwo

Rozwiązanie błędów

Często występujące błędy

Kod statusu Błąd Roztwór
400 Niepoprawna nazwa domeny Zapewnienie domeny zgodnie z konwencjami nazwania DNS
400 Rekord MX wymaga priorytetu Włącz priority pole dla rejestrów MX i SRV
401 Nieprawidłowy token API Sprawdź format tokena (musi zacząć od vps_)
403 Brak zezwolenia Tworzenie nowego tokena z wymaganą potrzebą dns:* Uprawnienia
404 Nie znaleziono strefy/ rejestru Sprawdź UUID i upewnij się, że zasob należy do twojego konta

Przykładowa odpowiedź na błąd

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

Testowanie zmian DNS

Sprawdź rozmnożenie rejestru

# 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

Korzystanie z narzędzi online