VPS.org API

Documentazione delle API REST

API dei domini

Gestisci la registrazione, il rinnovo e la configurazione del dominio in modo programmatico.

Punti finali 6 endpoints
Percorso di base /api/v1/domains
OTTENERE /api/v1/domains/

Elenca tutti i domini

Recupera un elenco di tutti i domini registrati sotto il tuo account.

Parametri di query

Parametro Tipo Necessario Designazione delle merci
status string No. Filter by status: active, pending, expired, locked
search string No. Cerca domini per nome

Richiesta di esempio

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const domains = await response.json();
console.log(domains);

Esempio di risposta

{
  "count": 3,
  "results": [
    {
      "id": 101,
      "domain_name": "example.com",
      "status": "active",
      "registration_date": "2023-01-15T10:30:00Z",
      "expiration_date": "2026-01-15T10:30:00Z",
      "auto_renew": true,
      "locked": true,
      "nameservers": [
        "ns1.vps.org",
        "ns2.vps.org"
      ],
      "privacy_protection": true,
      "dns_managed_by": "vps.org"
    },
    {
      "id": 102,
      "domain_name": "myapp.io",
      "status": "active",
      "registration_date": "2024-06-20T14:15:00Z",
      "expiration_date": "2025-06-20T14:15:00Z",
      "auto_renew": false,
      "locked": false,
      "nameservers": [
        "ns1.cloudflare.com",
        "ns2.cloudflare.com"
      ],
      "privacy_protection": false,
      "dns_managed_by": "external"
    }
  ]
}

Codici di stato della risposta

200 Elenco dei domini recuperati con successo
401 Non autorizzato - Token di autenticazione non valido o mancante
POST /api/v1/domains/

Registra un nuovo dominio

Registrare un nuovo nome di dominio. La disponibilità del dominio deve essere controllata prima della registrazione.

Parametri del corpo della richiesta

Parametro Tipo Necessario Designazione delle merci
domain_name string Domain name to register (e.g., "example.com")
years integer No. Registration period in years (1-10, default: 1)
auto_renew boolean No. Enable automatic renewal (default: true)
privacy_protection boolean No. Enable WHOIS privacy protection (default: true)
nameservers array No. Custom nameservers (default: VPS.org nameservers)

Richiesta di esempio

cURL
Python
JavaScript
PHP
curl -X POST "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "domain_name": "mynewdomain.com",
    "years": 2,
    "auto_renew": true,
    "privacy_protection": true
  }'
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "domain_name": "mynewdomain.com",
    "years": 2,
    "auto_renew": True,
    "privacy_protection": True
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    domain_name: 'mynewdomain.com',
    years: 2,
    auto_renew: true,
    privacy_protection: true
  })
});

const domain = await response.json();
console.log(domain);
$data = [
    'domain_name' => 'mynewdomain.com',
    'years' => 2,
    'auto_renew' => true,
    'privacy_protection' => true
];

