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êteValeur
Content-Typeapplication/json
X-Rankfender-Eventarticle.published
X-Rankfender-DomainL'adresse du site du projet
X-Rankfender-Testtrue, uniquement lors des tests
Vos en-têtes personnalisésChaque en-tête de « Custom Headers (Optional) », envoyé tel quel

Options d'authentification

« Authentication Method »Ce que Rankfender envoie
NoneAucun identifiant.
API Keyx-api-key: <votre clé>
Bearer TokenAuthorization: Bearer <votre jeton>
Basic AuthAuthorization: Basic <la valeur saisie>. Saisissez la valeur déjà encodée en base64 (utilisateur:mot de passe).
Webhook Secretx-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.