RankHub
DocsBlogTry for $1.99

On this page

Vibe CoderPlatform Overview

Autopilot

How It WorksContent CalendarHeadline ApprovalArticle TypesContent Settings

Webhook Integration

Webhook LifecyclePayload ReferenceHTTP HeadersAuthenticationCode ExamplesSignature VerificationRetry BehaviorAllowed HTML Tags

Platform

Subscription PlansSearch ConsoleCredits & Usage

Set Up in 30 Seconds

Don't want to code? Copy this prompt into any AI coding tool.

Works with

Claude CodeCursorWindsurfCodex
## Role
You are helping me integrate RankHub webhooks into my web application.

## Context
...more

Platform Overview

RankHub is an SEO autopilot that researches keywords, generates optimized blog articles, and publishes them to your website automatically. The entire pipeline runs on a monthly cycle — from keyword selection to final delivery via webhook.

End-to-End Pipeline

1Keyword Research
2Content Calendar
3Headline Generation
4Your Approval
5Draft Generation
6Publish & Deliver

Each delivery includes the article title, slug, HTML and markdown content, featured image, SEO metadata, and tags. Your endpoint verifies the request using a Bearer token and HMAC signature, then creates the blog post in your CMS or database.

You stay in control with headline approval before any content is generated. RankHub handles the research, writing, image generation, and delivery — you approve what gets published.

How Autopilot Works

The autopilot runs on a monthly cycle. Ten days before each month ends, RankHub automatically generates the next month's content calendar, selects keywords from your pool, and creates headlines for approval.

Calendar Generation

RankHub creates a content calendar based on your subscription tier. Posts are spread evenly across the month on your preferred publish day.

10 days before month end

Headline Generation

AI generates SEO-optimized headlines for each scheduled post using keywords from your pool. Article types are automatically selected based on search intent.

Immediately after calendar

Your Approval

You receive an email with all headlines for the month. Select which to approve, reject, or skip. You have 5 days to respond.

5-day approval window

Draft Generation

Approved posts are queued for generation. RankHub writes the full article, generates a featured image, adds internal links, and formats the HTML.

1 day before scheduled publish

Publishing & Delivery

On the scheduled date, RankHub runs a semantic similarity check to prevent duplicate content, then delivers the article to your webhook endpoint.

Hourly publishing checks

Semantic Safety Check

Before publishing, RankHub compares each article against your existing content using vector embeddings. Articles with >90% similarity to published content are flagged for review instead of auto-publishing.

Content Calendar

Each month, RankHub generates a content calendar that schedules posts evenly across the month. The number of posts depends on your subscription tier.

TierPosts/MonthFrequency
Starter4Every 7 days
Growth15Every 2 days
Scale30Daily

You can configure your preferred publish day (Monday through Sunday) in website settings. Posts are scheduled starting from your preferred day and spread evenly across the month.

Calendars are generated 10 days before each month ends, giving you time to review and approve headlines before the new month begins.

Headline Approval

After headlines are generated, you receive an email with a secure approval link. The approval page shows each headline with its target keyword, search intent, scheduled date, and rationale.

Approval Workflow

  1. RankHub sends an email with your monthly headlines
  2. Click the secure approval link (valid for 5 days)
  3. Review each headline — select or deselect individually
  4. Submit your selections
  5. Approved headlines are queued for draft generation

Approved

Queued for draft generation 1 day before the scheduled publish date.

Rejected

Skipped for this month. The keyword returns to the pool.

Expired

No response within 5 days. Headlines are not generated.

Auto-Approval

Enable auto-approval in your content calendar settings to skip the email step. All generated headlines are automatically approved and queued for generation. Best for high-trust editorial workflows.

Article Types

RankHub automatically selects the best article type for each keyword based on search intent. Ten article types cover informational and commercial content.

TypePatternIntent
HOW_TO

Step-by-step tutorials and guides

How to [Goal] with [Method]Informational
LISTICLE

Numbered lists, easy to scan

[N] Ways/Tips to [Goal]Informational
ULTIMATE_GUIDEPillar

Comprehensive pillar content

