Guides
Articles
The article object
An article exists from the moment you create it, with status: "generating". When the generation succeeds it becomes ready; if it fails, failed. You can archive articles you no longer need in lists.
idstringrequiredobject"article"requiredstatusenumrequiredgeneratingreadyfailedarchivedtitlestringrequiredslugstringrequiredlanguagestringrequiredexcerptstring | nullrequiredword_countintegerrequiredcover_imageobject | nullrequiredsourceobjectrequired› Child attributes
typeenumrequiredurltopicurlstring | nullrequiredtitlestring | nullrequiredtopicstring | nullrequired
modelstring | nullrequiredcreated_atstringrequireddate-time
updated_atstringrequireddate-time
meta_titlestring | nullrequiredmeta_descriptionstring | nullrequiredfocus_keywordstring | nullrequiredkeywordsarray<string>requiredtagsarray<string>requiredcategoriesarray<string>requiredfaqarray<object>required› Child attributes
questionstringrequiredanswerstringrequired
imagesarray<object>required› Child attributes
urlstringrequiredaltstringrequiredwidthintegeroptionalheightintegeroptionalsectioninteger | nullrequiredSection index the image belongs to; null = cover image.
reading_minutesintegerrequiredseoobject | nullrequiredsettingsobject (map) | nullrequiredThe generation options used (snake_case).
content_htmlstringrequiredSanitized HTML body (no <h1>; use
title).content_markdownstringrequiredcontent_blocksstringoptionalGutenberg block markup. Only present with
?include=blocks.
content_html is sanitized and has no <h1> — use title as your page heading. Links to external sites get rel="noopener noreferrer". The FAQ is part of the body and is also returned as structured faq for FAQPage schema.
Retrieve
curl "https://reblogger.ai/api/v1/articles/$ARTICLE_ID" \
-H "Authorization: Bearer $REBLOGGER_API_KEY"Gutenberg blocks
Add ?include=blocks to get content_blocks: the body serialized as WordPress block markup (headings, paragraphs, lists, quotes, code, tables, images, separators). Paste it into post_content and the block editor opens it as native blocks — no “Classic” block conversion.
<!-- wp:heading -->
<h2 class="wp-block-heading">Choose the right containers</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Pick pots with drainage holes and at least 20 litres of soil for tomatoes.</p>
<!-- /wp:paragraph -->
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.reblogger.ai/…/pots.webp" alt="Terracotta pots on a balcony"/></figure>
<!-- /wp:image -->Image URLs point to our CDN. To host them in your media library, download and re-upload them and replace the URLs — the WordPress plugin does this automatically.
List & paginate
Articles are returned newest first as summaries (no body). Filter by status and language; page with limit (1–100, default 20) and starting_after:
let cursor = null;
do {
const url = new URL('https://reblogger.ai/api/v1/articles');
url.searchParams.set('limit', '100');
if (cursor) url.searchParams.set('starting_after', cursor);
const page = await fetch(url, { headers: { Authorization: `Bearer ${key}` } }).then((r) => r.json());
for (const article of page.data) console.log(article.id, article.title);
cursor = page.has_more ? page.next_cursor : null;
} while (cursor);Update
Change any of title, slug, excerpt, meta_title, meta_description, focus_keyword, keywords, tags, categories, status (ready or archived) or the whole body via content_markdown. When the body changes we re-render content_html, recount words and recompute the SEO score.
curl -X PATCH https://reblogger.ai/api/v1/articles/$ARTICLE_ID \
-H "Authorization: Bearer $REBLOGGER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Balcony Vegetable Gardening: The Complete Guide", "tags": ["gardening", "balcony"] }'Articles that are still generating return 409 conflict.
Delete
Deletes the article permanently. If its generation is still queued, it's canceled and refunded first; while a generation is running you get 409 — try again when it finishes.
{ "id": "cmh1x0art9q3m0001", "object": "article", "deleted": true }