Automattic Pages API
The pages API from Automattic — 6 operation(s) for pages.
The pages API from Automattic — 6 operation(s) for pages.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/automattic-pages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WordPress.com REST API — wp/v2 namespace Pages API
version: v2
description: Derived by API Evangelist from the WordPress.com REST API route index published at https://public-api.wordpress.com/wp/v2/. Paths, HTTP methods, and parameter names/types/descriptions/defaults are taken verbatim from that index. Response schemas are not published in the route index, so successful responses are described but not schematised; the error envelope was observed live on public-api.wordpress.com.
contact:
name: Automattic
url: https://developer.wordpress.com/docs/api/
x-derived-from: https://public-api.wordpress.com/wp/v2/
x-derived-by: API Evangelist enrichment pipeline
servers:
- url: https://public-api.wordpress.com
security:
- bearerAuth: []
tags:
- name: pages
paths:
/wp/v2/sites/{wpcom_site}/pages:
get:
operationId: getWpV2SitesbyWpcomSitePages
summary: GET /wp/v2/sites/{wpcom_site}/pages
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: context
in: query
required: false
schema:
type: string
enum:
- view
- embed
- edit
default: view
description: Scope under which the request is made; determines fields present in response.
- name: page
in: query
required: false
schema:
type: integer
default: 1
description: Current page of the collection.
- name: per_page
in: query
required: false
schema:
type: integer
default: 10
description: Maximum number of items to be returned in result set.
- name: search
in: query
required: false
schema:
type: string
description: Limit results to those matching a string.
- name: after
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts published after a given ISO8601 compliant date.
- name: modified_after
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts modified after a given ISO8601 compliant date.
- name: author
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Limit result set to posts assigned to specific authors.
- name: author_exclude
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Ensure result set excludes posts assigned to specific authors.
- name: before
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts published before a given ISO8601 compliant date.
- name: modified_before
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts modified before a given ISO8601 compliant date.
- name: exclude
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Ensure result set excludes specific IDs.
- name: include
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Limit result set to specific IDs.
- name: menu_order
in: query
required: false
schema:
type: integer
description: Limit result set to posts with a specific menu_order value.
- name: search_semantics
in: query
required: false
schema:
type: string
enum:
- exact
description: How to interpret the search input.
- name: offset
in: query
required: false
schema:
type: integer
description: Offset the result set by a specific number of items.
- name: order
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
description: Order sort attribute ascending or descending.
- name: orderby
in: query
required: false
schema:
type: string
enum:
- author
- date
- id
- include
- modified
- parent
- relevance
- slug
- include_slugs
- title
- menu_order
default: date
description: Sort collection by post attribute.
- name: parent
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Limit result set to items with particular parent IDs.
- name: parent_exclude
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Limit result set to all items except those of a particular parent ID.
- name: search_columns
in: query
required: false
schema:
type: array
default: []
items:
type: string
description: Array of column names to be searched.
- name: slug
in: query
required: false
schema:
type: array
items:
type: string
description: Limit result set to posts with one or more specific slugs.
- name: status
in: query
required: false
schema:
type: array
default: publish
items:
type: string
description: Limit result set to posts assigned one or more statuses.
- name: orderby_hierarchy
in: query
required: false
schema:
type: boolean
default: false
description: Sort pages by hierarchy.
post:
operationId: postWpV2SitesbyWpcomSitePages
summary: POST /wp/v2/sites/{wpcom_site}/pages
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
/wp/v2/sites/{wpcom_site}/pages/{id}:
get:
operationId: getWpV2SitesbyWpcomSitePagesbyId
summary: GET /wp/v2/sites/{wpcom_site}/pages/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: context
in: query
required: false
schema:
type: string
enum:
- view
- embed
- edit
default: view
description: Scope under which the request is made; determines fields present in response.
- name: excerpt_length
in: query
required: false
schema:
type: integer
description: Override the default excerpt length.
- name: password
in: query
required: false
schema:
type: string
description: The password for the post if it is password protected.
post:
operationId: postWpV2SitesbyWpcomSitePagesbyId
summary: POST /wp/v2/sites/{wpcom_site}/pages/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
put:
operationId: putWpV2SitesbyWpcomSitePagesbyId
summary: PUT /wp/v2/sites/{wpcom_site}/pages/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
patch:
operationId: patchWpV2SitesbyWpcomSitePagesbyId
summary: PATCH /wp/v2/sites/{wpcom_site}/pages/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
delete:
operationId: deleteWpV2SitesbyWpcomSitePagesbyId
summary: DELETE /wp/v2/sites/{wpcom_site}/pages/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: force
in: query
required: false
schema:
type: boolean
default: false
description: Whether to bypass Trash and force deletion.
/wp/v2/sites/{wpcom_site}/pages/{id}/autosaves:
get:
operationId: getWpV2SitesbyWpcomSitePagesbyIdAutosaves
summary: GET /wp/v2/sites/{wpcom_site}/pages/{id}/autosaves
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: parent
in: query
required: false
schema:
type: integer
description: The ID for the parent of the autosave.
- name: context
in: query
required: false
schema:
type: string
enum:
- view
- embed
- edit
default: view
description: Scope under which the request is made; determines fields present in response.
post:
operationId: postWpV2SitesbyWpcomSitePagesbyIdAutosaves
summary: POST /wp/v2/sites/{wpcom_site}/pages/{id}/autosaves
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
parent:
type: integer
description: The ID for the parent of the post.
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
/wp/v2/sites/{wpcom_site}/pages/{parent}/autosaves/{id}:
get:
operationId: getWpV2SitesbyWpcomSitePagesbyParentAutosavesbyId
summary: GET /wp/v2/sites/{wpcom_site}/pages/{parent}/autosaves/{id}
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: parent
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: context
in: query
required: false
schema:
type: string
enum:
- view
- embed
- edit
default: view
description: Scope under which the request is made; determines fields present in response.
/wp/v2/sites/{wpcom_site}/pages/{parent}/revisions:
get:
operationId: getWpV2SitesbyWpcomSitePagesbyParentRevisions
summary: GET /wp/v2/sites/{wpcom_site}/pages/{parent}/revisions
tags:
- pages
responses:
'200':
description: OK
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/WPRestError'
parameters:
- name: wpcom_site
in: path
required: true
schema:
type: string
- name: parent
in: path
required: true
schema:
type: string
- name: context
in: query
required: false
schema:
type: string
enum:
- view
- embed
- edit
default: view
description: Scope under which the request is made; determines fields present in response.
- name: page
in: query
required: false
schema:
type: integer
default: 1
description: Current page of the collection.
- name: per_page
in: query
required: false
schema:
type: integer
description: Maximum number of items to be returned in result set.
- name: search
in: query
required: false
schema:
type: string
description: Limit results to those matching a string.
- name: exclude
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Ensure result set excludes specific IDs.
- name: include
in: query
required: false
schema:
type: array
default: []
items:
type: integer
description: Limit result set to specific IDs.
- name: offset
in: query
required: false
schema:
type: integer
description: Offset the result set by a specific number of items.
- name: order
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
description: Order sort attribute ascending or descending.
- name: orderby
in: query
required: false
schema:
type: string
enum:
- date
- id
- includ
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/automattic/refs/heads/main/openapi/automattic-pages-api-openapi.yml