Dashboard
How it Works Documentation Quick Start PAPI — Pages & Assets MAPI — Dynamic Data Integrations SAPI — Sessions & Forms MCP Server OpenClaw Skill Tools Deploy Dashboard
Blog

Blog

⚡ Built-in — Platform Built-in

Publish and manage blog posts with categories, tags, multi-image support, and scheduled publishing.

⚡ Built-in — No Setup Required This integration is built into the WebsitePublisher platform. All endpoints are available immediately — no API key needed.

Endpoints (11)

GET list-posts

List published blog posts with optional filters. Default: only published posts, newest first.

Field Type Required Description
category_slug string No Filter by category slug.
tag string No Filter by tag (exact match in tags JSON array).
status string No Filter by status: draft, published, scheduled, all. Default: published. Anonymous callers are restricted to published only.
page integer No Page number for pagination. Default: 1.
per_page integer No Items per page. Default: 10, max: 50.
search string No Search in title and content.
GET get-post

Get a single blog post by slug. Includes category info and all images.

Field Type Required Description
slug string ✓ Yes Post slug.
GET list-categories

List all blog categories with post count (only published posts counted).

Field Type Required Description
flat boolean No If true, return flat list. If false (default), return nested tree.
GET generate-rss

Generate RSS 2.0 XML feed of latest published posts.

Field Type Required Description
limit integer No Number of posts in feed. Default: 20, max: 50.
POST create-post

Create a new blog post. Status defaults to "draft".

Field Type Required Description
title string ✓ Yes Post title.
slug string No URL slug. Auto-generated from title if omitted.
content string No HTML content of the post.
excerpt string No Short summary for listings and RSS.
featured_image string No Main image URL (PAPI asset CDN URL).
images array No Additional image URLs (PAPI asset CDN URLs).
author_name string No Author display name.
author_email string No Author email.
category_id integer No Category ID.
tags array No Array of tag strings, e.g. ["tech", "ai"].
status string No Post status: draft (default), published, scheduled.
published_at string No Publish datetime (ISO 8601). Required when status=scheduled. Auto-set to now when status=published and omitted.
meta_title string No SEO title override.
meta_description string No SEO meta description.
POST update-post

Update an existing blog post. Only provided fields are updated (partial update).

Field Type Required Description
id integer ✓ Yes Post ID to update.
title string No Post title.
slug string No URL slug.
content string No HTML content.
excerpt string No Short summary.
featured_image string No Main image URL.
images array No Additional image URLs.
author_name string No Author display name.
category_id integer No Category ID.
tags array No Tags array.
status string No Status: draft, published, scheduled.
published_at string No Publish datetime.
meta_title string No SEO title.
meta_description string No SEO meta description.
POST delete-post

Delete a blog post permanently.

Field Type Required Description
id integer ✓ Yes Post ID to delete.
POST create-category

Create a blog category. Supports nesting via parent_id.

Field Type Required Description
name string ✓ Yes Category name.
slug string No URL slug. Auto-generated from name if omitted.
description string No Category description.
parent_id integer No Parent category ID for nesting.
sort_order integer No Sort order. Default: 0.
POST update-category

Update a blog category.

Field Type Required Description
id integer ✓ Yes Category ID.
name string No Category name.
slug string No URL slug.
description string No Category description.
parent_id integer No Parent category ID.
sort_order integer No Sort order.
POST delete-category

Delete a blog category. Posts in this category get category_id set to NULL.

Field Type Required Description
id integer ✓ Yes Category ID to delete.
POST publish-scheduled

Auto-publish posts where status=scheduled and published_at <= now. Designed for AAPI scheduled task (every 15 min).

No input parameters required.

MCP Tool Names

When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:

EndpointMCP Tool Name
list-posts blog_list_posts
get-post blog_get_post
list-categories blog_list_categories
generate-rss blog_generate_rss
create-post blog_create_post
update-post blog_update_post
delete-post blog_delete_post
create-category blog_create_category
update-category blog_update_category
delete-category blog_delete_category
publish-scheduled blog_publish_scheduled
← Back to all integrations