Busque nombres de dominio disponibles, registre y renueve dominios, y administre sus servidores de nombres y auto-renovación. Los dominios son identificados por su uuid.
Devuelve los dominios registrados en su cuenta, 25 por página. La lista no tiene filtros.
Permiso requerido: domains:list
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);
{
"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"
}
]
}
| Campo | Tipo | Descripción |
|---|---|---|
uuid |
string | Identificador de dominio utilizado en los otros extremos de dominio |
status |
string | active, pending, expired, cancelled, transferred |
registrar |
string | Registrador el dominio se mantiene en |
registration_date, expiration_date |
datetime | Cuando el dominio fue registrado y cuando expira. expire_date puede ser nulo. |
days_until_expiration |
integer | null | Días enteros hasta la fecha de vencimiento, negativo una vez expirado |
is_expired, needs_renewal_soon |
boolean | Si el dominio ha caducado y si expira en los próximos 30 días |
auto_renew, renewal_period_years |
boolean, integer | Si el dominio se renueva automáticamente y por cuántos años |
registration_price, renewal_price |
string | Precios en USD como cadenas decimales |
whois_privacy, transfer_lock |
boolean | Ajustes de bloqueo de privacidad y transferencia de registrador WHOIS |
nameserver1 to nameserver4 |
string | null | Los servidores de nombres del dominio |
created_at, updated_at |
datetime | Cuando se creó el registro y se cambió por última vez (ISO 8601, UTC) |
Devuelve un objeto de dominio con los campos anteriores.
Permiso requerido: domains:list
curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Éxito |
| 404 | No encontrado, o pertenece a otra cuenta |
Comprueba si un nombre está disponible en unas 20 extensiones populares (com, net, org, io, dev, co, app, ai y más), además de la extensión que escribiste si no está entre ellas. Los resultados comienzan con la coincidencia exacta, luego los nombres disponibles, y luego los tomados.
Permiso requerido: domains:search
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
domain |
string | Sí | Un nombre con o sin extensión, por ejemplo mysite o mysite.com (2 a 63 caracteres) |
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"])
{
"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
}
Los precios son números en USD por un año y son nulos para los nombres que no están disponibles. Los precios mostrados son ilustrativos.
| 200 | Éxito |
| 400 | Dominio que falta, o contiene caracteres distintos de letras, dígitos y guiones |
| 500 | La búsqueda del registrador falló. |
Registra un dominio y cobra su método de pago guardado. La disponibilidad y el precio se comprueban con el registrador de nuevo antes del cargo. Los datos de contacto del registrador se toman de su perfil de cuenta. Si el registrador rechaza el registro después del cargo, el pago se reembolsa.
Permiso requerido: domains:register (concedido por dominios:*)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
domain |
string | Sí | El nombre de dominio completo incluyendo su extensión, por ejemplo.com |
years |
integer | No | Periodo de registro, de 1 a 10 (por defecto 1). El precio es el precio anual multiplicado por los años. .ai requiere al menos 2 años; un valor menor devuelve 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}'
{
"success": true,
"domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
"domain_name": "mysite.dev",
"message": "mysite.dev registered successfully!"
}
| 201 | Dominio registrado |
| 400 | dominio no válido, dominio ya no disponible, el precio no se pudo verificar, método de pago obsoleto, o el pago falló |
| 402 | No hay ningún método de pago en el archivo, o facturas impagadas |
| 500 | El pago no pudo ser procesado, o el registrador rechazó el registro después del pago. En el segundo caso el mensaje de error dice si el reembolso pasó. |
Renueva el dominio y cobra su renewal_price por cada año a su método de pago guardado.
Permiso requerido: domains:renew
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
years |
integer | No | Años que añadir, 1 a 10 (predeterminado 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)!"
}
| 200 | Dominio renovado |
| 400 | Años inválidos, no hay precio de renovación para el dominio, no se utiliza el método de pago, o el pago falló |
| 404 | No encontrado, o pertenece a otra cuenta |
| 500 | El pago no pudo ser procesado, o el pago pasó pero la renovación del registrador falló. |
Establece los servidores de nombres del dominio en el registrador y devuelve el objeto de dominio actualizado. Para administrar DNS con la API de DNS, use ns1.vps.org, ns2.vps.org y ns3.vps.org y cree una zona para el dominio.
Permiso requerido: domains:update
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
nameserver1 |
string | Sí | Nombre principal servidor de hostname |
nameserver2, nameserver3, nameserver4 |
string | No | Nombres de hosts de servidor adicionales |
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"}'
| 200 | Se actualizan los servidores de nombres; el cuerpo es el objeto de dominio |
| 400 | nameserver1 falta |
| 404 | No encontrado, o pertenece a otra cuenta |
| 500 | La actualización falló; el cuerpo tiene campos de error y mensajes |
Establece auto_renovar y devuelve el objeto de dominio actualizado. Enviar habilitado como booleano de JSON: cualquier cadena no vacía, incluida la falsa cadena, activa automáticamente la renovación.
Permiso requerido: 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}'
| 200 | Configuración guardada; el cuerpo es el objeto de dominio |
| 400 | activada falta |
| 404 | No encontrado, o pertenece a otra cuenta |