RankBuddyArticle
| Field | Type | Use on your site |
|---|---|---|
id | string | Keys, analytics (optional on public pages) |
slug | string | URL segment at {blogPath}/[slug] |
title | string | <h1>, cards, Open Graph fallback |
description | string | Meta description fallback, card excerpt |
excerpt | string? | Prefer over description for card blurbs |
content | { format: "markdown"; html: string; source?: string } | Render content.html in article body |
coverImage | string? | Hero image, OG/Twitter image fallback |
publishedAt | string? | Byline, JSON-LD datePublished, OG publishedTime |
updatedAt | string? | JSON-LD dateModified, OG modifiedTime |
readingTime | number? | Minutes to read (round up, minimum 1) |
tags | string[]? | Topic chips on the article page |
clusterRelation | "pillar" | "supporting"? | Optional badge (pillar vs supporting) |
primaryKeyword | string? | Optional chip or metadata |
primaryCluster | { id, slug, name, pillarKeyword }? | Link to {blogPath}/topic/{slug} |
seo.title | string? | <title> and OG title |
seo.description | string? | Meta description |
seo.canonicalUrl | string? | Canonical link (absolute or site-relative) |
seo.ogImage | string? | Prefer over coverImage for social cards |
seo.keywords | string[]? | Meta keywords, JSON-LD keywords |
seo.noIndex | boolean? | Set robots: { index: false, follow: false } |
RankBuddyCluster
| Field | Type | Use on your site |
|---|---|---|
slug | string | URL at {blogPath}/topic/[clusterSlug] |
name | string | Topic page <h1> |
pillarKeyword | string | Subtitle, meta keywords |
notes | string? | Topic page description |
postCount | number | Optional stat |
keywords | string[] | Meta keywords |
createdAt / updatedAt | string? | Sitemap lastmod |
Client options (createRankBuddyClient)
| Option | Required | Purpose |
|---|---|---|
apiKey | Yes | Server-only secret (RANKBUDDY_API_KEY) |
siteUrl | Recommended | Builds canonical URLs when seo.canonicalUrl is missing |
blogPath | Recommended | Must match your project’s content path (e.g. /blog) |
apiUrl | No | Custom API base (HTTPS only) |
timeoutMs | No | Default 10000 |
allowBrowser | No | Keep false for secret keys |
SDK list parameters
getArticlesList(client, params)
| Param | Type | Default behavior |
|---|---|---|
limit | number? | Page size (index often uses 24) |
page | number? | 1-based pagination |
tag | string? | Filter by tag when needed |
getClusterArticles(client, clusterSlug, params)
| Param | Type | Default behavior |
|---|---|---|
limit | number? | Topic grid size |
page | number? | Pagination |