$ch = curl_init('https://admin.vps.org/api/v1/domains/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$domain = json_decode($response, true);
curl_close($ch);

Esempio di risposta

{
  "id": 103,
  "domain_name": "mynewdomain.com",
  "status": "pending",
  "registration_date": "2026-01-16T16:00:00Z",
  "expiration_date": "2028-01-16T16:00:00Z",
  "auto_renew": true,
  "locked": true,
  "nameservers": [
    "ns1.vps.org",
    "ns2.vps.org"
  ],
  "privacy_protection": true,
  "dns_managed_by": "vps.org",
  "total_cost": 24.98,
  "message": "Domain registration initiated. Processing may take 5-10 minutes."
}

Codici di stato della risposta

201 Domain registration initiated successfully
400 Bad Request - Invalid domain name or domain already registered
401 Non autorizzato - Token di autenticazione non valido o mancante
402 Payment Required - Insufficient account balance
Nota: Domain registration is not instant. Status will change from pending to active within 5-10 minutes. You'll receive an email confirmation when registration completes.
OTTENERE /api/v1/domains/{domain_id}/

Ottieni dettagli di dominio

Recupera informazioni dettagliate su uno specifico dominio.

Parametri del percorso

Parametro Tipo Necessario Designazione delle merci
domain_id integer Unique domain ID

Richiesta di esempio

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/101/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

domain_id = 101
url = f"https://admin.vps.org/api/v1/domains/{domain_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())
const domainId = 101;
const response = await fetch(`https://admin.vps.org/api/v1/domains/${domainId}/`, {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const domain = await response.json();
console.log(domain);

Esempio di risposta

{
  "id": 101,
  "domain_name": "example.com",
  "status": "active",
  "registration_date": "2023-01-15T10:30:00Z",
  "expiration_date": "2026-01-15T10:30:00Z",
  "auto_renew": true,
  "locked": true,
  "nameservers": [
    "ns1.vps.org",
    "ns2.vps.org"
  ],
  "privacy_protection": true,
  "dns_managed_by": "vps.org",
  "registrar": "VPS.org",
  "days_until_expiration": 730,
  "whois_info": {
    "registrant": "Privacy Protected",
    "admin_contact": "Privacy Protected",
    "tech_contact": "Privacy Protected",
    "created_date": "2023-01-15",
    "updated_date": "2025-12-20"
  },
  "dns_records_count": 12
}

Codici di stato della risposta

200 Successfully retrieved domain details
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il dominio non esiste
METTERE /api/v1/domains/{domain_id}/

Aggiorna le impostazioni del dominio

Aggiorna la configurazione del dominio come il rinnovo automatico, i nameserver e le impostazioni della privacy.

Parametri del percorso

Parametro Tipo Necessario Designazione delle merci
domain_id integer Unique domain ID

Parametri del corpo della richiesta

Parametro Tipo Necessario Designazione delle merci
auto_renew boolean No. Enable or disable automatic renewal
privacy_protection boolean No. Enable or disable WHOIS privacy
nameservers array No. Update nameservers (2-4 nameservers required)
locked boolean No. Lock or unlock domain to prevent transfers

Richiesta di esempio

cURL
Python
JavaScript
curl -X PUT "https://admin.vps.org/api/v1/domains/101/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "auto_renew": false,
    "nameservers": [
      "ns1.cloudflare.com",
      "ns2.cloudflare.com"
    ]
  }'
import requests

domain_id = 101
url = f"https://admin.vps.org/api/v1/domains/{domain_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "auto_renew": False,
    "nameservers": [
        "ns1.cloudflare.com",
        "ns2.cloudflare.com"
    ]
}

response = requests.put(url, headers=headers, json=data)
print(response.json())
const domainId = 101;
const response = await fetch(`https://admin.vps.org/api/v1/domains/${domainId}/`, {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    auto_renew: false,
    nameservers: [
      'ns1.cloudflare.com',
      'ns2.cloudflare.com'
    ]
  })
});

const domain = await response.json();
console.log(domain);

Esempio di risposta

{
  "id": 101,
  "domain_name": "example.com",
  "status": "active",
  "auto_renew": false,
  "nameservers": [
    "ns1.cloudflare.com",
    "ns2.cloudflare.com"
  ],
  "privacy_protection": true,
  "locked": true,
  "message": "Domain settings updated successfully. Nameserver changes may take up to 24 hours to propagate."
}

Codici di stato della risposta

200 Domain updated successfully
400 Bad Request - Invalid parameters
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il dominio non esiste
ELIMINARE /api/v1/domains/{domain_id}/

Elimina dominio

Elimina un dominio dal tuo account. Questo non annulla la registrazione del dominio - lo rimuove solo dalla gestione del tuo account VPS.org.

Parametri del percorso

Parametro Tipo Necessario Designazione delle merci
domain_id integer Unique domain ID

