Créer une balise de découverte RSS, Atom ou JSON Feed
La découverte d’un flux fonctionne mieux lorsqu’une page indique clairement aux navigateurs, lecteurs et robots l’adresse de sa ressource de syndication.
Lancer gratuitement
Ce générateur reçoit un type de flux et une URL absolue, choisit le type de média adapté, échappe les caractères susceptibles de rompre un attribut HTML et renvoie un élément link rel alternate complet, prêt pour la section head. Il prend en charge RSS, Atom et JSON Feed, tout en refusant les formats inconnus et les URL non web incorrectes.
Choisissez le format correspondant au document publié
Une balise de découverte n’est utile que si son attribut type décrit fidèlement la ressource visée par l’URL. Choisissez rss pour un document RSS en XML, atom pour un document Atom en XML ou json-feed pour un document JSON Feed. Le générateur associe ces choix à application/rss+xml, application/atom+xml et application/feed+json. Il ne consulte ni ne télécharge la destination : le format choisi doit donc correspondre au contenu réellement servi. Une déclaration exacte permet aux lecteurs de déterminer s’ils savent traiter la ressource avant de la récupérer. Elle évite également des erreurs fréquentes de copier-coller, par exemple annoncer un point d’accès Atom avec le type RSS ou présenter JSON Feed comme du JSON générique. Les noms inconnus sont refusés plutôt que devinés, car un type vraisemblable mais faux complique le diagnostic. Si votre site propose plusieurs formats, exécutez le générateur pour chaque adresse et placez tous les éléments obtenus dans head. Chaque balise représentera alors une véritable variante qu’un client compatible pourra sélectionner.
Indiquez l’URL publique canonique du flux
Saisissez une URL HTTP ou HTTPS absolue accessible au lecteur de flux d’un visiteur, par exemple https://example.com/feed.xml. Une adresse absolue convient mieux aux métadonnées de découverte : les copies de page, les documents en cache et les clients qui interprètent différemment l’URL de base continueront à viser la même ressource. Le générateur retire les espaces périphériques, vérifie que la valeur constitue une URL et refuse les schémas file, data ou javascript. Il conserve l’adresse fournie au lieu d’en réécrire silencieusement le chemin, la requête, le fragment, l’échappement ou la casse. Les caractères spéciaux d’un attribut HTML sont encodés dans le balisage produit ; une esperluette de la chaîne de requête devient ainsi sûre sans modifier le champ url renvoyé. Cette validation confirme la forme et le schéma, pas la propriété, la disponibilité, le type de contenu, les redirections ni TLS. Testez séparément la ressource publiée et vérifiez qu’elle renvoie bien le flux attendu.
Insérez puis contrôlez l’élément généré
Copiez la balise renvoyée dans la section head de la page HTML dont vous souhaitez signaler le flux. Le résultat emploie rel="alternate", le type de média propre au format et l’URL échappée comme href. Il omet volontairement title, car les données reçues ne contiennent que le format et l’adresse ; inventer une description serait moins pertinent que vous laisser choisir la langue et le libellé dans votre modèle. Si votre site possède plusieurs flux, par exemple un flux principal et des flux thématiques, créez un élément par URL et ajoutez des titres explicites dans votre application lorsque les utilisateurs doivent les distinguer. Examinez le code source réellement livré après le déploiement, puisqu’un moteur de modèles ou une couche de sécurité peut transformer le balisage. Essayez ensuite la découverte avec au moins un lecteur et contrôlez les en-têtes de réponse. L’outil du navigateur et l’API exécutent la même fonction déterministe : des entrées identiques produisent les mêmes champs et la même balise. Vos automatisations peuvent appeler l’API pour $0.002 par requête, tandis que l’usage interactif s’exécute localement dans le navigateur.
Cas d’usage
Ajouter la découverte RSS à une publication
Générez l’élément head du flux RSS d’un blog ou d’un site d’actualités sans mémoriser son type de média.
Signaler une variante Atom
Produisez un balisage de découverte cohérent pour un flux Atom proposé avec d’autres formats de syndication.
Publier les métadonnées JSON Feed
Employez le type de média enregistré de JSON Feed dans un élément alternate correctement échappé.
Questions fréquentes
Quels types de flux sont pris en charge ?
Les valeurs acceptées sont rss, atom et json-feed. Toute autre valeur provoque une erreur de saisie incorrecte.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. La version pour navigateur s’exécute localement et gratuitement.
L’existence du flux est-elle vérifiée ?
Non. L’outil valide les données et construit le balisage sans effectuer de requête réseau.
Pourquoi l’URL doit-elle être absolue ?
Une URL HTTP ou HTTPS absolue reste sans ambiguïté pour les lecteurs, quelle que soit la page ou l’URL de base où elle est découverte.
Les caractères spéciaux de l’URL sont-ils sûrs ?
Oui. Les caractères réservés dans un attribut HTML sont échappés dans la balise, tandis que le champ url conserve la saisie sans espaces périphériques.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/link-rel-alternate-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"feed_type":"rss","url":"https://example.com/feed.xml"}'const res = await fetch("https://api.kit.forhosting.com/web/link-rel-alternate-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"feed_type": "rss",
"url": "https://example.com/feed.xml"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/link-rel-alternate-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"feed_type": "rss",
"url": "https://example.com/feed.xml"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/link-rel-alternate-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"feed_type":"rss","url":"https://example.com/feed.xml"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"feed_type":"rss","url":"https://example.com/feed.xml"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/link-rel-alternate-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"feed_type": "rss",
"url": "https://example.com/feed.xml"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.link_rel_alternate_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |