VPS.org API

REST API -dokumentaatio

DNS-hallinta-API

Hallitse verkkotunnustesi DNS-vyöhykkeitä ja -tietueita ohjelmallisesti.

Päätepisteet 4 päätepistettä
Perusreitti /api/v1/dns-zones
Todennus Kantapää vaaditaan

Yleiskatsaus

DNS API hallinnoi täysin DNS-alueita ja -tietoja. Kaikkia vyöhykkeitä isännöivät VPS.org:n arvovaltaiset nimipalvelimet, joissa on automaattinen BIND9-alueen tiedostojen tuottaminen ja käyttöönotto.

Nimipalvelininfrastruktuuri

Tärkeimmät ominaisuudet

Todennus

Kaikki DNS API-pyynnöt vaativat Lastauskorttitodennuksen. Luo API-tokentit tililtäsi kojelaudalla osoitteessa /account/developers/ seuraavilla luvilla:

Esimerkki

Authorization: Bearer vps_abc123def456...
Tärkeää: API-merkit näkyvät vain kerran luomisen aikana. Säilytä ne turvallisesti. Jos menetät merkin, sinun täytyy luoda uusi.
SAADA /api/v1/dns-zones/

Listaa kaikki DNS-vyöhykkeet

Hae paginoitu lista kaikista oikeaksi todistetun käyttäjän omistamista DNS-alueista. Tukee verkkotunnuksen suodattamista.

Kyselyparametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
domain string Ei tarvitse. Filter zones by exact domain name (e.g., example.com)

Esimerkkipyyntö

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

Esimerkkivastaus

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

Vastauskentät

Kenttä Tyyppi Tavaran kuvaus
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

Vastauksen tilakoodit

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

Hanki DNS-alueen tiedot

Hae yksityiskohtaiset tiedot tietystä DNS-alueesta, mukaan lukien kaikki tiedot.

Polkuparametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
uuid string Kyllä Unique zone identifier

Esimerkkivastaus

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

Vastauksen tilakoodit

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

Luo DNS-alue

Luo uusi DNS-alue verkkotunnusta varten. Vyöhyke otetaan välittömästi käyttöön VPS.org nimipalvelimelle.

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
domain string Kyllä Domain name (e.g., example.com)

Esimerkkipyyntö

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

Esimerkkivastaus

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

Vastauksen tilakoodit

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

Poista DNS-alue

Poista pysyvästi DNS-alue ja kaikki siihen liittyvät tiedot. Tätä toimintoa ei voi peruuttaa.

Polkuparametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
uuid string Kyllä Unique zone identifier

Vastauksen tilakoodit

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

Luettelo DNS-levyistä vyöhykkeellä

Hae kaikki DNS-tietueet tietyltä vyöhykkeeltä (nopea reitti).

Polkuparametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
uuid string Kyllä Zone UUID

Esimerkkipyyntö

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

Esimerkkivastaus

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

Luo DNS-tallennus vyöhykkeelle

Lisää uusi DNS-ennätys tietylle vyöhykkeelle (nopea reitti).

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
record_type string Kyllä Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Kyllä Record name (@ for root, subdomain, or FQDN)
value string Kyllä 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)

Esimerkkipyyntö

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

Vastauksen tilakoodit

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

Manage DNS Records (Direct Access)

Täydelliset CRUD-toiminnot yksittäisillä DNS-tallenteilla, joissa käytetään tietue UUID:tä.

Käytettävissä olevat operaatiot

Kyselyparametrit (GET/api/v1/dns-records/)

Parameter Tyyppi Tavaran kuvaus
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Esimerkki: Päivitä levyn 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

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

Parhaita käytäntöjä

TTL:n asetukset

Yleiset kuviot

Turvallisuus

Virheiden käsittely

Yhteiset virheet

Tilakoodi Virhe Ratkaisu
400 Virheellinen verkkotunnuksen nimi Varmista, että verkkotunnus seuraa DNS:n nimeämissopimuksia
400 MX-levy vaatii ensisijaisuutta Sisällytä priority MX- ja SRV-levyjen kenttä
401 Virheellinen API-tunnus Valitse polettimuoto (täytyy aloittaa vps_)
403 Puuttuva lupa Luo uusi tunniste vaaditulla tavalla dns:* luvat
404 Aluetta/levyä ei löytynyt Varmista UUID ja varmista, että resurssi kuuluu tilillesi

Esimerkkivirhevastaus

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

DNS-muutosten testaus

Varmista levyn levinneisyys

# 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

Verkkotyökalujen käyttö