Richiesta di esempio

cURL
Python
JavaScript
curl -X DELETE "https://admin.vps.org/api/v1/domains/101/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

domain_id = 101
url = f"https://admin.vps.org/api/v1/domains/{domain_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)
print(response.status_code)
const domainId = 101;
const response = await fetch(`https://admin.vps.org/api/v1/domains/${domainId}/`, {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

console.log(response.status);

Codici di stato della risposta

204 Domain removed from account successfully
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il dominio non esiste
Important: Deleting a domain from your VPS.org account does NOT cancel the registration. The domain will continue to be registered and will auto-renew if enabled. To cancel a domain registration, disable auto-renewal and let it expire.
POST /api/v1/domains/{domain_id}/transfer/

Dominio di trasferimento

Avviare un trasferimento di dominio a VPS.org da un altro registrar.

Parametri del percorso

Parametro Tipo Necessario Designazione delle merci
domain_id integer Unique domain ID

Parametri del corpo della richiesta

Parametro Tipo Necessario Designazione delle merci
auth_code string EPP/Authorization code from current registrar
auto_renew boolean No. Enable auto-renewal after transfer (default: true)

Richiesta di esempio

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/domains/101/transfer/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "auth_code": "Xy9Kl2Mn#4pQ",
    "auto_renew": true
  }'
import requests

domain_id = 101
url = f"https://admin.vps.org/api/v1/domains/{domain_id}/transfer/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "auth_code": "Xy9Kl2Mn#4pQ",
    "auto_renew": True
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const domainId = 101;
const response = await fetch(`https://admin.vps.org/api/v1/domains/${domainId}/transfer/`, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    auth_code: 'Xy9Kl2Mn#4pQ',
    auto_renew: true
  })
});

const transfer = await response.json();
console.log(transfer);

Esempio di risposta

{
  "id": 101,
  "domain_name": "example.com",
  "transfer_status": "pending",
  "transfer_initiated_at": "2026-01-16T16:30:00Z",
  "estimated_completion": "2026-01-23T16:30:00Z",
  "message": "Domain transfer initiated. You should receive a confirmation email from your current registrar. Transfer typically completes within 5-7 days.",
  "next_steps": [
    "Check email for transfer authorization request",
    "Approve transfer with current registrar",
    "Wait for transfer to complete (5-7 days)",
    "Domain will be automatically renewed for 1 year upon completion"
  ]
}

Codici di stato della risposta

200 Transfer initiated successfully
400 Bad Request - Invalid auth code or domain not eligible for transfer
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il dominio non esiste
402 Payment Required - Insufficient account balance for transfer fee
Requisiti di trasferimento:
  • Il dominio deve essere sbloccato all'attuale registrar
  • Il dominio deve avere almeno 60 giorni di vita
  • Codice EPP/Auth valido richiesto
  • L'email WHOIS deve essere accessibile per approvazione
  • Il trasferimento include il rinnovo di un anno (a pagamento)

Prezzi dei domini

TLD popolari

TLD Registrazione (1 anno) Rinnovo Trasferimento
.com $12.99 $12.99 $12.99
.net $14.99 $14.99 $14.99
.org $13.99 $13.99 $13.99
.io $39.99 $39.99 $39.99
.dev $14.99 $14.99 $14.99
.app $14.99 $14.99 $14.99
.co $24.99 $24.99 $24.99

Caratteristiche incluse

  • ✓ Protezione della privacy WHOIS gratuita
  • ✓ Gestione DNS gratuita
  • ✓ Inoltramento email gratuito
  • ✓ Inoltramento del dominio libero
  • ✓ Free Domain Locking
  • ✓ Supporto 24/7
  • ✓ Gestione del dominio semplice
  • ✓ Opzione di rinnovo automatico

Migliori pratiche di gestione del dominio

Sicurezza

Configurazione

Trasferimenti