How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Automattic Posts API

The posts API from Automattic — 34 operation(s) for posts.

Automattic Posts API is one of 385 APIs that Automattic publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Posts. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and a getting-started guide.

This API exposes 42 operations across 34 paths, and defines 2 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

Requests are made against 3 base URLs: https://public-api.wordpress.com/rest/v1.1, https://public-api.wordpress.com/rest/v1.2, https://public-api.wordpress.com.

42 operations 34 paths 2 schemas 2 DELETE20 GET1 PATCH18 POST1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
Base URL
https://public-api.wordpress.com/rest/v1.1
Authentication
OAuth 2.0, HTTP Bearer
Resource Areas
1

Authentication & Security 2

Automattic Posts API declares 2 security schemes for authenticating requests. It supports OAuth 2.0 (oauth2) using the authorizationCode flow, exposing 21 scopes. It accepts HTTP bearer tokens (bearerAuth). By default, every request must be authenticated.

  • oauth2 — WordPress.com OAuth 2.1 (see /.well-known/openid-configuration).
  • bearerAuth — Authorization: Bearer

Paths & Operations 42

Across 34 paths, the API surfaces 42 operations — 2 DELETE, 20 GET, 1 PATCH, 18 POST, 1 PUT. Each is listed below with its method, path, parameters, and response codes.

