VPS.org API

Documentation de l'API REST

API Domaines

Rechercher les noms de domaine disponibles, enregistrer et renouveler les domaines, gérer leurs serveurs de noms et le renouvellement automatique. Les domaines sont identifiés par leur uuid.

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

Liste de tous les domaines

Retourne les domaines enregistrés dans votre compte, 25 par page. La liste n'a pas de filtres.

Autorisation requise: domains:list

Exemple de requête

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

url = "https://admin.vps.org/api/v1/domains/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for domain in response.json()["results"]:
    print(domain["domain_name"], domain["status"], domain["expiration_date"])
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

Exemple de réponse

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
      "domain_name": "example.com",
      "status": "active",
      "registrar": "dynadot",
      "registration_date": "2026-01-15T10:30:00Z",
      "expiration_date": "2027-01-15T10:30:00Z",
      "days_until_expiration": 122,
      "is_expired": false,
      "needs_renewal_soon": false,
      "auto_renew": true,
      "renewal_period_years": 1,
      "registration_price": "12.64",
      "renewal_price": "12.64",
      "whois_privacy": true,
      "nameserver1": "ns1.vps.org",
      "nameserver2": "ns2.vps.org",
      "nameserver3": "ns3.vps.org",
      "nameserver4": null,
      "transfer_lock": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-09-01T08:12:40Z"
    }
  ]
}

Champs de réponse

Champ Taper Désignation des marchandises
uuid string Identification du domaine utilisé dans les autres paramètres du domaine
status string active, pending, expired, cancelled, transferred
registrar string Registre le domaine est tenu à
registration_date, expiration_date datetime Lorsque le domaine a été enregistré et qu'il expire. expiration_date peut être nul.
days_until_expiration integer | null Jours entiers jusqu'à expiration_date, négatif une fois expiré
is_expired, needs_renewal_soon boolean Indique si le domaine a expiré et s'il expire dans les 30 prochains jours
auto_renew, renewal_period_years boolean, integer Indique si le domaine se renouvelle automatiquement et pour combien d'années
registration_price, renewal_price string Prix en USD en tant que chaînes décimales
whois_privacy, transfer_lock boolean Paramètres de verrouillage de la confidentialité et du transfert de registre WHOIS
nameserver1 to nameserver4 string | null Les serveurs de noms de domaine
created_at, updated_at datetime Lorsque l'enregistrement a été créé et modifié en dernier (ISO 8601, UTC)
OBTENIR /api/v1/domains/{uuid}/

Obtenir les détails du domaine

Retourne un objet de domaine avec les champs ci-dessus.

Autorisation requise: domains:list

curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Codes d'état de réponse

200 Succès
404 Non trouvé, ou il appartient à un autre compte
POSTE /api/v1/domains/search/

Disponibilité du domaine de recherche

Vérifie si un nom est disponible sur environ 20 extensions populaires (com, net, org, io, dev, co, app, ai et plus), plus l'extension que vous avez tapée si elle n'est pas parmi eux. Les résultats commencent par la correspondance exacte, puis les noms disponibles, puis pris ceux.

Autorisation requise: domains:search

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
domain string Oui Un nom avec ou sans extension, par exemple mysite ou mysite.com (2 à 63 caractères)

Exemple de requête

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/domains/search/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.com"}'
import requests

url = "https://admin.vps.org/api/v1/domains/search/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"domain": "mysite.com"})
for result in response.json()["results"]:
    if result["available"]:
        print(result["domain"], result["registration_price"], result["renewal_price"])

Exemple de réponse

{
  "results": [
    {
      "domain": "mysite.com",
      "available": false,
      "price": null,
      "registration_price": null,
      "renewal_price": null,
      "tld": "com",
      "is_exact_match": true
    },
    {
      "domain": "mysite.dev",
      "available": true,
      "price": 17.24,
      "registration_price": 17.24,
      "renewal_price": 17.24,
      "tld": "dev",
      "is_exact_match": false
    }
  ],
  "base_domain": "mysite",
  "search_count": 20
}

