# Blog articles

> Your hosted blog (Optimize add-on): articles written for your ideal customer, reviewed and published by you.

Every section below does the same job: in the dashboard (Guide), from your code (API) or through an AI assistant (MCP).

## Guide — In the dashboard

Source: /docs/optimize/blog-articles

With the Optimize add-on your website gets a hosted blog. New articles are proposed for your ideal customer; you read, edit, approve or reject each one, and every change is kept as a version you can go back to.

1. **Optimize → SEO** lists your articles; filter and sort them.
2. **Open a proposed article**, edit it if you like, then **Approve** or **Reject**.
3. **History** shows every version; **Revert** brings one back.
4. Change not showing? **Clear cache**.


---

## API — From your code

Source: /docs/optimize/blog-articles/api

Authenticated with `?privateKey=YOUR_KEY` (see [Authentication](/docs/authentication)).

<Endpoints ops={["GET /v3/blog/articles", "POST /v3/blog/articles", "GET /v3/blog/articles/{articleId}", "PUT /v3/blog/articles/{articleId}", "POST /v3/blog/cache/clear"]} />

<ApiPlayground
  method="get"
  path="/v3/blog/articles"
  tool="list_blog_articles"
  args={`{
  "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9"
}`}
/>

### Use case: Publish from your CMS [#use-case-publish-from-your-cms]

`POST /v3/blog/articles` with the `title`, `slug` and `html`; `status: "draft"` keeps it off the site until you are ready.

### Use case: Fix a typo in a live article [#use-case-fix-a-typo-in-a-live-article]

`PUT /v3/blog/articles/{articleId}` saves a new version at the same URL; the old one stays in the history.


---

## MCP — AI agents

Source: /docs/optimize/blog-articles/mcp

Connect the [MCP server](/docs/mcp#quickstart), then just ask.

<Tools names={["list_blog_articles", "get_blog_article", "create_blog_article", "update_blog_article", "clear_blog_cache"]} />

### Use case [#use-case]

> Which blog articles got the most visits this month?

<McpToolCall name="list_blog_articles">

```json
{
  "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9"
}
```

</McpToolCall>

### Use case [#use-case-1]

> Add an FAQ answering 'how is pricing calculated' to my pricing article.

<McpToolCall name="update_blog_article">

```json
{
  "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9",
  "articleId": "6a2f00000000000000000002",
  "faq": [
    {
      "q": "How is pricing calculated?",
      "a": "By the number of identified visitors per month."
    }
  ]
}
```

</McpToolCall>

