VPS.org API

REST API dokumentazioa

DNS kudeaketa APIa

Kudeatu zure domeinuen DNS zonak eta erregistroak programazioz.

Amaiera-puntuak 4 amaiera-puntu
Oinarrizko bidea /api/v1/dns-zones
Autentifikazioa Eramailearen token-a behar da

Orokorra

DNS APIak DNS zona eta erregistroen kudeaketa osoa eskaintzen du. Zona guztiak VPS.org-ren izen-zerbitzari autoritateetan ostatatzen dira, BIND9 zona-fitxategien sorrera eta hedapen automatikoarekin.

Izen-zerbitzarien azpiegitura

Funtzio nagusiak

Autentifikazioa

DNS API eskaera guztiek Bearer token autentifikazioa behar dute. Sortu API tokenak zure kontu-paneletik hemen /account/developers/ baimen hauekin:

Adibidea

Authorization: Bearer vps_abc123def456...
Garrantzitsua: API tokenak behin bakarrik erakusten dira sortzean. Gorde modu seguruan. Token bat galduz gero, berri bat sortu behar da.
LORTU /api/v1/dns-zones/

DNS eremu guztiak zerrendatu

Autentifikatutako erabiltzaileak dituen DNS zona guztien zerrenda orrialdez orri eskuratzen du. Domeinu-izenaren araberako iragazkia onartzen du.

Kontsulta-parametroak

Parametroak Mota Beharrezkoa Azalpena
domain string Ez Filter zones by exact domain name (e.g., example.com)

Eskaera adibidea

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

Adibide Erantzuna

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

Erantzun Eremuak

Eremua Mota Azalpena
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

Erantzun Egoera Kodeak

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

Eskuratu DNS zonaren xehetasunak

Eskuratu DNS zona zehatz bati buruzko informazio xehea, erregistro guztiak barne.

Bidearen parametroak

Parametroak Mota Beharrezkoa Azalpena
uuid string Bai Unique zone identifier

Adibide Erantzuna

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

Erantzun Egoera Kodeak

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

Sortu DNS zona

Sortu DNS zona berri bat domeinu batentzat. Zona berehala zabalduko da VPS.org izen-zerbitzarietan.

Eskaeraren Gorputzaren Parametroak

Parametroak Mota Beharrezkoa Azalpena
domain string Bai Domain name (e.g., example.com)

Eskaera adibidea

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

Adibide Erantzuna

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

Erantzun Egoera Kodeak

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

Ezabatu DNS zona

Ezabatu behin betiko DNS zona bat eta erregistro guztiak. Ekintza hau ezin da desegin.

Bidearen parametroak

Parametroak Mota Beharrezkoa Azalpena
uuid string Bai Unique zone identifier

Erantzun Egoera Kodeak

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

Zerrendatu DNS erregistroak eremuan

Eskuratu zona zehatz bateko DNS erregistro guztiak (harlanduzko bidea).

Bidearen parametroak

Parametroak Mota Beharrezkoa Azalpena
uuid string Bai Zone UUID

Eskaera adibidea

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

Adibide Erantzuna

[
  {
    "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/

Sortu DNS erregistroa eremuan

Gehitu DNS erregistro berri bat zona zehatz bati (harlanduzko bidea).

Eskaeraren Gorputzaren Parametroak

Parametroak Mota Beharrezkoa Azalpena
record_type string Bai Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Bai Record name (@ for root, subdomain, or FQDN)
value string Bai 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)

Eskaera adibidea

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

Erantzun Egoera Kodeak

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

Kudeatu DNS erregistroak (zuzeneko sarbidea)

CRUD eragiketa osoak DNS erregistro indibidualetan, erregistroaren UUIDa erabiliz.

Eragiketa erabilgarriak

Kontsultaren parametroak (GET /api/v1/dns-records/-rako)

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

Adibidea: erregistro baten TTL eguneratzea

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

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

Jardunbide egokiak

TTL konfigurazioa

Eredu arruntak

Segurtasuna

Errore-kudeaketa

Errore arruntak

Egoera kodea Errorea Irtenbidea
400 Domeinu-izen baliogabea Ziurtatu domeinuak DNS izendapen-konbentzioak jarraitzen dituela
400 MX erregistroak lehentasuna behar du Sartu priority MX eta SRV erregistroen eremua
401 API token baliogabea Egiaztatu tokenaren formatua (haurekin hasi behar du vps_)
403 Baimenik ez Sortu token berria beharrezkoa denarekin dns:* baimenak
404 Ez da eremua/erregistroa aurkitu Egiaztatu UUIDa eta ziurtatu baliabidea zure kontuarena dela

Errorearen erantzunaren adibidea

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

DNS aldaketak probatzen

Egiaztatu erregistroaren hedapena

# 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

Lineako tresnak erabiltzea