VPS.org API

Documentation de l'API REST

API Domaines

Gérez l'enregistrement, le renouvellement et la configuration des domaines par programmation.

Points d'extrémité 6 endpoints
Chemin de base /api/v1/domains
OBTENIR /api/v1/domains/

Liste de tous les domaines

Récupérer une liste de tous les domaines enregistrés sous votre compte.

Paramètres de requête

Paramètre Taper Requis Désignation des marchandises
status string Numéro Filter by status: active, pending, expired, locked
search string Numéro Rechercher des domaines par nom

Exemple de requête

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

Exemple de réponse

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

Codes d'état de réponse

200 Liste des domaines récupérés avec succès
401 Non autorisé - Jeton d'authentification invalide ou manquant
POSTE /api/v1/domains/

Enregistrer un nouveau domaine

Enregistrer un nouveau nom de domaine. La disponibilité du domaine doit être vérifiée avant l'enregistrement.

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
domain_name string Oui Domain name to register (e.g., "example.com")
years integer Numéro Registration period in years (1-10, default: 1)
auto_renew boolean Numéro Enable automatic renewal (default: true)
privacy_protection boolean Numéro Enable WHOIS privacy protection (default: true)
nameservers array Numéro Custom nameservers (default: VPS.org nameservers)

Exemple de requête

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

Exemple de réponse

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

Codes d'état de réponse

201 Domain registration initiated successfully
400 Bad Request - Invalid domain name or domain already registered
401 Non autorisé - Jeton d'authentification invalide ou manquant
402 Payment Required - Insufficient account balance
Remarque: 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.
OBTENIR /api/v1/domains/{domain_id}/

Obtenir les détails du domaine

Récupérer des informations détaillées sur un domaine spécifique.

Paramètres de chemin

Paramètre Taper Requis Désignation des marchandises
domain_id integer Oui Unique domain ID

Exemple de requête

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

Exemple de réponse

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

Codes d'état de réponse

200 Successfully retrieved domain details
401 Non autorisé - Jeton d'authentification invalide ou manquant
404 Introuvable - Le domaine n'existe pas
METTRE /api/v1/domains/{domain_id}/

Mettre à jour les paramètres du domaine

Mettre à jour la configuration du domaine comme le renouvellement automatique, les serveurs de noms et les paramètres de confidentialité.

Paramètres de chemin

Paramètre Taper Requis Désignation des marchandises
domain_id integer Oui Unique domain ID

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
auto_renew boolean Numéro Enable or disable automatic renewal
privacy_protection boolean Numéro Enable or disable WHOIS privacy
nameservers array Numéro Update nameservers (2-4 nameservers required)
locked boolean Numéro Lock or unlock domain to prevent transfers

Exemple de requête

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

Exemple de réponse

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

Codes d'état de réponse

200 Domain updated successfully
400 Bad Request - Invalid parameters
401 Non autorisé - Jeton d'authentification invalide ou manquant
404 Introuvable - Le domaine n'existe pas
SUPPRIMER /api/v1/domains/{domain_id}/

Supprimer le domaine

Supprimez un domaine de votre compte. Ceci n'annule pas l'enregistrement de domaine - il ne le supprime que de votre gestion de compte VPS.org.

Paramètres de chemin

Paramètre Taper Requis Désignation des marchandises
domain_id integer Oui Unique domain ID

Exemple de requête

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

Codes d'état de réponse

204 Domain removed from account successfully
401 Non autorisé - Jeton d'authentification invalide ou manquant
404 Introuvable - Le domaine n'existe pas
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.
POSTE /api/v1/domains/{domain_id}/transfer/

Domaine de transfert

Lancer un transfert de domaine à VPS.org d'un autre registraire.

Paramètres de chemin

Paramètre Taper Requis Désignation des marchandises
domain_id integer Oui Unique domain ID

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
auth_code string Oui EPP/Authorization code from current registrar
auto_renew boolean Numéro Enable auto-renewal after transfer (default: true)

Exemple de requête

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

Exemple de réponse

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

Codes d'état de réponse

200 Transfer initiated successfully
400 Bad Request - Invalid auth code or domain not eligible for transfer
401 Non autorisé - Jeton d'authentification invalide ou manquant
404 Introuvable - Le domaine n'existe pas
402 Payment Required - Insufficient account balance for transfer fee
Exigences en matière de transfert :
  • Domain doit être déverrouillé au registrar actuel
  • Domain doit avoir au moins 60 jours
  • Code PPE/Auth valide requis
  • WHOIS e-mail doit être accessible pour l'approbation
  • Le transfert comprend le renouvellement d'un an (frais s'applique)

Prix des domaines

TLD populaires

TLD Inscription (1 an) Renouvellement Transfert
.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

Fonctionnalités incluses

  • ✓ Protection gratuite de la vie privée WHOIS
  • ✓ Gestion DNS gratuite
  • ✓ Transmission gratuite des courriels
  • ✓ Transmission libre des domaines
  • ✓ Verrouillage du domaine libre
  • ✓ Soutien 24/7
  • ✓ Gestion de domaine facile
  • ✓ Option de renouvellement automatique

Meilleures pratiques en matière de gestion de domaine

Sécurité

Configuration

Transferts