FastDDNS Client API

Mettez automatiquement à jour votre hostname DDNS chaque fois que votre adresse IP change.

Aperçu

L’API client FastDDNS permet à tout appareil compatible HTTP — routeurs, caméras IP, scripts ou logiciels dédiés de mise à jour — de maintenir votre hostname DNS associé à votre adresse IP actuelle. L’API repose sur un format simple de requête GET : votre client envoie des identifiants et un hostname, puis le serveur répond par un court code d’état indiquant le résultat.

Le serveur détecte automatiquement l’adresse IP publique du client à partir de la connexion entrante. Aucun paramètre supplémentaire n’est nécessaire pour spécifier votre IP.

ℹ️ HTTP et HTTPS sont pris en charge. HTTPS est fortement recommandé pour protéger vos identifiants pendant leur transmission.

Authentification

L’API prend en charge deux méthodes d’authentification. Les deux sont acceptées de la même manière : choisissez celle qui est la plus facile à configurer sur votre appareil ou votre router.

🔑 Identifiants par hostname : Chaque hostname que vous créez sur FastDDNS reçoit son propre user_name identifiant dédié et user_pass. Ces identifiants peuvent uniquement mettre à jour ce hostname spécifique et ne peuvent pas être utilisés pour se connecter au tableau de bord de gestion FastDDNS. Cette conception limite l’impact si les identifiants d’un appareil sont compromis.

Méthode 1 — Authentification HTTP Basic Auth (intégrée à l’URL)

Les identifiants sont intégrés à l’URL en utilisant le format standard user:password@host. Ce format est largement pris en charge par les routeurs, les caméras et les bibliothèques clientes HTTP. Utilisez la clé client de mise à jour depuis votre tableau de bord comme mot de passe.

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

Champ Description Où le trouver
{user_name} Le nom d’utilisateur attribué à ce hostname spécifique lors de sa création. FastDDNS Dashboard → Hostnames → Details
{user_pass} Le mot de passe attribué à ce hostname spécifique lors de sa création. FastDDNS Dashboard → Hostnames → Details
{hostname} Le hostname entièrement qualifié à mettre à jour, par exemple testhost.fastddns.org. FastDDNS Dashboard → Hostnames → Details

Méthode 2 — Paramètres de chaîne de requête

Les identifiants sont transmis sous forme de simples paramètres de requête à côté de hostname. Cette méthode est utile pour les appareils et les firmware qui ne peuvent pas configurer les en-têtes HTTP Basic Auth, mais qui acceptent une chaîne d’URL entièrement personnalisée.

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}
Paramètre Type Description
{user_name}
 
string Le nom d’utilisateur attribué à ce hostname lors de sa création.
{user_pass} string Le mot de passe attribué à ce hostname lors de sa création.
{hostname} string Le hostname entièrement qualifié à mettre à jour, par exemple testhost.fastddns.org.

Exemple d’authentification par chaîne de requête :

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=YOUR_UPDATE_USERNAME&user_pass=YOUR_UPDATE_PASSWORD
⚠️ Lors de l’utilisation de l’authentification par chaîne de requête, privilégiez toujours HTTPS afin que les identifiants ne soient pas transmis en texte clair. HTTP est disponible, mais ne doit être utilisé que sur des réseaux locaux de confiance ou à des fins de test.

Effectuer la mise à jour

Envoyez une seule requête GET pour mettre à jour l’adresse IP d’un hostname enregistré sur votre compte. Chaque requête met à jour un hostname à la fois.

Endpoint

GET https://client.fastddns.net/
Également accessible via HTTP en clair — remplacez https par http.

Format URL — Méthode 1 : authentification HTTP Basic

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

Format URL — Méthode 2 : chaîne de requête

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

Paramètres de requête

Paramètre Type Description
hostname obligatoire string Le hostname complet (FQDN) à mettre à jour, par exemple myhome.fastddns.net ou testhost.fastddns.org. Une seule hostname par requête est prise en charge.
user_name Méthode 2 string Le nom d’utilisateur de ce hostname. Obligatoire avec l’authentification par chaîne de requête (méthode 2). Inutile avec l’authentification HTTP Basic (méthode 1).
user_pass Méthode 2 string Le mot de passe de ce hostname. Obligatoire avec l’authentification par chaîne de requête (méthode 2). Inutile avec l’authentification HTTP Basic (méthode 1).
Détection automatique de l’IP : Le serveur utilise l’IP source de la connexion TCP entrante pour déterminer votre adresse IP publique. Vous n’avez pas besoin de fournir le paramètre myip.

Exemples de requêtes

Méthode 1 — authentification HTTP Basic via HTTPS :

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

Méthode 2 — Chaîne de requête via HTTPS :

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

Utilisation du HTTP simple (tests / réseaux de confiance uniquement) :

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

Codes de retour

