WordPress.com REST API - wp/v2 namespace

The WordPress core REST API shape as served by WordPress.com, site-scoped at /wp/v2/sites/{site}/. 348 operations across posts, pages, comments, media, taxonomies, block types, block patterns, global styles, templates, plugins, themes, settings and the WordPress Abilities API. Chosen when portability with self-hosted WordPress matters.

OpenAPI Specification

automattic-wordpress-com-wp-v2-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: WordPress.com REST API — wp/v2 namespace
  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
tags:
- name: abilities
- name: activity-log-events
- name: akismet
- name: block-directory
- name: block-patterns
- name: block-renderer
- name: block-types
- name: blocks
- name: categories
- name: comments
- name: feedback
- name: font-collections
- name: font-families
- name: global-styles
- name: guidelines
- name: icon-collections
- name: icons
- name: jetpack-forms
- name: jetpack-global-styles
- name: jp_pay_order
- name: jp_pay_product
- name: knowledge
- name: media
- name: menu-items
- name: menu-locations
- name: menus
- name: navigation
- name: pages
- name: pattern-directory
- name: plugins
- name: posts
- name: search
- name: settings
- name: sidebars
- name: statuses
- name: tags
- name: taxonomies
- name: template-parts
- name: templates
- name: themes
- name: types
- name: users
- name: view-config
- name: widget-types
- name: widgets
- name: wp-abilities
- name: wp-v2
- name: wp_guideline_type
- name: wp_knowledge_type
- name: wp_pattern_category
paths:
  /wp/v2:
    get:
      operationId: getWpV2
      summary: GET /wp/v2
      tags:
      - wp-v2
      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: namespace
        in: query
        required: false
        schema:
          default: wp/v2
      - name: context
        in: query
        required: false
        schema:
          default: view
  /wp/v2/abilities/{name}/run:
    get:
      operationId: getWpV2AbilitiesbyNameRun
      summary: GET /wp/v2/abilities/{name}/run
      tags:
      - abilities
      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: name
        in: path
        required: true
        schema:
          type: string
      - name: input
        in: query
        required: false
        schema:
          type: string
        description: Input parameters for the ability execution.
    post:
      operationId: postWpV2AbilitiesbyNameRun
      summary: POST /wp/v2/abilities/{name}/run
      tags:
      - abilities
      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: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: string
                  description: Input parameters for the ability execution.
    put:
      operationId: putWpV2AbilitiesbyNameRun
      summary: PUT /wp/v2/abilities/{name}/run
      tags:
      - abilities
      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: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: string
                  description: Input parameters for the ability execution.
    patch:
      operationId: patchWpV2AbilitiesbyNameRun
      summary: PATCH /wp/v2/abilities/{name}/run
      tags:
      - abilities
      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: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: string
                  description: Input parameters for the ability execution.
    delete:
      operationId: deleteWpV2AbilitiesbyNameRun
      summary: DELETE /wp/v2/abilities/{name}/run
      tags:
      - abilities
      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: name
        in: path
        required: true
        schema:
          type: string
      - name: input
        in: query
        required: false
        schema:
          type: string
        description: Input parameters for the ability execution.
  /wp/v2/sites/{wpcom_site}:
    get:
      operationId: getWpV2SitesbyWpcomSite
      summary: GET /wp/v2/sites/{wpcom_site}
      tags:
      - wp-v2
      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: namespace
        in: query
        required: false
        schema:
          default: wp/v2
      - name: context
        in: query
        required: false
        schema:
          default: view
  /wp/v2/sites/{wpcom_site}/activity-log-events:
    get:
      operationId: getWpV2SitesbyWpcomSiteActivityLogEvents
      summary: GET /wp/v2/sites/{wpcom_site}/activity-log-events
      tags:
      - activity-log-events
      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: 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: 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
          default: date
        description: Sort collection by post attribute.
      - 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.
    post:
      operationId: postWpV2SitesbyWpcomSiteActivityLogEvents
      summary: POST /wp/v2/sites/{wpcom_site}/activity-log-events
      tags:
      - activity-log-events
      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
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
  /wp/v2/sites/{wpcom_site}/activity-log-events/{id}:
    get:
      operationId: getWpV2SitesbyWpcomSiteActivityLogEventsbyId
      summary: GET /wp/v2/sites/{wpcom_site}/activity-log-events/{id}
      tags:
      - activity-log-events
      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: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
    post:
      operationId: postWpV2SitesbyWpcomSiteActivityLogEventsbyId
      summary: POST /wp/v2/sites/{wpcom_site}/activity-log-events/{id}
      tags:
      - activity-log-events
      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: &id001
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - spam
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
    put:
      operationId: putWpV2SitesbyWpcomSiteActivityLogEventsbyId
      summary: PUT /wp/v2/sites/{wpcom_site}/activity-log-events/{id}
      tags:
      - activity-log-events
      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: *id001
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
    patch:
      operationId: patchWpV2SitesbyWpcomSiteActivityLogEventsbyId
      summary: PATCH /wp/v2/sites/{wpcom_site}/activity-log-events/{id}
      tags:
      - activity-log-events
      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: *id001
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
    delete:
      operationId: deleteWpV2SitesbyWpcomSiteActivityLogEventsbyId
      summary: DELETE /wp/v2/sites/{wpcom_site}/activity-log-events/{id}
      tags:
      - activity-log-events
      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}/activity-log-events/{id}/autosaves:
    get:
      operationId: getWpV2SitesbyWpcomSiteActivityLogEventsbyIdAutosaves
      summary: GET /wp/v2/sites/{wpcom_site}/activity-log-events/{id}/autosaves
      tags:
      - activity-log-events
      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: postWpV2SitesbyWpcomSiteActivityLogEventsbyIdAutosaves
      summary: POST /wp/v2/sites/{wpcom_site}/activity-log-events/{id}/autosaves
      tags:
      - activity-log-events
      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 autosave.
                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
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
  /wp/v2/sites/{wpcom_site}/activity-log-events/{parent}/autosaves/{id}:
    get:
      operationId: getWpV2SitesbyWpcomSiteActivityLogEventsbyParentAutosavesbyId
      summary: GET /wp/v2/sites/{wpcom_site}/activity-log-events/{parent}/autosaves/{id}
      tags:
      - activity-log-events
      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}/akismet/v1/webhook:
    post:
      operationId: postWpV2SitesbyWpcomSiteAkismetV1Webhook
      summary: POST /wp/v2/sites/{wpcom_site}/akismet/v1/webhook
      tags:
      - akismet
      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
  /wp/v2/sites/{wpcom_site}/block-directory/search:
    get:
      operationId: getWpV2SitesbyWpcomSiteBlockDirectorySearch
      summary: GET /wp/v2/sites/{wpcom_site}/block-directory/search
      tags:
      - block-directory
      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
          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: term
        in: query
        required: true
        schema:
          type: string
        description: Limit result set to blocks matching the search term.
  /wp/v2/sites/{wpcom_site}/block-patterns/categories:
    get:
      operationId: getWpV2SitesbyWpcomSiteBlockPatternsCategories
      summary: GET /wp/v2/sites/{wpcom_site}/block-patterns/categories
      tags:
      - block-patterns
      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
  /wp/v2/sites/{wpcom_site}/block-patterns/patterns:
    get:
      operationId: getWpV2SitesbyWpcomSiteBlockPatternsPatterns
      summary: GET /wp/v2/sites/{wpcom_site}/block-patterns/patterns
      tags:
      - block-patterns
      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
  /wp/v2/sites/{wpcom_site}/block-renderer/{name}:
    get:
      operationId: getWpV2SitesbyWpcomSiteBlockRendererbyName
      summary: GET /wp/v2/sites/{wpcom_site}/block-renderer/{name}

# --- truncated at 32 KB (652 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/automattic/refs/heads/main/openapi/automattic-wordpress-com-wp-v2-openapi.yml
Where this information came from

This is an independent, third-party profile of WordPress.com REST API - wp/v2 namespace, 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.