API de Cliente FastDDNS

Atualize automaticamente seu nome de host DNS dinâmico sempre que seu endereço IP mudar.

Visão geral

A API Cliente FastDDNS permite que qualquer dispositivo compatível com HTTP — roteadores, câmeras IP, scripts ou softwares dedicados de atualização — mantenha seu nome DNS apontado para seu endereço IP atual. A API segue um design simples de requisição GET: seu cliente envia credenciais e um nome de host, e o servidor responde com um breve código de status indicando o resultado.

O servidor detecta automaticamente o endereço IP público do cliente a partir da conexão recebida. Não são necessários parâmetros extras para especificar seu IP.

i️ Tanto HTTP quanto HTTPS são suportados. O HTTPS é fortemente recomendado para proteger suas credenciais durante o trânsito.

Autenticação

A API suporta dois métodos de autenticação. Ambos são aceitos igualmente — escolha o que for mais fácil de configurar no seu dispositivo ou roteador.

🔑 Credenciais por nome de host: Cada nome de host criado no FastDDNS recebe seu próprio user_name dedicado e user_pass. Essas credenciais podem atualize esse nome de host específico e não pode ser usado para fazer login no painel de gerenciamento do FastDDNS. Esse design limita o impacto caso as credenciais de um dispositivo sejam comprometidas.

Método 1 — Autenticação Básica HTTP (URL-embedded)

As credenciais são incorporadas na URL usando o formato padrão user:password@host. Isso é amplamente suportado por roteadores, câmeras e bibliotecas de clientes HTTP. Use a Chave do Cliente do Atualizador do seu painel como senha.

https://{user_name}:{user_pass}@client.fastddns.net/?hostname={hostname}


Campo Descrição Onde encontrá-lo
{user_name} O nome de usuário atribuído a esse nome de host específico no momento da criação. Detalhes →→ Hostnames Dashboard FastDDNS
{user_pass} A senha atribuída a esse nome de host específico no momento da criação. Detalhes →→ Hostnames Dashboard FastDDNS
{hostname} O nome de host totalmente qualificado para atualizar, por exemplo, testhost.fastddns.org. Detalhes →→ Hostnames Dashboard FastDDNS

Método 2 — Parâmetros de Sequência de Consulta

As credenciais são passadas como parâmetros de consulta simples junto com hostname. Isso é útil para dispositivos e firmwares, que não conseguem configurar cabeçalhos HTTP Basic Auth, mas permitem uma string de URL totalmente personalizada.

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}
Parâmetro Tipo Descrição
{user_name}
 

string O nome de usuário atribuído a esse nome de host quando foi criado.
{user_pass} string A senha atribuída a esse nome de host quando foi criado.
{hostname} string O nome de host totalmente qualificado para atualizar, por exemplo, testhost.fastddns.org.

Exemplo usando autenticação de sequência de consulta:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832
⚠️ Ao usar autenticação de sequência de consulta, sempre prefira HTTPS para que as credenciais não sejam transmitidas em texto simples. HTTP está disponível, mas deve ser usado apenas em redes locais confiáveis ou para testes.

Atualização de Perform

Envie uma única solicitação GET para atualizar o endereço IP de um nome de host registrado na sua conta. Cada solicitação atualiza um nome de host por vez.

Endpoint

GET https://client.fastddns.net/
Também acessível via HTTP simples — substitua https por http.

Formato URL — Método 1: Autenticação Básica HTTP

https://{user_name}:{user_pass}@client.fastddns.net/?hostname={hostname}

Formato URL — Método 2: String de consulta

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}

Parâmetros de consulta

Parâmetro Tipo Descrição
hostname Obrigatório string O nome de host totalmente qualificado (FQDN) para atualizar, por exemplo, myhome.fastddns.net ou testhost.fastddns.org. Apenas um nome de host por solicitação é suportado.
user_name Método 2 string O nome de usuário desse nome de host. Exigido ao usar autenticação de sequência de consulta (Método 2). Não é necessário ao usar HTTP Basic Auth (Método 1).
user_pass Método 2 string A senha desse nome de host. Exigido ao usar autenticação de sequência de consulta (Método 2). Não é necessário ao usar HTTP Basic Auth (Método 1).
Auto-detecção de IP: O servidor usa o IP de origem da conexão TCP de entrada para determinar seu endereço IP público. Você não precisa fornecer um parâmetro myip.