Toutes les réponses à la mise à jour renvoient le statut HTTP 200 OK avec un corps en texte brut. Votre client doit analyser ce corps de texte pour déterminer le résultat réel de la mise à jour.

good {ip}

Mise à jour réussie

L’enregistrement du hostname a été mis à jour avec l’adresse IP détectée. L’adresse IP réelle est incluse dans la réponse, par exemple good 203.0.113.45. C’est la réponse attendue lorsque votre IP a changé.

nochg {ip}

Aucun changement nécessaire

Le hostname pointe déjà vers l’adresse IP détectée — aucune mise à jour n’était nécessaire. L’adresse IP actuelle est incluse, par exemple nochg 203.0.113.45. C’est une réponse normale, sans erreur.

badauth

Échec de l’authentification

Le nom d’utilisateur ou la clé du client de mise à jour est incorrect ou a été révoqué. Vérifiez vos identifiants dans le tableau de bord FastDDNS. Ne réessayez pas automatiquement — corrigez d’abord les identifiants.

nohost

Hostname introuvable

Le hostname spécifié n’existe pas dans votre compte ou n’est pas éligible aux mises à jour dynamiques. Vérifiez l’orthographe du hostname et confirmez qu’il est enregistré sous votre compte.

911

Erreur serveur

Une erreur interne s’est produite côté serveur FastDDNS. Attendez au moins 5 minutes avant de réessayer. Si le problème persiste, consultez la page d’état de FastDDNS ou contactez le support.

Résumé de la réponse

Texte de la réponse Statut HTTP Signification Action requise
good {ip} 200 IP mise à jour avec succès Aucune — mise à jour terminée
nochg {ip} 200 IP inchangée, aucune mise à jour effectuée Aucune — déjà à jour
badauth 200 Identifiants invalides Vérifiez le nom d’utilisateur / la clé client
nohost 200 hostname non enregistré Vérifiez le hostname dans le tableau de bord
911 200 Erreur côté serveur Réessayez après 5+ minutes
⚠️ Important pour l’automatisation : Analysez toujours le texte du corps de la réponse, pas seulement le code d’état HTTP. L’API renvoie toujours 200 — le texte du corps vous indique si la mise à jour a réellement réussi.

Obtenir l’IP du client

FastDDNS fournit un point de terminaison utilitaire simple qui renvoie l’adresse IP publique telle qu’elle est vue par le serveur. Cet endpoint est utile pour le débogage, pour vérifier l’IP depuis laquelle votre appareil envoie ses requêtes ou pour l’utiliser dans des scripts personnalisés avant d’appeler l’endpoint de mise à jour.

Endpoint

GET https://client.fastddns.net/dyndns/getip
Aucune authentification requise. Également accessible via HTTP simple.

Réponse

Renvoie HTTP 200 OK avec l’adresse IP publique détectée, sous forme de texte brut dans le corps de la réponse.

# Example response body
203.0.113.45RESPONSE

Exemples de requêtes

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

Avec curl :

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

Exemples de code

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 de 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

Dépannage

Je reçois badauth

Le user_name ou user_pass fournis ne correspondent pas aux identifiants attribués à ce hostname. Chaque hostname possède ses propres identifiants — vous les trouverez dans votre tableau de bord, sous Hostnames → Details. Notez que ces identifiants sont spécifiques au hostname et ne peuvent pas être utilisés pour se connecter au portail de gestion FastDDNS. Si vous avez récemment réinitialisé les identifiants, mettez à jour tous les appareils utilisant ce hostname.

Je reçois nohost

Le hostname indiqué dans le paramètre hostname n’existe pas ou n’appartient pas au compte identifié par les identifiants fournis. Vérifiez que le hostname ne contient pas de faute de frappe, confirmez qu’il figure dans votre tableau de bord et vérifiez que le user_name et le user_pass correspondent à ce hostname précis.

Le serveur détecte la mauvaise adresse IP

Le serveur utilise l’IP source de la connexion TCP. Si votre appareil est derrière un routeur NAT, l’IP publique du routeur sera détectée — ce qui est généralement le comportement souhaité. Si vous utilisez un VPN ou un proxy, le serveur verra l’IP de sortie du VPN ou du proxy. Utilisez le getip endpoint pour vérifier quelle IP le serveur voit depuis votre appareil.

Je reçois 911

Cela indique un problème temporaire côté serveur. Attendez au moins 5 minutes avant de réessayer. N’envoyez pas de requêtes en boucle rapidement : cela peut déclencher une limitation du débit. Consultez la page d’état de FastDDNS pour connaître les incidents en cours.

À quelle fréquence dois-je interroger le point de terminaison de mise à jour ?

Nous recommandons de vérifier les changements d’IP toutes les 5 minutes. Lorsque votre IP n’a pas changé, le serveur renvoie nochg, ce qui ne déclenche aucune action et consomme peu de ressources. Il est déconseillé d’interroger le point de terminaison plus d’une fois par minute, car cela peut entraîner une limitation du débit.