VPS.org API

REST API-dokumentation

DNS-hanterings-API

Hantera DNS-zoner och -poster programmatiskt för dina domäner.

Slutpunkter 4 slutpunkter
Basväg /api/v1/dns-zones
Autentisering Bearer Token krävs

Översikt

DNS API ger full hantering av DNS-zoner och register. Alla zoner är värd på VPS.org auktoritativa namnservrar med automatisk BIND9 zon filgenerering och distribution.

Infrastruktur för namnserver

Nyckelfunktioner

Autentisering

Alla DNS API-förfrågningar kräver Bearer token autentisering. Generera API tokens från ditt konto instrumentpanelen på /account/developers/ med följande tillstånd:

Exempel

Authorization: Bearer vps_abc123def456...
Viktigt: API- tokens visas bara en gång under skapandet. Förvara dem säkert. Om du förlorar en token, måste du generera en ny.
/api/v1/dns-zones/

Lista alla DNS-zoner

Hämta en sidnumrerad lista över alla DNS-zoner som ägs av den autentiserade användaren. Stöder filtrering enligt domännamn.

Frågeparametrar

Parameter Typ Nödvändig Varuslag
domain string Ej tillämpligt Filter zones by exact domain name (e.g., example.com)

Exempelförfrågan

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

Exempelsvar

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

Svarsfält

Fält Typ Varuslag
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

Svarsstatuskoder

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

Hämta DNS-zondetaljer

Hämta detaljerad information om en specifik DNS-zon, inklusive alla poster.

Sökvägsparametrar

Parameter Typ Nödvändig Varuslag
uuid string Ja Unique zone identifier

Exempelsvar

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

Svarsstatuskoder

200 Successfully retrieved zone details
404 Zone not found or not owned by user
Från och med den 1 januari 2016 till och med den 31 december 2016 /api/v1/dns-zones/

Skapa DNS- zon

Skapa en ny DNS- zon för en domän. Zonen kommer omedelbart att användas till VPS.org namnservrar.

Parametrar för begäran

Parameter Typ Nödvändig Varuslag
domain string Ja Domain name (e.g., example.com)

Exempelförfrågan

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

Exempelsvar

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

Svarsstatuskoder

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

Ta bort DNS- zon

Radera permanent en DNS- zon och alla tillhörande poster. Åtgärden kan inte ångras.

Sökvägsparametrar

Parameter Typ Nödvändig Varuslag
uuid string Ja Unique zone identifier

Svarsstatuskoder

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

Lista DNS-poster i zonen

Hämta alla DNS-poster för en viss zon (nested route).

Sökvägsparametrar

Parameter Typ Nödvändig Varuslag
uuid string Ja Zone UUID

Exempelförfrågan

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

Exempelsvar

[
  {
    "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"
  }
]
Från och med den 1 januari 2016 till och med den 31 december 2016 /api/v1/dns-zones/{uuid}/records/

Skapa DNS-registrering i zon

Lägg till en ny DNS-skiva till en specifik zon (nested route).

Parametrar för begäran

Parameter Typ Nödvändig Varuslag
record_type string Ja Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Ja Record name (@ for root, subdomain, or FQDN)
value string Ja 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)

Exempelförfrågan

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

Svarsstatuskoder

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

Hantera DNS-poster (direkt åtkomst)

Fullständig CRUD-verksamhet på enskilda DNS-poster med hjälp av rekord UUID.

Tillgängliga åtgärder

Fråga parametrar (för GET /api/v1/dns-skivor/)

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

Exempel: Uppdatera TTL för en skiva

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 Ej tillämpligt
AAAA Maps domain to IPv6 address 2001:0db8::1 Ej tillämpligt
CNAME Creates alias to another domain example.com Ej tillämpligt
MX Mail server for domain mail.example.com Ja
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all Ej tillämpligt
NS Nameserver delegation ns1.example.com Ej tillämpligt
SRV Service location record 10 5060 sip.example.com Ja
CAA Certificate authority authorization 0 issue "letsencrypt.org" Ej tillämpligt

Bästa praxis

Inställning av TTL

Vanliga mönster

Säkerhet

Felhantering

Vanliga fel

Statuskod Fel Lösning
400 Ogiltigt domännamn Se till att domänen följer DNS namngivningskonventioner
400 MX-post kräver prioritet Inkludera priority fält för MX- och SRV-poster
401 Ogiltig API- token Kontrollera token format (måste börja med vps_)
403 Saknar behörighet Skapa ny token med nödvändig dns:* behörigheter
404 Zon/post hittades inte Verifiera UUID och se till att resursen tillhör ditt konto

Exempel Felsvar

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

Testa DNS- ändringar

Verifiera rekordförökning

# 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

Använda online-verktyg