WEDOS REST API est encore en développement. L’accès et les fonctionnalités peuvent changer sans préavis.
Cet article couvre partiellement l’endpoint Domains de WEDOS REST API. Les contacts de domaine et NSSETs font l’objet d’articles distincts. Pour WEDOS API (WAPI), voir WAPI – Domaines WEDOS.
Pour obtenir des informations de base sur WEDOS REST API, consultez le Manuel WEDOS REST API.
Dans cet article, vous trouverez les informations suivantes :
- Accès à l’endpoint DNS
- Détails de l’endpoint DNS :
- GET /domains
- GET /domains/{name}
- GET /domains/info
- GET /domains/check
- GET /domains/{name}/transfer/check
- GET /domains/tld-periods
- POST /domains/create
- POST /domains/{name}/renew
- POST /domains/{name}/transfer
- POST /domains/{name}/auth-info/send
- PATCH /domains/{name}/nsset/update
- PATCH /domains/{name}/keyset/update
- Remarques
Domains Endpoint Access
Cette API couvre la gestion des domaines sous le préfixe /v2/domains de l’URL. Les contacts de domaine et les NSSETs sont documentés dans des articles distincts.
URL de base et authentification
The base URL for the domains endpoints is: https://api.wedos.com/v2
Toute la communication passe par HTTPS et l’authentification utilise uniquement OAuth2 : envoyez l’en-tête Authorization: Bearer <TOKEN> avec chaque requête. Le token doit disposer du scope domains (un scope unique partagé par les domaines, les contacts et les NSSETs). Sans authentification valide, l’API renvoie une erreur.
Les requêtes contenant des données (POST/PATCH) sont envoyées au format JSON (Content-Type: application/json).
Vous pouvez ajouter le paramètre example=1 à n’importe quel endpoint (par ex. ?example=1, ou &example=1 si l’URL contient déjà d’autres paramètres de requête). Au lieu d’exécuter la requête, l’API renvoie alors un exemple de commande curl pour cet appel. Une authentification valide est requise même dans ce mode.
Aperçu des endpoints
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /domains (de manière équivalente /domains/list) | Liste des domaines du client |
| GET | /domains/{name} | Détail d’un domaine |
| GET | /domains/info | Détail d’un ou de plusieurs domaines |
| GET | /domains/check | Vérifier la disponibilité d’un ou de plusieurs domaines à l’enregistrement |
| GET | /domains/{name}/transfer/check | Vérifier si un domaine peut être transféré |
| GET | /domains/tld-periods | Vérifier la validité d’une période d’enregistrement pour un TLD |
| POST | /domains/create | Enregistrer un nouveau domaine |
| POST | /domains/{name}/renew | Renouveler l’enregistrement d’un domaine |
| POST | /domains/{name}/transfer | Transférer un domaine depuis un autre bureau d’enregistrement |
| POST | /domains/{name}/auth-info/send | Envoyer le code d’autorisation au contact propriétaire du domaine |
| PATCH | /domains/{name}/nsset/update | Modifier les serveurs DNS / le NSSET du domaine |
| PATCH | /domains/{name}/keyset/update | Définir le DNSSEC (KEYSET) du domaine |
Format de la réponse
La réponse de l’API est toujours un objet JSON contenant les clés code (code de retour), msg (description textuelle), request_id (identifiant de la requête) et, le cas échéant, data (données renvoyées en cas de succès).
Outre les codes de retour spécifiques (métier) indiqués ci-dessous pour chaque appel, tous les endpoints peuvent également renvoyer ces codes généraux de la couche REST :
1000– la requête a été exécutée avec succès2000– authentification (token Bearer OAuth2) manquante ou invalide2004– taille maximale autorisée de la requête dépassée (URL ou corps de la requête)4000– méthode ou action d’API inconnue ou non prise en charge4001– échec de la validation des données d’entrée4005– aucun exemple défini pour la forme d’URL actuelle avecexample=1activé6000– erreur interne lors de l’initialisation du traitement de la requête
GET /domains
Renvoie la liste de tous les domaines du client connecté, éventuellement filtrée par statut. Le chemin équivalent GET /domains/list fait la même chose (aucun changement de comportement, simplement une autre forme d’URL).
Paramètres :
status– facultatif, query, string – renvoie uniquement les domaines ayant le statut indiqué ; si le paramètre n’est pas précisé, les domaines de tous les statuts sont renvoyés
Codes de retour :
1000– OK2101– format invalide du paramètrestatus2242– statut de domaine inconnu5001– personne n’est connecté
Données de réponse :
domain– tableau des domaines du client ; chaque élément contient :name– nom de domainestatus– statut du domaine
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains?status=active'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d4",
"data": {
"domain": [
{ "name": "domain1.tld", "status": "active" },
{ "name": "domain2.tld", "status": "active" }
]
}
}
GET /domains/{name}
Renvoie des informations détaillées sur un domaine à partir de son nom indiqué dans le chemin de l’URL.
Paramètres :
name– obligatoire, path – nom de domaine
Codes de retour :
1000– OK2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide3216– erreur lors du chargement des informations du domaine3222– échec du chargement de l’objet domaine3223– le domaine se trouve dans un autre compte client4205– erreur de connexion au registre
Données de réponse :
domain– objet contenant les informations du domaine :name– nom de domainestatus– statut du domaine auprès du registrereg_owner,reg_creator,reg_update– identifiants du bureau d’enregistrement (le nôtre / un autre)setup_date,expiration,updated_date,transfer_date– dates d’enregistrement, d’expiration et de mise à jourowner_c,admin_c,tech_c– identifiants des contacts associés (selon le registre)dns.server– tableau des serveurs DNS configurés (name,addr_ipv4,addr_ipv6)dnssec_keys– clés DNSSEC configurées (le cas échéant)own_*(own_name,own_company,own_email,own_addr_street, …) – instantané des coordonnées du contact propriétaire au moment de la requête
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/domena1.tld'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d5",
"data": {
"domain": {
"name": "domena1.tld",
"status": "active",
"reg_owner": "WEDOS",
"setup_date": "2024-01-10",
"expiration": "2027-01-10",
"owner_c": "CONTACT-1",
"dns": {
"server": [
{ "name": "ns.wedos.com", "addr_ipv4": null, "addr_ipv6": null },
{ "name": "ns.wedos.org", "addr_ipv4": null, "addr_ipv6": null }
]
},
"own_name": "Esmeralda Excavadora",
"own_email": "esmeralda@wedos.com"
}
}
}
GET /domains/info
Fonctionnellement identique à GET /domains/{name}, mais permet de demander des informations sur plusieurs domaines à la fois (noms séparés par des virgules) via un paramètre de requête.
Paramètres :
name– obligatoire, query, string – nom de domaine, ou plusieurs noms séparés par des virgules (sans espaces)
Codes de retour :
1000– OK (pour les requêtes portant sur plusieurs domaines, l’API renvoie toujours ce code ; le résultat de chaque domaine se trouve dans son propre nœud, voir ci-dessous)2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide3216,3222,3223,4205– voir GET /domains/{name}
Données de réponse :
- Pour un seul domaine :
domain– un objet ayant la même structure que GET /domains/{name} - Pour plusieurs domaines :
domain– un tableau d’objets, chacun contenant en pluscode(le code de retour du traitement pour ce domaine) etresult(sa description textuelle). Dans une requête groupée, l’état du traitement est suivi domaine par domaine, et non au niveau de la réponse entière.
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/info?name=domain1.tld,domain2.tld'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d6",
"data": {
"domain": [
{ "name": "domain1.tld", "status": "active", "expiration": "2027-01-10" },
{ "name": "domain2.tld", "code": 3223, "result": "Domain belongs to another account" }
]
}
}
GET /domains/check
Vérifie si un ou plusieurs domaines sont disponibles à l’enregistrement (chez nous ou, de manière générale, selon la disponibilité auprès du registre).
Paramètres :
name– obligatoire, query, string – nom de domaine, ou plusieurs noms séparés par des virgules
Codes de retour :
1000– le domaine est disponible à l’enregistrement (pour les requêtes portant sur plusieurs domaines, l’API renvoie toujours ce code ; le résultat de chaque domaine se trouve dans son propre nœud, voir ci-dessous)2100– paramètrenamemanquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide2250– limite de vérifications dépassée (bloqué)2251– échec de la vérification de la limite3201– le domaine est déjà enregistré3203– le domaine n’est pas disponible3204– le domaine est en quarantaine3205– le domaine est réservé3206– le domaine est bloqué (la raison – premium, marque déposée, réservation ou nom court – est indiquée dans la description textuelle)4201– échec de la vérification – erreur de connexion au registre- autres codes de statut spécifiques à la vérification de disponibilité
Données de réponse :
- Pour un seul domaine :
name– le nom de domaine interrogé (le résultat de la vérification se trouve directement dans les champs de la réponsecode/msg) - Pour plusieurs domaines : un tableau d’objets, chacun avec
name,code(le résultat de la vérification pour ce domaine) etresult(sa description textuelle)
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/check?name=domain1.tld,domain2.tld'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d7",
"data": [
{ "name": "domain1.tld", "code": 3201, "result": "Domain is already registered" },
{ "name": "domain2.tld", "code": 1000, "result": "OK" }
]
}
GET /domains/{name}/transfer/check
Vérifie si le domaine peut nous être transféré depuis un autre bureau d’enregistrement, sans qu’il soit nécessaire de connaître le code d’autorisation.
Paramètres :
name– obligatoire, path – nom de domaine
Codes de retour :
1000– le domaine est disponible pour le transfert2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide3207– le domaine est déjà enregistré chez nous3208– transfert impossible, l’expiration est trop proche3266– transfert impossible, le domaine a expiré4206– erreur de connexion au registre
Données de réponse : Aucune – le résultat est transmis directement dans les champs de la réponse code/msg.
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/domain1.tld/transfer/check'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d8"
}
GET /domains/tld-periods
Vérifie si un domaine sous le TLD indiqué peut être enregistré ou renouvelé pour le nombre d’années indiqué.
Paramètres :
tld– obligatoire, query, string – TLD (sans le point, par ex.cz)period– obligatoire, query, integer – période demandée en années
Codes de retour :
1000– OK, la période est valide pour ce TLD2100– paramètre d’entrée manquant2101– paramètres d’entrée invalides2203– la période n’est pas valide pour ce TLD
Données de réponse : Aucune – le résultat est transmis directement dans les champs de la réponse code/msg.
Exemple :
curl -X GET -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/tld-periods?tld=eu&period=1'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3d9"
}
POST /domains/create
Enregistre un nouveau domaine. Vous devez indiquer exactement un des paramètres dns ou nsset (pour définir le DNS/NSSET du domaine), jamais les deux.
Paramètres :
name– obligatoire, string – nom du domaine à enregistrerperiod– obligatoire, integer – durée d’enregistrement en annéesowner_c– obligatoire, string – identifiant (handle) du contact propriétaire du domaineadmin_c– facultatif, string – identifiant du contact administratifdns– facultatif, array – tableau de serveurs DNS sous la forme[{"name":"ns1.example.com","addr_ipv4":"1.2.3.4","addr_ipv6":"..."},...](addr_ipv4/addr_ipv6sont facultatifs pour chaque serveur) ; mutuellement exclusif avecnssetnsset– facultatif, string – handle d’un NSSET existant à affecter au domaine (uniquement pour les registres qui prennent en charge les NSSETs, par ex. .cz) ; mutuellement exclusif avecdnsrules– facultatif, array – confirmation de l’acceptation des règles d’enregistrement (requis uniquement pour les TLD qui l’exigent)
Codes de retour :
1000– OK, domaine enregistré1001– requête acceptée, elle sera traitée de manière asynchrone2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide2203– période invalide2204– paramètreowner_cmanquant2207– format invalide deowner_c2208– format invalide deadmin_c2209– erreur de syntaxe du NSSET2210– erreur de syntaxe du serveur DNS2211– trop de serveurs DNS2245– acceptation des conditions d’enregistrement non donnée3001– devise invalide3002– crédit insuffisant3211– contactowner_cindisponible3212– contactadmin_cindisponible3221– échec de la création du domaine4002– échec du débit du crédit sur le compte- autres codes d’erreur spécifiques à l’enregistrement de domaine
Données de réponse :
num– numéro de commandeexpiration– date d’expiration du domainecredit– solde du crédit après paiement
Exemple :
curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
'https://api.wedos.com/v2/domains/create' \
--data '{
"name": "domain1.tld",
"period": 1,
"owner_c": "CONTACT-1",
"dns": [
{ "name": "ns.wedos.com" },
{ "name": "ns.wedos.org" }
]
}'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e1",
"data": {
"num": "202610010001",
"expiration": "2027-10-01",
"credit": "1234.50"
}
}
POST /domains/{name}/renew
Renouvelle l’enregistrement du domaine pour le nombre d’années indiqué. Ce n’est pas possible pour les domaines .eu – ils se renouvellent automatiquement.
Paramètres :
name– obligatoire, path – nom de domaineperiod– obligatoire, integer – nombre d’années de renouvellement
Codes de retour :
1000– OK1001– requête acceptée, elle sera traitée de manière asynchrone2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2203– période invalide2269– une nouvelle période impayée existe déjà3001– devise invalide3002– crédit insuffisant3222– échec de l’ouverture du domaine3223– le domaine n’appartient pas à ce compte client3224– échec du renouvellement du domaine3265– le domaine ne peut pas être renouvelé maintenant – le nombre de jours avant l’expiration dépasse la limite autorisée4208– échec du renouvellement – erreur de connexion
Données de réponse :
num– numéro de commandeexpiration– nouvelle date d’expiration du domainecredit– solde du crédit après paiement
Exemple :
curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
'https://api.wedos.com/v2/domains/domain1.tld/renew' \
--data '{"period": 1}'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e2",
"data": {
"num": "202610010002",
"expiration": "2028-10-01",
"credit": "1134.50"
}
}
POST /domains/{name}/transfer
Transfère vers nous un domaine depuis un autre bureau d’enregistrement. Le paramètre dns fonctionne comme suit : s’il n’est pas inclus du tout dans la requête, la configuration actuelle des serveurs DNS du domaine est reprise automatiquement ; false ou un tableau vide définit les serveurs WEDOS par défaut ; un tableau d’objets définit des serveurs précis.
Paramètres :
name– obligatoire, path – nom de domaineauth_info– obligatoire, string – code d’autorisation du domaine (code de transfert)owner_c– facultatif, string – identifiant du contact propriétaire (requis uniquement pour les TLD dont le registre l’exige)dns– facultatif, array – tableau de serveurs DNS sous la même forme que dans POST /domains/createrules– facultatif, array – confirmation de l’acceptation des règles (uniquement pour les TLD qui l’exigent)
Codes de retour :
1000– transfert effectué avec succès1001– requête acceptée, elle sera exécutée de manière asynchrone2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide2204– identifiant du contact propriétaire manquant2207– identifiant du contact propriétaire invalide2210– format de serveur DNS invalide2215–auth_infomanquant, alors qu’il est obligatoire pour ce TLD3001– devise invalide3207– le domaine est déjà enregistré chez nous3208– transfert impossible, l’expiration est trop proche3219– une demande de transfert est déjà en attente pour ce domaine3220– le domaine figure déjà dans nos enregistrements3226– échec du transfert du domaine3227– erreur d’autorisation auprès du registre de domaines3266– transfert impossible, le domaine a expiré- autres codes d’erreur spécifiques au transfert de domaine
Données de réponse :
num– numéro de commandeexpiration– date d’expiration du domainecredit– solde du crédit après paiement
Exemple :
curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
'https://api.wedos.com/v2/domains/domain1.tld/transfer' \
--data '{"auth_info": "AUTHCODE123", "owner_c": "CONTACT-1"}'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e3",
"data": {
"num": "202610010003",
"expiration": "2027-10-01",
"credit": "1134.50"
}
}
POST /domains/{name}/auth-info/send
Envoie le code d’autorisation du domaine (code de transfert) à l’adresse e-mail du contact propriétaire du domaine.
Paramètres :
name– obligatoire, path – nom de domaine
Codes de retour :
1000– OK, code d’autorisation envoyé à l’adresse e-mail du propriétaire du domaine2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide2243– l’envoi du code d’autorisation n’est pas autorisé pour ce domaine3209– échec de l’envoi du code d’autorisation3210– échec de l’envoi – le domaine est indisponible3222– échec du chargement du domaine3223– le domaine n’appartient pas à ce compte client4214– échec de l’envoi – erreur de connexion
Données de réponse : Aucune – le résultat est transmis directement dans les champs de la réponse code/msg.
Exemple :
curl -X POST -H 'Authorization: Bearer <TOKEN>' \
'https://api.wedos.com/v2/domains/domain1.cz/auth-info/send'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e4"
}
PATCH /domains/{name}/nsset/update
Définit de nouveaux serveurs DNS pour le domaine, ou le relie à un NSSET existant. Vous devez indiquer exactement un des paramètres dns ou nsset, jamais les deux.
Paramètres :
name– obligatoire, path – nom de domainedns– facultatif, array – tableau de serveurs DNS sous la même forme que dans POST /domains/create ; mutuellement exclusif avecnssetnsset– facultatif, string – handle d’un NSSET existant ; mutuellement exclusif avecdns
Codes de retour :
1000– OK1001– OK, exécuté de manière asynchrone2100– paramètre obligatoire manquant (nidnsninssetn’est indiqué)2101– paramètres invalides (à la foisdnsetnssetsont indiqués, ou format invalide)2201– TLD non pris en charge2202– nom de domaine invalide2209– erreur de syntaxe du NSSET2210– erreur de syntaxe du serveur DNS2211– trop de serveurs DNS3214– NSSET indisponible3222– échec de l’ouverture du domaine3223– le domaine appartient à un autre compte client3225– échec de la mise à jour DNS/NSSET3315– des serveurs NS identiques sont déjà définis pour le domaine4204– erreur de connexion (NSSET)4210– erreur de connexion (DNS)
Données de réponse : Aucune – le résultat est transmis directement dans les champs de la réponse code/msg.
Exemple :
curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
'https://api.wedos.com/v2/domains/domain1.tld/nsset/update' \
--data '{
"dns": [
{ "name": "ns.wedos.com" },
{ "name": "ns.wedos.org" }
]
}'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e5"
}
PATCH /domains/{name}/keyset/update
Définit, désactive ou bascule le DNSSEC du domaine.
Paramètres :
name– obligatoire, path – nom de domainekeyset– obligatoire – configuration DNSSEC :0– DNSSEC désactivé1– DNSSEC géré par WEDOS- toute autre chaîne – handle du KEYSET propre au client
Codes de retour :
1000– OK2100– paramètre obligatoire manquant2101– format de paramètre invalide2201– TLD non pris en charge2202– format de nom de domaine invalide- autres codes d’erreur spécifiques à la configuration DNSSEC
Données de réponse : Aucune – le résultat est transmis directement dans les champs de la réponse code/msg.
Exemple :
curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
'https://api.wedos.com/v2/domains/domain1.tld/keyset/update' \
--data '{"keyset": 1}'
{
"code": 1000,
"msg": "OK",
"request_id": "a1b2c3e6"
}
Remarques
- Les endpoints sous
/v2/domains,/v2/contactset/v2/nssetssont gérés par une seule classe serveur commune et partagent tous le même scope OAuth2,domains. Du point de vue du client, il s’agit de trois API logiquement distinctes mais administrativement unifiées. - Le paramètre
dns(pour les domaines et les NSSETs) est fourni sous la forme d’un simple tableau d’objets{"name": "...", "addr_ipv4": "...", "addr_ipv6": "..."}. En interne, il est converti au format hérité utilisé par les anciennes versions de l’API avant l’appel WAPI. Les élémentsaddr_ipv4etaddr_ipv6sont facultatifs pour chaque serveur. - Pour POST /domains/create, PATCH /domains/{name}/nsset/update et POST /domains/{name}/transfer, exactement un des paramètres
dns/nssetdoit être indiqué. Pour le transfert, en plus : sidnsn’est pas inclus du tout dans la requête, l’API détecte et conserve automatiquement la configuration actuelle des serveurs DNS du domaine. - Pour les requêtes portant sur plusieurs domaines (GET /domains/info, GET /domains/check avec plusieurs noms séparés par des virgules), le code de retour de la réponse entière est toujours
1000. Lisez le résultat du traitement de chaque domaine dans les champscode/resultde son élément dansdata. - Dans GET /domains/{name}, vous pouvez en théorie placer également plusieurs noms séparés par des virgules directement dans le segment de chemin (l’API transmet cette valeur à la même commande WAPI que GET /domains/info). En pratique, utilisez GET /domains/info pour les requêtes portant sur plusieurs domaines, car un seul domaine dans le chemin est plus lisible.
- Cette documentation ne couvre volontairement pas les endpoints sous
/v2/domains/{name}/miniweb/...(le service complémentaire Miniweb). Ils sont gérés par une classe distincte et seront documentés séparément.
