# list_blog_articles (/docs/mcp/tools/list-blog-articles)

{/* Generated by scripts/sync-mcp-tools.mjs from happierleads-api. Do not edit: change src/routes/mcp/toolDocs.json there, or add content/mcp-notes/list_blog_articles.mdx. */}

**List blog articles** · Read-only

Lists the articles on a website's hosted blog (Optimize add-on), newest first. Use it to find an articleId for get_blog_article or update_blog_article. Each row has _id, title, slug, url, status (live, draft…), source, category, version, visits, firstAvg / currentAvg (the average ICP match of visitors to the first and current version), versionAvgs, pendingRefinement, publishedAt, issues and locked (locked articles cannot be edited). Errors: 403 without the Optimize add-on or the SEO permission, 404 when the blog is not set up.

| Connection | Account-owner URL or OAuth (not a team member URL) |
| --- | --- |

## Parameters [#parameters]

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `websiteId` | `string` | Yes | Website ID from list_websites. |

## Tool definition [#tool-definition]

What your assistant receives from `tools/list`:

```json
{
  "name": "list_blog_articles",
  "title": "List blog articles",
  "annotations": {
    "title": "List blog articles",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "websiteId": {
        "type": "string",
        "description": "Website ID from list_websites."
      }
    },
    "required": [
      "websiteId"
    ]
  }
}
```
