Publishing API Guide

Learn how to publish ScaleBlogger articles to your CMS via the API. Covers authentication, endpoints, CMS setup, content format, and error handling.

Publishing API Guide

Audience: Developers integrating ScaleBlogger with their CMS or building custom publishing workflows


Overview

ScaleBlogger can publish generated articles directly to your CMS. This guide covers authentication, the publishing API endpoints, and how to set up your CMS connection.

Authentication

  1. Sign in to obtain a session token
  2. Include the token as Authorization: Bearer <token> in all requests
  3. Tokens are scoped to your account — you can only access your own websites and articles

Publishing Endpoints

Publish an Article

POST /api/articles/publish
Authorization: Bearer <token>
Content-Type: application/json

{
  "draft_id": "uuid-of-draft-to-publish"
}

Response

{
  "success": true,
  "published_url": "https://yourblog.com/blog/article-slug",
  "cms_post_id": "123"
}

Refresh a Published Article

POST /api/articles/refresh
Authorization: Bearer <token>
Content-Type: application/json

{
  "draft_id": "uuid-of-published-draft"
}

CMS Connection Setup

Before publishing, connect your CMS in the ScaleBlogger dashboard under Settings → Connections.

WordPress

  1. Enter your WordPress site URL
  2. Provide an Application Password (Settings → Users → Application Passwords in WordPress)
  3. ScaleBlogger publishes via the WordPress REST API (wp-json/wp/v2/posts)

Ghost

  1. Enter your Ghost site URL
  2. Create a Custom Integration in Ghost Admin and provide the Admin API key
  3. ScaleBlogger publishes via the Ghost Admin API

Custom CMS (Headless, Next.js, Astro, etc.)

For any other CMS, implement a simple REST API that ScaleBlogger calls.

Minimum requirements:

  • GET /posts?slug=... — for connection testing and duplicate detection (return JSON array)
  • POST /posts — accepts article data, returns { id, url }
  • PUT /posts/:id — for updating existing posts

See our dedicated Connecting a Custom API guide for the full API contract, payload reference, and a complete webhook example.

Published Content Format

When ScaleBlogger publishes to your CMS, it sends the following fields:

FieldTypeDescription
titlestringArticle title (plain text)
contentstringComplete HTML with inline styles — ready to render
slugstringURL-safe slug for the article
excerptstringShort description / meta description
meta_descriptionstringSEO meta description
featured_image_urlstring | nullURL of the hero image
authorstring | nullArticle author name — use for bylines and E-E-A-T signals
seo_titlestring | nullSEO-optimized title (may differ from title) — use for <title> tag
og_titlestring | nullOpen Graph title for social sharing
og_imagestring | nullOpen Graph image URL for social cards
canonical_urlstring | nullCanonical URL for syndicated content (currently null)
schema_markupobject | nullJSON-LD structured data — inject as <script type="application/ld+json">
tagsstring[]Combined target keywords and focus keywords (deduplicated)
categoriesstring[]Category names derived from the content cluster
focus_keywordsstring[]Primary SEO keywords the article is optimized for

Publishing Behavior

Slug Generation

ScaleBlogger generates URL-safe slugs automatically from the article title. Your CMS can use this slug directly or generate its own.

Categories and Tags

ScaleBlogger sends categories (derived from the article's content cluster) and tags (merged from target keywords and focus keywords, deduplicated). Your CMS should auto-create categories if they don't already exist.

SEO Metadata

ScaleBlogger generates SEO, GEO, and AISEO-optimized content. Use the seo_title for the <title> tag, og_title and og_image for Open Graph social cards, and inject schema_markup as JSON-LD for rich search results. See the Custom API guide for detailed implementation examples.

Featured Images

ScaleBlogger can generate featured images using AI. The image URL is included in the published payload. For WordPress and Ghost, the image is automatically set as the post's featured image.

Retry Logic

If publishing fails (e.g., your CMS is temporarily unavailable), ScaleBlogger will retry automatically. Failed attempts are logged and visible in the dashboard.

Error Handling

ErrorCauseSolution
No CMS connectionWebsite has no active CMS connection configuredAdd a CMS connection in Settings → Connections
Authentication failedCMS credentials are invalid or expiredUpdate your CMS credentials in the connection settings
Duplicate slugAn article with the same slug already exists on your CMSEdit the article slug or enable auto-deduplication
CMS unreachableYour CMS server is down or blocking requestsCheck your server status and ensure ScaleBlogger IPs are whitelisted