Exemplos de Solicitações

Método 1 — Autenticação Básica HTTP sobre HTTPS:

https://fastddnstest:569832@client.fastddns.net/?hostname=testhost.fastddns.org

Método 2 — Consultar a cadeia de caracteres sobre HTTPS:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832

Usando HTTP simples (apenas testes / redes confiáveis):

http://fastddnstest:569832@client.fastddns.net/?hostname=testhost.fastddns.org

Códigos de retorno

Todas as respostas de atualização retornam o status HTTP 200 OK com texto simples. Seu cliente deve analisar esse corpo de texto para determinar o resultado real da atualização.

good {ip}

Atualização bem-sucedida

O registro do nome de host foi atualizado para o endereço IP detectado. O IP real está incluído na resposta, por exemplo, good 203.0.113.45. Essa é a resposta esperada quando seu IP mudou.

nochg {ip}

Nenhuma mudança necessária

O nome do host já aponta para o endereço IP detectado — nenhuma atualização foi necessária. O IP atual está incluído, por exemplo, nochg 203.0.113.45. Essa é uma resposta normal, sem erro.

badauth

Autenticação Falhada

O nome de usuário ou a chave do cliente do atualizador está incorreto ou foi revogado. Verifique suas credenciais no painel do FastDDNS. Não tente automaticamente — corrija as credenciais primeiro.

nohost

Nome do Host Não Encontrado

O nome de host especificado não existe na sua conta ou não é elegível para atualizações dinâmicas. Verifique a grafia do nome do host e confirme que está registrado na sua conta.

911

Erro do servidor

Um erro interno ocorreu no lado do servidor FastDDNS. Espere pelo menos 5 minutos antes de tentar novamente. Se o problema persistir, verifique a página de status do FastDDNS ou entre em contato com o suporte.

Resumo da Resposta

Texto da Resposta HTTP Status Significado Ação necessária
good {ip} 200 IP atualizado com sucesso Nenhum — atualização completa
nochg {ip} 200 IP inalterado, nenhuma atualização feita Nenhum — já está em dia
badauth 200 Credenciais inválidas Verifique nome de usuário / chave do cliente
nohost 200 Nome de host não registrado Verificar nome de host no painel
911 200 Erro do lado do servidor Tente novamente após 5+ minutos
⚠️ Importante para automação: Sempre analise o Texto do corpo da resposta , não apenas o código de status HTTP. A API sempre retorna 200 — o corpo do texto informa se a atualização realmente foi bem-sucedida.

Obtenha IP do Cliente

O FastDDNS fornece um endpoint utilitário simples que retorna o endereço IP público conforme visto pelo servidor. Isso é útil para depuração, para verificar de qual IP seu dispositivo está enviando, ou para uso em scripts personalizados antes de chamar o endpoint de atualização.

Endpoint

GET https://client.fastddns.net/dyndns/getip
Não é necessário autenticação. Também acessível via HTTP simples.

Resposta

Retorna HTTP 200 OK com o endereço IP público detectado como texto simples no corpo da resposta.

# Example response body
203.0.113.45RESPONSE

Exemplos de Solicitações

https://client.fastddns.net/dyndns/getip
http://client.fastddns.net/dyndns/getip

Usando curl:

curl https://client.fastddns.net/dyndns/getipSHELL

Exemplos de Código

Shell / cURL

# Method 1: HTTP Basic Auth (HTTPS, IP auto-detected)
curl "https://fastddnstest:[email protected]/?hostname=testhost.fastddns.org"
# Method 2: Query string credentials
curl "https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832"
# Check what IP the server sees from your device
curl "https://client.fastddns.net/dyndns/getip"SHELL

Python

import requests
HOSTNAME  = "testhost.fastddns.org"
USER_NAME = "fastddnstest"
USER_PASS = "569832"
# Method 1: HTTP Basic Auth
resp = requests.get(
    "https://client.fastddns.net/",
    auth=(USER_NAME, USER_PASS),
    params={"hostname": HOSTNAME}
)
# Method 2: Query string
# resp = requests.get("https://client.fastddns.net/", params={
#     "hostname": HOSTNAME, "user_name": USER_NAME, "user_pass": USER_PASS
# })
body = resp.text.strip()
if body.startswith("good"):
    print(f"Updated successfully: {body}")
