API do cliente FastDDNS

Atualize automaticamente seu hostname DDNS sempre que seu IP mudar.

Visão geral

A API de Cliente FastDDNS permite que qualquer dispositivo compatível com HTTP — roteadores, câmeras IP, scripts ou softwares dedicados de atualização — mantenha seu hostname apontado para o endereço IP atual. A API segue um design simples de requisições GET: o cliente envia as credenciais e um hostname, 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 o IP.

ℹ️ HTTP e HTTPS são compatíveis. O uso de HTTPS é altamente recomendado para proteger suas credenciais durante a transmissão.

Autenticação

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

🔑 Credenciais por hostname: Cada hostname criado no FastDDNS recebe seu próprio user_name dedicado e user_pass. Essas credenciais podem somente atualizar esse hostname específico e não podem ser usadas 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 à URL usando o formato padrão user:password@host. Esse formato é amplamente compatível com 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 hostname específico no momento da criação. FastDDNS Dashboard → Hostnames → Details
{user_pass} A senha atribuída a esse hostname específico no momento da criação. FastDDNS Dashboard → Hostnames → Details
{hostname} O hostname totalmente qualificado a ser atualizado, por exemplo, testhost.fastddns.org. FastDDNS Dashboard → Hostnames → Details

Método 2 — Parâmetros de query string

As credenciais são passadas como parâmetros de query string junto com hostname. Isso é útil para dispositivos e firmware 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 hostname quando ele foi criado.
{user_pass} string A senha atribuída a esse hostname quando ele foi criado.
{hostname} string O hostname totalmente qualificado a ser atualizado, por exemplo, testhost.fastddns.org.

Exemplo usando autenticação por query string:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=YOUR_UPDATE_USERNAME&user_pass=YOUR_UPDATE_PASSWORD
⚠️ Ao usar autenticação por query string, 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.

Realizar atualização

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

Endpoint

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

Formato da URL — Método 1: HTTP Basic Auth

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

Formato da URL — Método 2: Query String

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

Parâmetros da query

Parâmetro Tipo Descrição
hostname obrigatório string O hostname totalmente qualificado (FQDN) a ser atualizado, por exemplo, myhome.fastddns.net ou testhost.fastddns.org. Apenas um hostname por solicitação é compatível.
user_name Método 2 string O nome de usuário deste hostname. Obrigatório ao usar a autenticação por query string (Método 2). Não é necessário ao usar HTTP Basic Auth (Método 1).
user_pass Método 2 string A senha deste hostname. Obrigatória ao usar a autenticação por query string (Método 2). Não é necessária ao usar HTTP Basic Auth (Método 1).
Detecção automática 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 — HTTP Basic Auth via HTTPS:

https://YOUR_UPDATE_USERNAME:YOUR_UPDATE_PASSWORD@client.fastddns.net/?hostname=testhost.fastddns.org

Método 2 — String de consulta via HTTPS:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=YOUR_UPDATE_USERNAME&user_pass=YOUR_UPDATE_PASSWORD

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

http://YOUR_UPDATE_USERNAME:YOUR_UPDATE_PASSWORD@client.fastddns.net/?hostname=testhost.fastddns.org

Códigos de retorno

Todas as respostas de atualização retornam o status HTTP 200 OK com um corpo de 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 hostname 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 atualização necessária

O hostname 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

Falha na autenticação

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

nohost

Hostname não encontrado

O hostname especificado não existe na sua conta ou não está qualificado para atualizações dinâmicas. Verifique a grafia do hostname e confirme que ele está registrado na sua conta.

911

Erro do servidor

Ocorreu um erro interno no servidor do FastDDNS. Aguarde pelo menos 5 minutos antes de tentar novamente. Se o problema persistir, consulte a página de status do FastDDNS ou entre em contato com o suporte.

Resumo da resposta

Texto da resposta Status HTTP Significado Ação necessária
good {ip} 200 IP atualizado com sucesso Nenhuma — atualização concluída
nochg {ip} 200 IP inalterado, nenhuma atualização realizada Nenhuma — já está atualizado
badauth 200 Credenciais inválidas Verifique o nome de usuário / a chave do cliente
nohost 200 Hostname não registrado Verifique o hostname no painel
911 200 Erro no 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 texto do corpo informa se a atualização foi realmente bem-sucedida.

Obter IP do cliente

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

Endpoint

GET https://client.fastddns.net/dyndns/getip
Nenhuma autenticação é necessária. Também pode ser acessado 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

# Recommended: let curl build the Authorization header (-u), so the
# credentials never appear in the URL.
HOSTNAME="myhome.fastddns.org"
USER_NAME="YOUR_UPDATE_USERNAME"
USER_PASS="YOUR_UPDATE_PASSWORD"
curl -s -u "${USER_NAME}:${USER_PASS}" "https://client.fastddns.net/?hostname=${HOSTNAME}"
# Legacy form, for devices that can only be given one URL field:
curl -s "https://client.fastddns.net/?hostname=${HOSTNAME}&user_name=${USER_NAME}&user_pass=${USER_PASS}"
# Check what IP the server sees from your device
curl -s "https://client.fastddns.net/dyndns/getip"SHELL

Python

import requests
HOSTNAME  = "testhost.fastddns.org"
USER_NAME = "YOUR_UPDATE_USERNAME"
USER_PASS = "YOUR_UPDATE_PASSWORD"
# 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 = 'YOUR_UPDATE_USERNAME';
$user_pass = 'YOUR_UPDATE_PASSWORD';
// Recommended: Basic Auth in a request header, so the password is not
// part of the URL and cannot leak through logs or error messages.
$url = "https://client.fastddns.net/?hostname=" . urlencode($hostname);
$auth = 'Basic ' . base64_encode($user_name . ':' . $user_pass);
// 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,
    'header'  => "Authorization: {$auth}\r\n",
]]);
$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 / Script do router)

#!/bin/bash
HOSTNAME="testhost.fastddns.org"
USER_NAME="YOUR_UPDATE_USERNAME"
USER_PASS="YOUR_UPDATE_PASSWORD"
# Method 1: HTTP Basic Auth
RESULT=$(curl -s -u "${USER_NAME}:${USER_PASS}" "https://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

Recebo badauth

O user_name ou user_pass fornecidos não correspondem às credenciais atribuídas a esse hostname. Cada hostname tem suas próprias credenciais independentes — encontre-as no seu painel, em Hostnames → Details. Observe que essas credenciais são específicas do hostname e não podem ser usadas para fazer login no portal de gerenciamento do FastDDNS. Se você redefiniu as credenciais recentemente, atualize todos os dispositivos que usam esse hostname.

Recebo nohost

O hostname no parâmetro hostname não existe ou não pertence à conta identificada pelas credenciais fornecidas. Verifique se há erros de digitação no hostname, confirme se ele está listado no seu painel e verifique se o user_name e o user_pass correspondem a esse hostname específico.

O servidor está detectando o IP incorreto

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

Recebo 911

Isso indica um problema temporário no servidor. Aguarde pelo menos 5 minutos antes de tentar novamente. Não repita as solicitações rapidamente — isso pode acionar a limitação de taxa. Consulte a página de status do FastDDNS para verificar se há incidentes ativos.

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

Recomendamos verificar se houve alterações no IP a cada 5 minutos. Quando o IP não tiver mudado, o servidor retornará nochg, que é uma operação leve sem efeito. Não é recomendável consultar o endpoint mais de uma vez por minuto, pois isso pode resultar em limitação de taxa.