VPS.org API

Documentação da API REST

API de domínios

Procurar nomes de domínio disponíveis, registrar e renovar domínios, e gerenciar seus servidores de nomes e renovação automática. Os domínios são identificados por seu uuid.

Pontos finais 7
Caminho base /api/v1/domains
PEGAR /api/v1/domains/

Listar todos os domínios

Devolve os domínios registrados na sua conta, 25 por página. A lista não tem filtros.

Permissão requerida: domains:list

Exemplo de solicitação

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

Exemplo de resposta

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

Campos de resposta

Campo Tipo Descrição
uuid string Identificador de domínio utilizado nos outros endpoints de domínio
status string active, pending, expired, cancelled, transferred
registrar string Registrador do domínio em
registration_date, expiration_date datetime Quando o domínio foi registrado e quando expira. Expiration_date pode ser nulo.
days_until_expiration integer | null Dias inteiros até data_ de_ expiração, negativo uma vez caducado
is_expired, needs_renewal_soon boolean Se o domínio expirou e se expira nos próximos 30 dias
auto_renew, renewal_period_years boolean, integer Se o domínio se renova automaticamente, e por quantos anos
registration_price, renewal_price string Preços em USD como cordas decimais
whois_privacy, transfer_lock boolean Configurações de bloqueio de transferência de arquivos e de registros WHOIS
nameserver1 to nameserver4 string | null Servidores de nomes do domínio
created_at, updated_at datetime Quando o registro foi criado e alterado pela última vez (ISO 8601, UTC)
PEGAR /api/v1/domains/{uuid}/

Obter Detalhes do Domínio

Devolve um objeto de domínio com os campos acima.

Permissão requerida: domains:list

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

Códigos de status de resposta

200 Sucesso
404 Não encontrado, ou pertence a outra conta
POST /api/v1/domains/search/

Procurar Disponibilidade do Domínio

Verifica se um nome está disponível em cerca de 20 extensões populares (com, net, org, io, dev, co, app, ai e mais), mais a extensão que você digitou se não estiver entre elas. Os resultados começam com a correspondência exata, então nomes disponíveis, e depois tomou aqueles.

Permissão requerida: domains:search

Parâmetros do corpo da requisição

Parâmetro Tipo Obrigatório Descrição
domain string Sim Um nome com ou sem extensão, por exemplo mysite ou mysite.com (2 a 63 caracteres)

Exemplo de solicitação

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"])

Exemplo de resposta

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

Os preços são números em USD por um ano e são nulos para nomes que não estão disponíveis. Os preços mostrados são ilustrativos.

Códigos de status de resposta

200 Sucesso
400 Dominio faltante, ou ele contém caracteres que não sejam letras, dígitos e ínfim
500 O registro de busca falhou. Volte mais tarde.
POST /api/v1/domains/register/

Registre um novo domínio

Registra um domínio e cobra o seu método de pagamento salvo. Disponibilidade e preço são verificados com o registrador novamente imediatamente antes da cobrança. Os dados de contato registrador são tomados do seu perfil de conta. Se o registrador rejeitar o registro após a cobrança, o pagamento é reembolsado.

Permissão requerida: domains:register (granada por domínios:*)

Parâmetros do corpo da requisição

Parâmetro Tipo Obrigatório Descrição
domain string Sim O nome de domínio completo, incluindo sua extensão, por exemplo.com
years integer Não Período de registo, 1 a 10 (por defeito 1). O preço é o período de preços anual anos..ai requer pelo menos 2 anos; um valor menor retorna 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}'

Exemplo de resposta

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

Códigos de status de resposta

201 Domínio registado
400 Dominio inválido, domínio não disponível, preço não foi possível verificar, método de pagamento desactualizado, ou o pagamento falhou
402 Não há método de pagamento no processo, nem facturas não pagas
500 O pagamento não pôde ser processado, ou o registrador rejeitou o registo após pagamento. No segundo caso, a mensagem de erro diz se a restituição passou.
POST /api/v1/domains/{uuid}/renew/

Renovar um domínio

Renova o domínio e cobra o seu preço de renovação por cada ano ao seu método de pagamento salvo.

Permissão requerida: domains:renew

Parâmetros do corpo da requisição

Parâmetro Tipo Obrigatório Descrição
years integer Não Anos a adicionar, 1 a 10 (por defeito 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)!"
}

Códigos de status de resposta

200 Domínio renovado
400 Anos inválidos, nenhum preço de renovação para o domínio, nenhum método de pagamento utilizável, ou o pagamento falhou
404 Não encontrado, ou pertence a outra conta
500 Não foi possível processar o pagamento, ou o pagamento passou, mas a renovação do registrar falhou. Apoio de contato nesse caso.
PUT /api/v1/domains/{uuid}/nameservers/

Actualizar os servidores de nomes

Estabeleça os servidores de nomes do domínio no registro e retorna o objeto de domínio atualizado. Para gerenciar DNS com a API DNS, use ns1.vps.org, ns2.vps.org e ns3.vps.org e crie uma zona para o domínio.

Permissão requerida: domains:update

Parâmetros do corpo da requisição

Parâmetro Tipo Obrigatório Descrição
nameserver1 string Sim Nome do servidor primário de nome
nameserver2, nameserver3, nameserver4 string Não Nomes de servidor adicionais
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"}'

Códigos de status de resposta

200 Servidores de nomes atualizados; o corpo é o objeto de domínio
400 faltar o servidor de nomes1
404 Não encontrado, ou pertence a outra conta
500 A atualização falhou; o corpo tem campos de erro e mensagem
PUT /api/v1/domains/{uuid}/auto-renew/

Desligar ou desligar a renovação automática

Define auto_renovado e retorna o objeto de domínio atualizado. Enviar ativado como um booleano JSON: qualquer corda não vazia, incluindo a corda falsa, transforma a renovação automática.

Permissão requerida: 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}'

Códigos de status de resposta

200 Configuração salvo; o corpo é o objeto de domínio
400 habilitado faltando
404 Não encontrado, ou pertence a outra conta

Notas