Integrations / Webhook
Send SEO articles
to any site by webhook
Searchloom sends each article to your server as signed JSON, so any custom site or CMS can publish it however you like.
Webhook
What your
server receives
Works with any server that can receive an HTTPS POST request.
- Event
- article.published or article.updated, plus a ping when you test the connection.
- Article
- Title, slug, meta description, HTML and Markdown.
- Image
- The featured image's address and alt text.
- SEO data
- Primary keyword, keywords and schema markup (JSON-LD).
- Status and date
- Published or draft, the publish date, and the old address when an article replaces an existing page.
- Signature
- An X-Searchloom-Signature header so you can check the request came from us.
Verify the signature
Check every request
The header is t=
import crypto from "node:crypto";
// rawBody: the request body exactly as received, before JSON parsing
export function isFromSearchloom(rawBody, header, secret) {
const parts = Object.fromEntries(
header.split(",").map((part) => part.split("=")),
);
// Reject requests older than 5 minutes
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false;
const expected = crypto
.createHmac("sha256", secret)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
const given = String(parts.v1 ?? "");
return (
given.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected))
);
}
Setup ( 3 steps )
Connect your webhook
in a few minutes
- 01
Add an endpoint
Create an HTTPS address on your site that accepts POST requests, and paste it into Searchloom.
- 02
Verify each request
Check the X-Searchloom-Signature header with the signing secret shown after you save.
- 03
Reply with 2xx
Return any 2xx status. Optionally reply with {"id": …, "url": …} so Searchloom can link to the live post.
Webhook FAQ ( 3 )
Questions,
answered
What happens if my server is down?
Publishing is retried automatically when the error looks temporary, such as a timeout or a 5xx response. You'll see the error in Searchloom if it keeps failing.
How do I tell new articles from updates?
Check the event: article.published for new articles and article.updated for changes. The X-Searchloom-Event header carries it too.
Can I test it before going live?
Yes. Testing the connection sends a signed ping event to your endpoint.
More integrations