elif body.startswith("nochg"):
    print(f"No change needed: {body}")
elif body == "badauth":
    print("Authentication failed. Check credentials.")
elif body == "nohost":
    print("Hostname not found.")
elif body == "911":
    print("Server error. Try again later.")PYTHON

PHP

<?php
$hostname  = 'testhost.fastddns.org';
$user_name = 'fastddnstest';
$user_pass = '569832';
// Method 1: HTTP Basic Auth embedded in URL
$url = "https://{$user_name}:{$user_pass}@client.fastddns.net/?hostname=" . urlencode($hostname);
// Method 2: Query string credentials
// $url = "https://client.fastddns.net/?hostname=" . urlencode($hostname)
//      . "&user_name=" . urlencode($user_name)
//      . "&user_pass=" . urlencode($user_pass);
$ctx = stream_context_create(['http' => ['timeout' => 10]]);
$body = trim(file_get_contents($url, false, $ctx));
switch (true) {
    case str_starts_with($body, 'good'):
        echo "Updated: {$body}\n"; break;
    case str_starts_with($body, 'nochg'):
        echo "No change: {$body}\n"; break;
    case $body === 'badauth':
        echo "Auth failed. Check hostname credentials.\n"; break;
    case $body === 'nohost':
        echo "Hostname not found.\n"; break;
    case $body === '911':
        echo "Server error, retry later.\n"; break;
}PHP

Bash (Cron / Roteador Script)

#!/bin/bash
HOSTNAME="testhost.fastddns.org"
USER_NAME="fastddnstest"
USER_PASS="569832"
# Method 1: HTTP Basic Auth
RESULT=$(curl -s "https://${USER_NAME}:${USER_PASS}@client.fastddns.net/?hostname=${HOSTNAME}")
# Method 2: Query string (uncomment to use instead)
# RESULT=$(curl -s "https://client.fastddns.net/?hostname=${HOSTNAME}&user_name=${USER_NAME}&user_pass=${USER_PASS}")
case "$RESULT" in
  good*)   echo "[OK] $RESULT" ;;
  nochg*)  echo "[OK] $RESULT" ;;
  badauth) echo "[ERR] Bad credentials — check hostname user/pass"; exit 1 ;;
  nohost)  echo "[ERR] Hostname not found"; exit 1 ;;
  911)     echo "[ERR] Server error, retry later"; exit 1 ;;
  *)       echo "[WARN] Unknown response: $RESULT" ;;
esacBASH

Solução de problemas

Eu recebo badauth

Os user_name ou user_pass fornecidos não correspondem às credenciais atribuídas àquele nome de host. Cada nome de host tem suas próprias credenciais independentes — encontre-as no seu painel sob Nomes → Detalhes dos Hostnames . Note que essas credenciais são específicas para o nome do host e não podem ser usadas para fazer login no portal de gerenciamento FastDDNS. Se você redefinir as credenciais recentemente, atualize todos os dispositivos usando esse nome de host.

Recebo nohost

O nome de host no parâmetro hostname não existe ou não pertence à conta identificada pelas credenciais fornecidas. Verifique por erros de digitação no nome do host, confirme que está listado no seu painel e verifique se o user_name e o user_pass coincidem Esse nome de host específico .

O servidor está detectando o IP errado

O servidor usa o IP de origem da conexão TCP. Se seu dispositivo estiver atrás de um roteador NAT, o IP público do roteador será detectado — o que geralmente é o comportamento desejado. Se você estiver em uma VPN ou proxy, o servidor verá o IP de saída da VPN/proxy. Use o getip endpoint para verificar qual IP o servidor vê do seu dispositivo.

Recebo 911

Isso indica um problema temporário do lado do servidor. Espere pelo menos 5 minutos antes de tentar novamente. Não faça looping de solicitações rapidamente — isso pode desencadear limitação de taxa. Verifique a página de status do FastDDNS para quaisquer incidentes ativos.

Com que frequência devo consultar o endpoint de atualização?

Recomendamos verificar mudanças de IP a cada 5 minutos. Quando seu IP não mudou, o servidor retorna nochg, que é um no-op leve. Pesquisar com mais frequência de uma vez por minuto é desencorajado e pode resultar em limitação de taxas.