Webhook push
Quand Rankfender envoie un article publié à votre site : en-têtes, authentification, champs envoyés, réponse attendue et test.
Avec le webhook push, Rankfender envoie chaque article à une adresse de votre site au moment où il est publié. L'adresse, l'authentification et les en-têtes supplémentaires se règlent sur la carte « Intégration Web Moderne », onglet « PUSH (Webhook) » : voir Intégration Web Moderne.
Quand Rankfender appelle votre adresse
- À chaque publication d'un article du projet : par vous depuis Contenu, ou par le pilote automatique quand la publication automatique est active.
- Seulement si « Enable Webhook » est activé et qu'une Webhook URL est enregistrée.
- Si WordPress est aussi connecté au projet, les articles partent vers WordPress à la place.
- Un seul événement existe : article.published. Les modifications et suppressions ne sont pas envoyées.
En-têtes
| En-tête | Valeur |
|---|---|
| Content-Type | application/json |
| X-Rankfender-Event | article.published |
| X-Rankfender-Domain | L'adresse du site du projet |
| X-Rankfender-Test | true, uniquement lors des tests |
| Vos en-têtes personnalisés | Chaque en-tête de « Custom Headers (Optional) », envoyé tel quel |
Options d'authentification
| « Authentication Method » | Ce que Rankfender envoie |
|---|---|
| None | Aucun identifiant. |
| API Key | x-api-key: <votre clé> |
| Bearer Token | Authorization: Bearer <votre jeton> |
| Basic Auth | Authorization: Basic <la valeur saisie>. Saisissez la valeur déjà encodée en base64 (utilisateur:mot de passe). |
| Webhook Secret | x-webhook-secret: <votre secret> |
Le contenu envoyé
Un corps JSON avec l'article au premier niveau et à nouveau sous article, plus le projet sous domain. content est en HTML, nettoyé avant l'envoi ; un article de moins de 100 caractères de contenu n'est pas envoyé. author vaut « Rankfender » sauf si l'article en a un.
{
"event": "article.published",
"title": "…",
"slug": "…",
"content": "<h2>…</h2><p>…</p>",
"excerpt": "…",
"meta_description": "…",
"meta_title": "…",
"keywords": ["…"],
"featured_image": "https://…",
"author": "Rankfender",
"published_at": "2026-10-14T09:12:00.000Z",
"seo_data": { "title_tag": "…", "meta_keywords": "…", "canonical_url": "" },
"custom_data": { "article_id": "…", "generated_by": "Rankfender", "word_count": 1850 },
"article": {
"id": "…", "title": "…", "slug": "…", "content": "…", "excerpt": "…",
"meta_description": "…", "featured_image": "https://…", "cover_image_url": "https://…",
"scheduled_date": null, "published_at": "…", "target_keyword": "…"
},
"domain": { "id": "…", "url": "https://your-site.com", "name": "…" }
}Ce que votre adresse doit répondre
- Tout statut de 200 à 299 vaut livraison. Tout autre statut marque la publication en échec, avec « Webhook returned <statut> » et le début de votre réponse.
- Facultatif : répondez en JSON avec id (ou post_id) et url (ou permalink, external_url). Rankfender enregistre l'URL comme adresse en ligne de l'article. Sans elle, l'adresse est l'URL du site suivie du slug.
- Enregistrez l'article dans votre CMS ou votre base : Rankfender ne conserve rien chez vous.
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": "123", "url": "https://your-site.com/blog/your-article" }Tester
« Test Webhook » envoie un article d'exemple intitulé « Rankfender Webhook Test » avec X-Rankfender-Test: true et custom_data.test à true, pour que votre adresse puisse l'ignorer. En cas de succès : « Webhook test successful! Endpoint responded with 2xx. » ; après de vrais envois, « Last successful call: » affiche la date.
Important
Le test part de votre navigateur : votre adresse doit accepter les requêtes cross-origin (CORS) venant de app.rankfender.com pour que le test réussisse. Les vrais envois partent des serveurs de Rankfender et ne sont pas concernés.