Limits & Errors
What WordPress's connection does not expose and the common errors when calling it.
What you cannot do
The WordPress connection does not expose:
- Social posts through
POST /v1/posts - Analytics, comments, DMs or the Inbox API
- Ads or social account insights (ad platform tracking tags can be installed on the site)
- Creating a site or another blog
- Renaming or deleting the connected site/blog through the Blogs API
- SEO plugin fields
- Custom post types, pages, categories or taxonomies other than article tags through the Blogs API (pages, and WooCommerce product categories, are served by the Commerce API)
- A visual editor or Markdown conversion
- Removing an existing featured image through a PATCH sentinel
POST /v1/accounts/{accountId}/blogs, PATCH /v1/accounts/{accountId}/blogs/{blogId} and DELETE /v1/accounts/{accountId}/blogs/{blogId} return 405 for WordPress. Those operations remain available to platforms that support blog management.
Common errors
| Error | Cause | Fix |
|---|---|---|
400 on self-hosted connect | siteUrl is not HTTPS, includes credentials, resolves to a private/local address or does not expose a usable WordPress REST API | Pass the public HTTPS site root without credentials or /wp-json. |
400 on an article request | A field is invalid, author is not a numeric user ID, or seo was sent | Correct the named field. Remove seo; SEO plugin writes are unsupported. |
401 or 403 on self-hosted connect | The username/Application Password is invalid, revoked or lacks publish/upload capabilities | Create a new Application Password for a user that can publish posts and upload files. |
403 on an article request | The connected WordPress user cannot perform that action, such as assigning another author or creating a tag | Restore the user's WordPress role/capabilities or reconnect with another user. |
404 blog_not_found | blogId does not identify this account's single site blog | Call List blogs and use its only returned ID. Self-hosted sites use 1. |
404 blog_article_not_found | The post was deleted or belongs to another connected site | List articles on this account and blog to find a current ID. |
405 on a blog mutation | WordPress site/blog creation, rename and deletion are unsupported | Manage the site itself in WordPress; use article CRUD through Zernio. |
422 tracking_tag_install_blocked | A tracking tag install cannot run on this site; details.reason says why | See the reasons and the platform's official fallback. |
429 | Zernio or WordPress rate limited the request | Retry later. See rate limits. |
502 or 503 | WordPress failed or was unavailable | Check the site and retry only after the earlier request's result is known; a timed-out mutation may have reached WordPress. |
When a WordPress.com grant or self-hosted Application Password stops working, reconnect the same site on the same profile. The existing account is refreshed in place when the site identity matches.
Was this page helpful?