Webhook push
Quando Rankfender invia un articolo pubblicato al tuo sito: header, autenticazione, campi inviati, risposta attesa e test.
Con il webhook push, Rankfender invia ogni articolo a un indirizzo del tuo sito nel momento in cui viene pubblicato. Indirizzo, autenticazione e header aggiuntivi si impostano sulla scheda «Integrazione Web Moderna», scheda «PUSH (Webhook)»: vedi Integrazione Web Moderna.
Quando Rankfender chiama il tuo endpoint
- A ogni pubblicazione di un articolo del progetto: da te in Contenuto, o dal pilota automatico quando la pubblicazione automatica è attiva.
- Solo se «Enable Webhook» è attivo e una Webhook URL è salvata.
- Se il progetto ha anche WordPress collegato, gli articoli vanno a WordPress.
- Esiste un solo evento: article.published. Modifiche ed eliminazioni non vengono inviate.
Header
| Header | Valore |
|---|---|
| Content-Type | application/json |
| X-Rankfender-Event | article.published |
| X-Rankfender-Domain | L'indirizzo del sito del progetto |
| X-Rankfender-Test | true, solo nei test |
| I tuoi header personalizzati | Ogni header di «Custom Headers (Optional)», inviato così com'è |
Opzioni di autenticazione
| «Authentication Method» | Cosa invia Rankfender |
|---|---|
| None | Nessuna credenziale. |
| API Key | x-api-key: <la tua chiave> |
| Bearer Token | Authorization: Bearer <il tuo token> |
| Basic Auth | Authorization: Basic <il valore inserito>. Inserisci il valore già codificato in base64 (utente:password). |
| Webhook Secret | x-webhook-secret: <il tuo segreto> |
I dati inviati
Un corpo JSON con l'articolo al primo livello e di nuovo sotto article, più il progetto sotto domain. content è HTML, ripulito prima dell'invio; un articolo con meno di 100 caratteri di contenuto non viene inviato. author vale «Rankfender» se l'articolo non ne ha uno.
{
"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": "…" }
}Cosa deve rispondere il tuo endpoint
- Qualsiasi stato da 200 a 299 vale come consegnato. Ogni altro segna la pubblicazione come non riuscita, con «Webhook returned <stato>» e l'inizio della tua risposta.
- Facoltativo: rispondi con un JSON con id (o post_id) e url (o permalink, external_url). Rankfender salva l'URL come indirizzo online dell'articolo. Senza, l'indirizzo è l'URL del sito più lo slug.
- Salva l'articolo nel tuo CMS o database: Rankfender non conserva nulla dalla tua parte.
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": "123", "url": "https://your-site.com/blog/your-article" }Testare
«Test Webhook» invia un articolo di esempio intitolato «Rankfender Webhook Test» con X-Rankfender-Test: true e custom_data.test a true, così il tuo endpoint può ignorarlo. In caso di successo: «Webhook test successful! Endpoint responded with 2xx.»; dopo invii reali, «Last successful call:» mostra la data.
Importante
Il test parte dal tuo browser: il tuo endpoint deve accettare richieste cross-origin (CORS) da app.rankfender.com perché il test riesca. Gli invii reali partono dai server di Rankfender e non ne sono toccati.