---
title: "Update a blog"
method: PATCH
path: "/v1/accounts/{accountId}/blogs/{blogId}"
tags: ["Blogs"]
---

# Update a blog

`PATCH /v1/accounts/{accountId}/blogs/{blogId}`

Partial-updates a blog. Send any subset of `title` and `handle`; at
least one field is required (an empty body returns 400).

Supported on Shopify (platform `shopify`). WordPress site settings are
not writable through this API, so WordPress returns 405.

## Path parameters

- `accountId` string, required
- `blogId` string, required

## Request body

- object — At least one field is required.
  - `title` string
  - `handle` string — URL slug. Changing it changes the blog URL on the store.

## Response `200`

Blog updated

- object
  - `platform` 'shopify'
  - `blog` Blog — A blog container on the connected platform. All content lives on the platform; Zernio proxies it and stores nothing.
    - `id` string — Platform-native blog id. Shopify uses a numeric blog id. WordPress.com uses the numeric site id; self-hosted WordPress uses `1`, scoped to the connected account.
    - `platform` 'shopify' | 'wordpress'
    - `title` string
    - `handle` string — URL slug on Shopify; site hostname on WordPress.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — The platform rejected the request (code insufficient_permissions); reconnect the Shopify account to restore access.
- `404` — Account not found or not accessible (code account_not_found), or blog not found (code blog_not_found).
- `405` — Platform does not support updating a blog.
- `429` — Rate limited, either by Zernio or by Shopify. Retry later.

## Changes

- **2026-09-17** `fdaf9a9fb1a7` — 1 warning
  - added the new `wordpress` enum value to the `blog/platform` response property for the response status `200`
- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status
- **2026-08-14** `875093317201` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/blogs/:blogId/patch.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/a0d8f21b5abe?raw)
