NEW: AI VISIBILITYSee whether ChatGPT, Gemini, Perplexity and Claude recommend your business

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.

7-day free trial. Connect your webhook in a few minutes.

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=,v1=: an HMAC-SHA256 of the timestamp, a dot and the raw body, using your signing secret. Here it is in Node.js.

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

Start free trial
  1. 01

    Add an endpoint

    Create an HTTPS address on your site that accepts POST requests, and paste it into Searchloom.

  2. 02

    Verify each request

    Check the X-Searchloom-Signature header with the signing secret shown after you save.

  3. 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

Other ways
to publish

All integrations