posts 42
GET
/me/posts
Get a list of posts across all the user's sites.
getMePosts 23 params → 200400401403404
GET
/sites/{site}/dropdown-pages/
Get a list of pages to be displayed as options in a select-a-page-dropdown.
getSitesBySiteDropdownPages 7 params → 200400401403404
GET
/sites/{site}/posts/
Get a list of matching posts.
getSitesBySitePosts 31 params → 200400401403404
POST
/sites/{site}/posts/delete
Delete multiple posts. Note: If the trash is enabled, this request will send non-trashed posts to the trash. Trashed pos
postSitesBySitePostsDelete 7 params body → 200400401403404
POST
/sites/{site}/posts/new
Create a post.
postSitesBySitePostsNew 7 params body → 200400401403404
POST
/sites/{site}/posts/restore
Restore multiple posts.
postSitesBySitePostsRestore 7 params body → 200400401403404
GET
/sites/{site}/posts/slug:{post_slug}
Get a single post (by slug).
getSitesBySitePostsSlugPostSlug 8 params → 200400401403404
GET
/sites/{site}/posts/{post_ID}
Get a single post (by ID).
getSitesBySitePostsByPostId 8 params → 200400401403404
POST
/sites/{site}/posts/{post_ID}
Edit a post.
postSitesBySitePostsByPostId 8 params body → 200400401403404
POST
/sites/{site}/posts/{post_ID}/delete
Delete a post. Note: If the trash is enabled, this request will send the post to the trash. A second request will perman
postSitesBySitePostsByPostIdDelete 8 params → 200400401403404
GET
/sites/{site}/posts/{post_ID}/likes/
Get a list of the likes for a post.
getSitesBySitePostsByPostIdLikes 8 params → 200400401403404
GET
/sites/{site}/posts/{post_ID}/likes/mine/
Get the current user's like status for a post.
getSitesBySitePostsByPostIdLikesMine 7 params → 200400401403404
POST
/sites/{site}/posts/{post_ID}/likes/mine/delete
Unlike a post.
postSitesBySitePostsByPostIdLikesMineDelete 7 params → 200400401403404
POST
/sites/{site}/posts/{post_ID}/likes/new
Like a post.
postSitesBySitePostsByPostIdLikesNew 7 params → 200400401403404
GET
/sites/{site}/posts/{post_ID}/reblogs/mine
Get reblog status for a post.
getSitesBySitePostsByPostIdReblogsMine 7 params → 200400401403404
POST
/sites/{site}/posts/{post_ID}/reblogs/new
Reblog a post.
postSitesBySitePostsByPostIdReblogsNew 7 params body → 200400401403404
POST
/sites/{site}/posts/{post_ID}/restore
Restore a post or page from the trash to its previous status.
postSitesBySitePostsByPostIdRestore 8 params → 200400401403404
POST
/sites/{site}/posts/{post}/related
Search within a site for related posts.
postSitesBySitePostsByPostRelated 6 params body → 200400401403404
GET
/sites/{site}/posts/{post}/subscribers/
Get a list of the specified post's subscribers.
getSitesBySitePostsByPostSubscribers 7 params → 200400401403404
GET
/sites/{site}/posts/{post}/subscribers/mine
Get subscription status of the specified post for the current user.
getSitesBySitePostsByPostSubscribersMine 7 params → 200400401403404
POST
/sites/{site}/posts/{post}/subscribers/mine/delete
Unsubscribe the current user from the specified post.
postSitesBySitePostsByPostSubscribersMineDelete 7 params → 200400401403404
POST
/sites/{site}/posts/{post}/subscribers/mine/update
Subscribe current user to be notified of the specified post's comments.
postSitesBySitePostsByPostSubscribersMineUpdate 8 params body → 200400401403404
POST
/sites/{site}/posts/{post}/subscribers/new
Subscribe current user to be notified of the specified post's comments.
postSitesBySitePostsByPostSubscribersNew 7 params body → 200400401403404
GET
/users/{user_id}/posts
Get a list of published posts authored by a specified user across their public sites, ordered by date in descending orde
getUsersByUserIdPosts 9 params → 200400401403404
GET
/wp/v2/sites/{wpcom_site}/posts
GET /wp/v2/sites/{wpcomsite}/posts
getWpV2SitesbyWpcomSitePosts 28 params → 200401404
POST
/wp/v2/sites/{wpcom_site}/posts
POST /wp/v2/sites/{wpcomsite}/posts
postWpV2SitesbyWpcomSitePosts 1 param body → 200401404
GET
/wp/v2/sites/{wpcom_site}/posts/{id}
GET /wp/v2/sites/{wpcomsite}/posts/{id}
getWpV2SitesbyWpcomSitePostsbyId 5 params → 200401404
POST
/wp/v2/sites/{wpcom_site}/posts/{id}
POST /wp/v2/sites/{wpcomsite}/posts/{id}
postWpV2SitesbyWpcomSitePostsbyId 2 params body → 200401404
PUT
/wp/v2/sites/{wpcom_site}/posts/{id}
PUT /wp/v2/sites/{wpcomsite}/posts/{id}
putWpV2SitesbyWpcomSitePostsbyId 2 params body → 200401404
PATCH
/wp/v2/sites/{wpcom_site}/posts/{id}
PATCH /wp/v2/sites/{wpcomsite}/posts/{id}
patchWpV2SitesbyWpcomSitePostsbyId 2 params body → 200401404
DELETE
/wp/v2/sites/{wpcom_site}/posts/{id}
DELETE /wp/v2/sites/{wpcomsite}/posts/{id}
deleteWpV2SitesbyWpcomSitePostsbyId 3 params → 200401404
GET
/wp/v2/sites/{wpcom_site}/posts/{id}/autosaves
GET /wp/v2/sites/{wpcomsite}/posts/{id}/autosaves
getWpV2SitesbyWpcomSitePostsbyIdAutosaves 4 params → 200401404
POST
/wp/v2/sites/{wpcom_site}/posts/{id}/autosaves
POST /wp/v2/sites/{wpcomsite}/posts/{id}/autosaves
postWpV2SitesbyWpcomSitePostsbyIdAutosaves 2 params body → 200401404
GET
/wp/v2/sites/{wpcom_site}/posts/{parent}/autosaves/{id}
GET /wp/v2/sites/{wpcomsite}/posts/{parent}/autosaves/{id}
getWpV2SitesbyWpcomSitePostsbyParentAutosavesbyId 4 params → 200401404
GET
/wp/v2/sites/{wpcom_site}/posts/{parent}/revisions
GET /wp/v2/sites/{wpcomsite}/posts/{parent}/revisions
getWpV2SitesbyWpcomSitePostsbyParentRevisions 11 params → 200401404
GET
/wp/v2/sites/{wpcom_site}/posts/{parent}/revisions/{id}
GET /wp/v2/sites/{wpcomsite}/posts/{parent}/revisions/{id}
getWpV2SitesbyWpcomSitePostsbyParentRevisionsbyId 4 params → 200401404
DELETE
/wp/v2/sites/{wpcom_site}/posts/{parent}/revisions/{id}
DELETE /wp/v2/sites/{wpcomsite}/posts/{parent}/revisions/{id}
deleteWpV2SitesbyWpcomSitePostsbyParentRevisionsbyId 4 params → 200401404
POST
/wpcom/v2/sites/{wpcom_site}/posts/auto-draft
POST /wpcom/v2/sites/{wpcomsite}/posts/auto-draft
postWpcomV2SitesbyWpcomSitePostsAutoDraft 1 param → 200401404
GET
/wpcom/v2/sites/{wpcom_site}/posts/map-url
GET /wpcom/v2/sites/{wpcomsite}/posts/map-url
getWpcomV2SitesbyWpcomSitePostsMapUrl 3 params → 200401404
GET
/wpcom/v2/sites/{wpcom_site}/posts/{postId}/map-url
GET /wpcom/v2/sites/{wpcomsite}/posts/{postId}/map-url
getWpcomV2SitesbyWpcomSitePostsbyPostidMapUrl 4 params → 200401404
POST
/wpcom/v2/sites/{wpcom_site}/posts/{postId}/publicize
POST /wpcom/v2/sites/{wpcomsite}/posts/{postId}/publicize
postWpcomV2SitesbyWpcomSitePostsbyPostidPublicize 2 params body → 200401404
GET
/wpcom/v2/sites/{wpcom_site}/posts/{postId}/publicize/published-actions
GET /wpcom/v2/sites/{wpcomsite}/posts/{postId}/publicize/published-actions
getWpcomV2SitesbyWpcomSitePostsbyPostidPublicizePublishedActions 2 params → 200401404

Schemas 2

The contract defines 2 schemas that model the data the API accepts and returns. The most detailed are WPRestError (3 properties), Error (2 properties). Each schema is shown below with its type and property counts.

Error
object
WordPress.com REST API error envelope (observed live).
2 properties
WPRestError
object
WordPress REST API error envelope (observed on public-api.wordpress.com).
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

automattic-posts-api-openapi.yml Raw ↑

Other APIs Automattic publishes across the network.

WordPress.com MCP Server
WordPress VIP Platform API
Automattic A8c Lore API
Automattic A8cmentorship API
Automattic Abilities API
Automattic Activity API
Automattic Activity Log Events API
Automattic Activitypub API
Automattic Adflow API
Automattic Admin Bar API
Automattic Admin Color API
Automattic Admin Menu API
Where this information came from

This is an independent, third-party profile of Automattic Posts API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.