The Ultimate Guide to [Topic]Informational
COMPARISON

Head-to-head product comparisons

[A] vs [B]: [Key Factor]Commercial
BEST_OF

Curated top picks

Best [Solutions] for [Audience]Commercial
PROBLEM_SOLUTION

Pain point diagnosis + fix

Why [Problem] and How to Fix ItInformational
CASE_STUDY

Real-world success stories

How [Entity] Achieved [Result]Commercial
EXPERT_TIPS

Professional advice roundups

[N] Expert Tips for [Goal]Informational
BEGINNERS_GUIDEPillar

Introductory pillar content

[Topic] for BeginnersInformational
ALTERNATIVES

Alternative solution roundups

[Competitor] AlternativesCommercial

Pillar Content Strategy

RankHub targets 1–2 pillar posts per month (Ultimate Guide or Beginner's Guide). These comprehensive articles serve as hub pages, with cluster content linking back to them for stronger topic authority.

Content Settings

Configure how RankHub generates content for your website. All settings are available in Settings → Content.

Article Style

informative

Clear, educational tone with balanced detail

conversational

Friendly, approachable voice with natural flow

professional

Polished, authoritative tone for B2B audiences

technical

Precise, detailed writing for developer audiences

Featured Image Style

RankHub generates a unique featured image for each article using DALL-E.

brand text

Bold text overlays with your brand color

watercolor

Soft watercolor illustrations

cinematic

Dramatic, high-contrast photography style

illustration

Clean vector illustrations

sketch

Hand-drawn sketch aesthetic

Content Features

Internal Links

Number of internal links per article (0–10, default: 3)

3
Call to Action

Include a CTA section in each article

On
YouTube Videos

Embed relevant YouTube videos when available

Off
Infographics

Generate inline infographic-style visuals

Off
Emojis

Use emojis in headings and content

Off
Brand Color

Your brand color for featured image text overlays

#10B981
Global Instructions

Free-text instructions applied to every article (tone, topics to avoid, etc.)

—

Webhook Lifecycle

Article Published

Autopilot writes and finalizes your blog post

Webhook Sent

POST request sent to your endpoint

Retry on Failure

5xx/429 retried up to 5 times

Delivered

Your site receives the article

Article Published

Autopilot writes and finalizes your blog post

Webhook Sent

POST request sent to your endpoint

Retry on Failure

5xx/429 retried up to 5 times

Delivered

Your site receives the article

5xx/429: Retried up to 5 times with exponential backoff (1min, 5min, 15min, 30min, 30min with jitter). Total window: ~51 minutes.

4xx (except 429): Not retried. These indicate a configuration error on your endpoint.

Payload Reference

JSON Body Fields

FieldTypeDescriptionExample
api_versionintegerAPI version number. Currently always 1.1
idstringUnique blog post identifier (CUID format)."clxyz123abc456def"
titlestringFull article title."10 Best SEO Tools for 2026"
slugstringURL-safe slug generated from the target keyword."best-seo-tools-2026"
content_htmlstringSanitized HTML article content. Uses semantic tags only (see Allowed HTML Tags section)."<h2>Introduction</h2><p>...</p>"
content_markdownstringOriginal markdown source of the article."## Introduction\n\n..."
meta_descriptionstringSEO meta description for the article."Discover the best SEO tools..."
image_urlstringURL to the featured image (hosted on Google Cloud Storage)."https://storage.googleapis.com/..."
tagsstring[]Array of topic tags for the article.["seo", "tools"]
created_atstringISO 8601 timestamp of when the article was published."2026-02-25T10:30:00Z"
target_keywordstringPrimary keyword this article is targeting for SEO."best seo tools"
word_countintegerTotal word count of the article.2450
reading_timeintegerEstimated reading time in minutes (based on 200 wpm).13

HTTP Headers

HeaderValueDescription
Content-Typeapplication/jsonAlways JSON. Parse the request body as JSON.
AuthorizationBearer <your_auth_token>Bearer token set in your webhook configuration. Compare with your stored token to authenticate.
X-RankHub-Delivery-Id<unique_delivery_id>Unique identifier for this delivery attempt. Useful for deduplication and debugging.
X-RankHub-Signaturesha256=<hmac_sha256_hex>HMAC-SHA256 signature of the JSON body, signed with your signing secret. Verify to ensure authenticity.

Allowed HTML Tags

The content_html field only contains these semantic HTML tags. Any h1 tags are automatically converted to h2.

<h2><h3><p><ul><ol><li><img><a><strong><em><blockquote><table><thead><tbody><tr><th><td><br><hr>

HTTP Headers

Every webhook delivery includes the following HTTP headers. Use these to authenticate the request and verify its integrity.

Content-Type

Always application/json. Parse the request body as JSON.

Authorization

Bearer token from your webhook settings. Format: Bearer <your_auth_token>. Compare against your stored token to authenticate.

X-RankHub-Delivery-Id

Unique identifier for this delivery attempt. Useful for deduplication and debugging. If you receive the same delivery ID twice, it means a retry occurred.

X-RankHub-Signature

HMAC-SHA256 signature of the JSON body, signed with your signing secret. Format: sha256=<hex_digest>. Verify to ensure the request was sent by RankHub and not tampered with.

Authentication

RankHub uses Bearer token authentication. When you set up your webhook in the Settings → Connections page, you provide an auth token. RankHub includes this token in the Authorization header of every delivery.

Your endpoint should extract the token from the header, strip the Bearer prefix, and compare it against your stored token. If the tokens don't match, return a 401 Unauthorized response.

Security Tip

Always verify both the Bearer token and the HMAC signature. The token confirms the sender knows your secret, and the signature confirms the payload has not been modified in transit.

Code Examples

Complete webhook handler examples with Bearer token and HMAC signature verification. Choose your language below.

const express = require('express')
const crypto = require('crypto')
const app = express()

app.post('/webhook/rankhub', express.json(), (req, res) => {
  // 1. Verify Bearer token
  const token = req.headers.authorization?.replace('Bearer ', '')
  if (token !== process.env.RANKHUB_AUTH_TOKEN) {
    return res.status(401).json({ error: 'Unauthorized' })
  }

  // 2. Verify HMAC-SHA256 signature
  const signature = req.headers['x-rankhub-signature']
    ?.replace('sha256=', '')
  const expected = crypto
    .createHmac('sha256', process.env.RANKHUB_SIGNING_SECRET)
    .update(JSON.stringify(req.body))
    .digest('hex')

  if (!crypto.timingSafeEqual(
    Buffer.from(signature || '', 'utf8'),
    Buffer.from(expected, 'utf8')
  )) {
    return res.status(403).json({ error: 'Invalid signature' })
  }

  // 3. Use the payload
  const { title, slug, content_html, meta_description,
          image_url, tags } = req.body
  // Create your blog post here...

  res.status(200).json({ received: true })
})

Signature Verification

Every webhook delivery is signed with HMAC-SHA256 using the signing secret from your webhook configuration. Follow these steps to verify:

  1. Get the raw request body — stringify the JSON body exactly as received (do not re-serialize).
  2. Compute HMAC-SHA256 — use your signing secret as the key and the raw body as the message.
  3. Compare hex digests — strip the sha256= prefix from the X-RankHub-Signature header and compare with your computed hex digest.
  4. Use timing-safe comparison — always use a constant-time comparison function to prevent timing attacks.
const crypto = require('crypto')

function verifyWebhookSignature(rawBody, signature, secret) {
  // 1. Strip the "sha256=" prefix
  const receivedSig = signature.replace('sha256=', '')

  // 2. Compute HMAC-SHA256 of the raw request body
  const expectedSig = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex')

  // 3. Timing-safe comparison to prevent timing attacks
  const a = Buffer.from(receivedSig, 'utf8')
  const b = Buffer.from(expectedSig, 'utf8')

  if (a.length !== b.length) return false
  return crypto.timingSafeEqual(a, b)
}

Retry Behavior

RankHub automatically retries failed deliveries to ensure your content arrives. The retry policy depends on the HTTP status code your endpoint returns.

ResponseBehavior
200-299Delivery successful. No further action.
429Rate limited. Retried up to 5 times with exponential backoff.
5xxServer error. Retried up to 5 times with exponential backoff.
4xx (except 429)Client error. Not retried. Fix your endpoint configuration.

Backoff Schedule

#11 min
#25 min
#315 min
#430 min
#530 min

Each delay includes +/-10% jitter. Total retry window: approximately 51 minutes. After all retries are exhausted, you receive an in-app notification.

Allowed HTML Tags

The content_html field contains sanitized HTML using only semantic tags. This ensures safe rendering on your website without any script injection or unsupported elements.

<h2><h3><p><ul><ol><li><img><a><strong><em><blockquote><table><thead><tbody><tr><th><td><br><hr>

Note

Any <h1> tags in the original content are automatically converted to <h2> to preserve your page's heading hierarchy (your page title should be the only h1).

Subscription Plans

RankHub offers three subscription tiers. Each tier determines how many blog posts are generated and published per month. All tiers include the full autopilot pipeline, headline approval, and webhook delivery.

Starter

$19.99/mo

4 posts/month · Weekly

  • ✓4 blog posts/month
  • ✓Weekly publishing
  • ✓AI headline generation
  • ✓Email approval workflow
  • ✓Webhook delivery

Best for: Small blogs and personal sites

Growth

Popular

$49.99/mo

15 posts/month · Every 2 days

  • ✓15 blog posts/month
  • ✓Bi-weekly publishing
  • ✓AI headline generation
  • ✓Email approval workflow
  • ✓Webhook delivery
  • ✓Priority content queue

Best for: Growing businesses and content marketers

Scale

$99.99/mo

30 posts/month · Daily

  • ✓30 blog posts/month
  • ✓Daily publishing
  • ✓AI headline generation
  • ✓Email approval workflow
  • ✓Webhook delivery
  • ✓Priority content queue
  • ✓Dedicated support

Best for: Content-heavy sites and agencies

7-Day Trial

All tiers include a 7-day trial for $1.99. Cancel anytime during the trial to avoid the full monthly charge. Billing is handled securely through Polar.

Google Search Console

Connect your Google Search Console to give RankHub real performance data. This helps optimize keyword selection and track how published articles perform in search results.

How to Connect

  1. Go to Settings → Connections
  2. Click Connect Google Search Console
  3. Authorize read-only access to your GSC property
  4. Select the property that matches your website URL

What Data is Synced

RankHub syncs your search performance data daily. The following metrics are collected per query and page:

Clicks

Click-through count

Impressions

Search appearance count

CTR

Click-through rate

Position

Average SERP position

Read-Only Access

RankHub requests only webmasters.readonly scope. We never modify your Search Console settings, submit URLs, or access any data beyond search analytics. You can disconnect at any time.

Credits & Usage

RankHub uses a credit system for on-demand features outside the autopilot subscription. Credits are consumed when you run keyword research, generate content on demand, or perform website analysis.

ActionDescription
Website AnalysisAI-powered analysis of your website, competitors, and audience during onboarding
Keyword ResearchManual or auto keyword research with DataForSEO metrics, SERP analysis, and trends
Content GenerationOn-demand blog draft generation outside the autopilot schedule
Image GenerationFeatured image creation via DALL-E (included with autopilot drafts)
Competitor AnalysisDeep analysis of competitor keyword rankings and content gaps

Autopilot content generation (drafts, images, and publishing) is included in your subscription and does not consume credits. Credits are only used for on-demand research and analysis features.

Credit Balance

View your current balance and transaction history at Dashboard → Credits. All credit usage is logged with the action type, cost, and timestamp.

RankHub
DocsBlogAboutPrivacyTerms
© 2026 RankHub. All rights reserved.

Compare

RankHub vs OutrankRankHub vs SEObot

Other tools by us

bumpnames.com•daashy.com•aina.rs•booktranslator.ai•paddlepush.app•momtest.ai•realtorstoolbox.com•muuvio.com•vardutinder.lv•docuglot.com•redcurate.com
SSL Secured
SOC2 Compliant
GDPR Ready