Les prix sont en USD pour un an et sont nuls pour les noms qui ne sont pas disponibles. Les prix indiqués sont des exemples.

Codes d'état de réponse

200 Succès
400 Domaine manquant, ou il contient des caractères autres que des lettres, des chiffres et des tirets
500 La recherche du registraire a échoué.
POSTE /api/v1/domains/register/

Enregistrer un nouveau domaine

Enregistre un domaine et charge votre mode de paiement enregistré. La disponibilité et le prix sont vérifiés avec le registraire juste avant la charge. Les coordonnées du déclarant sont prises de votre profil de compte. Si le registraire refuse l'enregistrement après la charge, le paiement est remboursé.

Autorisation requise: domains:register (accordées par domaines:*)

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
domain string Oui Le nom de domaine complet incluant son extension, par exemple.com
years integer Numéro Période d'enregistrement, 1 à 10 (par défaut 1) Le prix est le prix annuel multiplié par des années..ai nécessite au moins 2 ans; une valeur plus faible renvoie 400.
curl -X POST "https://admin.vps.org/api/v1/domains/register/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.dev", "years": 1}'

Exemple de réponse

{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "domain_name": "mysite.dev",
  "message": "mysite.dev registered successfully!"
}

Codes d'état de réponse

201 Domaine enregistré
400 Domaine non valide, domaine non disponible, prix invérifiable, mode de paiement dépassé, ou le paiement échoué
402 Aucun mode de paiement au dossier, ni factures impayées
500 Le paiement n'a pas pu être traité, ou le registraire a rejeté l'enregistrement après paiement. Dans le second cas, le message d'erreur indique si le remboursement a été effectué.
POSTE /api/v1/domains/{uuid}/renew/

Renouveler un domaine

Renouvelez le domaine et facturez son prix de renouvellement pour chaque année à votre méthode de paiement sauvegardé.

Autorisation requise: domains:renew

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
years integer Numéro Années à ajouter, 1 à 10 (par défaut 1)
curl -X POST "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"years": 1}'
{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "new_expiration": "2028-01-15T10:30:00+00:00",
  "message": "example.com renewed successfully for 1 year(s)!"
}

Codes d'état de réponse

200 Domaine renouvelé
400 Années non valides, aucun prix de renouvellement pour le domaine, aucun mode de paiement utilisable, ou le paiement échoué
404 Non trouvé, ou il appartient à un autre compte
500 Le paiement n'a pas pu être traité, ou le paiement a été effectué mais le renouvellement du registraire a échoué.
PUT /api/v1/domains/{uuid}/nameservers/

Mettre à jour les serveurs de noms

Définit les serveurs de noms de domaine au registrar et renvoie l'objet de domaine mis à jour. Pour gérer DNS avec l'API DNS, utilisez ns1.vps.org, ns2.vps.org et ns3.vps.org et créez une zone pour le domaine.

Autorisation requise: domains:update

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
nameserver1 string Oui Nom principal du serveur de noms d'hôte
nameserver2, nameserver3, nameserver4 string Numéro Noms d'hôte supplémentaires pour serveur de noms
curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/nameservers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameserver1": "ns1.vps.org", "nameserver2": "ns2.vps.org", "nameserver3": "ns3.vps.org"}'

Codes d'état de réponse

200 Serveurs de noms mis à jour; le corps est l'objet du domaine
400 serveur de noms1 manquant
404 Non trouvé, ou il appartient à un autre compte
500 La mise à jour a échoué; le corps a des champs d'erreur et de message
PUT /api/v1/domains/{uuid}/auto-renew/

Activer ou désactiver le renouvellement automatique

Définit auto_renouveller et retourne l'objet de domaine mis à jour. Envoyer activé en tant que booléen JSON : toute chaîne non vide, y compris la chaîne false, allume le renouvellement automatique.

Autorisation requise: domains:update

curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/auto-renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'

Codes d'état de réponse

200 Configuration sauvegardée; le corps est l'objet du domaine
400 désactivé manquant
404 Non trouvé, ou il appartient à un autre compte

Annexe