BXP WordPress REST API

The WordPress REST API served by BXP's corporate website at https://www.bxp.com/wp-json — 332 routes across 15 namespaces, discovered by probing the API host root on 2026-09-04. This is the only machine-readable contract BXP publishes. It is incidental CMS infrastructure, not a product: BXP runs no developer program, publishes no documentation, no SDKs, no pricing and no terms for programmatic use, and the surface carries x-robots-tag noindex. Reads under wp/v2 are anonymous and were verified live (pages, posts, types, categories, search, gl_js_maps, and an oEmbed 1.0 provider endpoint); writes and privileged reads require a WordPress account on BXP's own site and are not obtainable by a third party. The entities a real-estate consumer would want — property, region, team-member, property-type, member-type — exist on the site as custom post types with their own sitemaps but are deliberately NOT registered for REST, so they are absent from this contract.

Operations 193

GET /wp/v2 GET /wp/v2 #
GET /wp/v2/block-directory/search GET /wp/v2/block-directory/search #
GET /wp/v2/block-patterns/categories GET /wp/v2/block-patterns/categories #
GET /wp/v2/block-patterns/patterns GET /wp/v2/block-patterns/patterns #
GET /wp/v2/block-renderer/{name} GET /wp/v2/block-renderer/{name} #
POST /wp/v2/block-renderer/{name} POST /wp/v2/block-renderer/{name} #
GET /wp/v2/block-types GET /wp/v2/block-types #
GET /wp/v2/block-types/{namespace} GET /wp/v2/block-types/{namespace} #
GET /wp/v2/block-types/{namespace}/{name} GET /wp/v2/block-types/{namespace}/{name} #
GET /wp/v2/blocks GET /wp/v2/blocks #
POST /wp/v2/blocks POST /wp/v2/blocks #
GET /wp/v2/blocks/{id} GET /wp/v2/blocks/{id} #
POST /wp/v2/blocks/{id} POST /wp/v2/blocks/{id} #
DELETE /wp/v2/blocks/{id} DELETE /wp/v2/blocks/{id} #
GET /wp/v2/blocks/{id}/autosaves GET /wp/v2/blocks/{id}/autosaves #
POST /wp/v2/blocks/{id}/autosaves POST /wp/v2/blocks/{id}/autosaves #
GET /wp/v2/blocks/{parent}/autosaves/{id} GET /wp/v2/blocks/{parent}/autosaves/{id} #
GET /wp/v2/blocks/{parent}/revisions GET /wp/v2/blocks/{parent}/revisions #
GET /wp/v2/blocks/{parent}/revisions/{id} GET /wp/v2/blocks/{parent}/revisions/{id} #
DELETE /wp/v2/blocks/{parent}/revisions/{id} DELETE /wp/v2/blocks/{parent}/revisions/{id} #
GET /wp/v2/categories GET /wp/v2/categories #
POST /wp/v2/categories POST /wp/v2/categories #
GET /wp/v2/categories/{id} GET /wp/v2/categories/{id} #
POST /wp/v2/categories/{id} POST /wp/v2/categories/{id} #
DELETE /wp/v2/categories/{id} DELETE /wp/v2/categories/{id} #
GET /wp/v2/comments GET /wp/v2/comments #
POST /wp/v2/comments POST /wp/v2/comments #
GET /wp/v2/comments/{id} GET /wp/v2/comments/{id} #
POST /wp/v2/comments/{id} POST /wp/v2/comments/{id} #
DELETE /wp/v2/comments/{id} DELETE /wp/v2/comments/{id} #
GET /wp/v2/font-collections GET /wp/v2/font-collections #
GET /wp/v2/font-collections/{slug} GET /wp/v2/font-collections/{slug} #
GET /wp/v2/font-families GET /wp/v2/font-families #
POST /wp/v2/font-families POST /wp/v2/font-families #
GET /wp/v2/font-families/{font_family_id}/font-faces GET /wp/v2/font-families/{font_family_id}/font-faces #
POST /wp/v2/font-families/{font_family_id}/font-faces POST /wp/v2/font-families/{font_family_id}/font-faces #
GET /wp/v2/font-families/{font_family_id}/font-faces/{id} GET /wp/v2/font-families/{font_family_id}/font-faces/{id} #
DELETE /wp/v2/font-families/{font_family_id}/font-faces/{id} DELETE /wp/v2/font-families/{font_family_id}/font-faces/{id} #
GET /wp/v2/font-families/{id} GET /wp/v2/font-families/{id} #
POST /wp/v2/font-families/{id} POST /wp/v2/font-families/{id} #
DELETE /wp/v2/font-families/{id} DELETE /wp/v2/font-families/{id} #
GET /wp/v2/gl_js_maps GET /wp/v2/gl_js_maps #
POST /wp/v2/gl_js_maps POST /wp/v2/gl_js_maps #
GET /wp/v2/gl_js_maps/{id} GET /wp/v2/gl_js_maps/{id} #
POST /wp/v2/gl_js_maps/{id} POST /wp/v2/gl_js_maps/{id} #
DELETE /wp/v2/gl_js_maps/{id} DELETE /wp/v2/gl_js_maps/{id} #
GET /wp/v2/gl_js_maps/{id}/autosaves GET /wp/v2/gl_js_maps/{id}/autosaves #
POST /wp/v2/gl_js_maps/{id}/autosaves POST /wp/v2/gl_js_maps/{id}/autosaves #
GET /wp/v2/gl_js_maps/{parent}/autosaves/{id} GET /wp/v2/gl_js_maps/{parent}/autosaves/{id} #
GET /wp/v2/gl_js_maps/{parent}/revisions GET /wp/v2/gl_js_maps/{parent}/revisions #
GET /wp/v2/gl_js_maps/{parent}/revisions/{id} GET /wp/v2/gl_js_maps/{parent}/revisions/{id} #
DELETE /wp/v2/gl_js_maps/{parent}/revisions/{id} DELETE /wp/v2/gl_js_maps/{parent}/revisions/{id} #
GET /wp/v2/global-styles/themes/{stylesheet} GET /wp/v2/global-styles/themes/{stylesheet} #
GET /wp/v2/global-styles/themes/{stylesheet}/variations GET /wp/v2/global-styles/themes/{stylesheet}/variations #
GET /wp/v2/global-styles/{id} GET /wp/v2/global-styles/{id} #
POST /wp/v2/global-styles/{id} POST /wp/v2/global-styles/{id} #
GET /wp/v2/global-styles/{parent}/revisions GET /wp/v2/global-styles/{parent}/revisions #
GET /wp/v2/global-styles/{parent}/revisions/{id} GET /wp/v2/global-styles/{parent}/revisions/{id} #
GET /wp/v2/icons GET /wp/v2/icons #
GET /wp/v2/icons/{name} GET /wp/v2/icons/{name} #
GET /wp/v2/media GET /wp/v2/media #
POST /wp/v2/media POST /wp/v2/media #
GET /wp/v2/media/{id} GET /wp/v2/media/{id} #
POST /wp/v2/media/{id} POST /wp/v2/media/{id} #
DELETE /wp/v2/media/{id} DELETE /wp/v2/media/{id} #
POST /wp/v2/media/{id}/edit POST /wp/v2/media/{id}/edit #
POST /wp/v2/media/{id}/post-process POST /wp/v2/media/{id}/post-process #
GET /wp/v2/menu-items GET /wp/v2/menu-items #
POST /wp/v2/menu-items POST /wp/v2/menu-items #
GET /wp/v2/menu-items/{id} GET /wp/v2/menu-items/{id} #
POST /wp/v2/menu-items/{id} POST /wp/v2/menu-items/{id} #
DELETE /wp/v2/menu-items/{id} DELETE /wp/v2/menu-items/{id} #
GET /wp/v2/menu-items/{id}/autosaves GET /wp/v2/menu-items/{id}/autosaves #
POST /wp/v2/menu-items/{id}/autosaves POST /wp/v2/menu-items/{id}/autosaves #
GET /wp/v2/menu-items/{parent}/autosaves/{id} GET /wp/v2/menu-items/{parent}/autosaves/{id} #
GET /wp/v2/menu-locations GET /wp/v2/menu-locations #
GET /wp/v2/menu-locations/{location} GET /wp/v2/menu-locations/{location} #
GET /wp/v2/menus GET /wp/v2/menus #
POST /wp/v2/menus POST /wp/v2/menus #
GET /wp/v2/menus/{id} GET /wp/v2/menus/{id} #
POST /wp/v2/menus/{id} POST /wp/v2/menus/{id} #
DELETE /wp/v2/menus/{id} DELETE /wp/v2/menus/{id} #
GET /wp/v2/navigation GET /wp/v2/navigation #
POST /wp/v2/navigation POST /wp/v2/navigation #
GET /wp/v2/navigation/{id} GET /wp/v2/navigation/{id} #
POST /wp/v2/navigation/{id} POST /wp/v2/navigation/{id} #
DELETE /wp/v2/navigation/{id} DELETE /wp/v2/navigation/{id} #
GET /wp/v2/navigation/{id}/autosaves GET /wp/v2/navigation/{id}/autosaves #
POST /wp/v2/navigation/{id}/autosaves POST /wp/v2/navigation/{id}/autosaves #
GET /wp/v2/navigation/{parent}/autosaves/{id} GET /wp/v2/navigation/{parent}/autosaves/{id} #
GET /wp/v2/navigation/{parent}/revisions GET /wp/v2/navigation/{parent}/revisions #
GET /wp/v2/navigation/{parent}/revisions/{id} GET /wp/v2/navigation/{parent}/revisions/{id} #
DELETE /wp/v2/navigation/{parent}/revisions/{id} DELETE /wp/v2/navigation/{parent}/revisions/{id} #
GET /wp/v2/pages GET /wp/v2/pages #
POST /wp/v2/pages POST /wp/v2/pages #
GET /wp/v2/pages/{id} GET /wp/v2/pages/{id} #
POST /wp/v2/pages/{id} POST /wp/v2/pages/{id} #
DELETE /wp/v2/pages/{id} DELETE /wp/v2/pages/{id} #
GET /wp/v2/pages/{id}/autosaves GET /wp/v2/pages/{id}/autosaves #
POST /wp/v2/pages/{id}/autosaves POST /wp/v2/pages/{id}/autosaves #
GET /wp/v2/pages/{parent}/autosaves/{id} GET /wp/v2/pages/{parent}/autosaves/{id} #
GET /wp/v2/pages/{parent}/revisions GET /wp/v2/pages/{parent}/revisions #
GET /wp/v2/pages/{parent}/revisions/{id} GET /wp/v2/pages/{parent}/revisions/{id} #
DELETE /wp/v2/pages/{parent}/revisions/{id} DELETE /wp/v2/pages/{parent}/revisions/{id} #
GET /wp/v2/pattern-directory/patterns GET /wp/v2/pattern-directory/patterns #
GET /wp/v2/plugins GET /wp/v2/plugins #
POST /wp/v2/plugins POST /wp/v2/plugins #
GET /wp/v2/plugins/{plugin} GET /wp/v2/plugins/{plugin} #
POST /wp/v2/plugins/{plugin} POST /wp/v2/plugins/{plugin} #
DELETE /wp/v2/plugins/{plugin} DELETE /wp/v2/plugins/{plugin} #
GET /wp/v2/posts GET /wp/v2/posts #
POST /wp/v2/posts POST /wp/v2/posts #
GET /wp/v2/posts/{id} GET /wp/v2/posts/{id} #
POST /wp/v2/posts/{id} POST /wp/v2/posts/{id} #
DELETE /wp/v2/posts/{id} DELETE /wp/v2/posts/{id} #
GET /wp/v2/posts/{id}/autosaves GET /wp/v2/posts/{id}/autosaves #
POST /wp/v2/posts/{id}/autosaves POST /wp/v2/posts/{id}/autosaves #
GET /wp/v2/posts/{parent}/autosaves/{id} GET /wp/v2/posts/{parent}/autosaves/{id} #
GET /wp/v2/posts/{parent}/revisions GET /wp/v2/posts/{parent}/revisions #
GET /wp/v2/posts/{parent}/revisions/{id} GET /wp/v2/posts/{parent}/revisions/{id} #
DELETE /wp/v2/posts/{parent}/revisions/{id} DELETE /wp/v2/posts/{parent}/revisions/{id} #
GET /wp/v2/search GET /wp/v2/search #
GET /wp/v2/settings GET /wp/v2/settings #
POST /wp/v2/settings POST /wp/v2/settings #
GET /wp/v2/sidebars GET /wp/v2/sidebars #
GET /wp/v2/sidebars/{id} GET /wp/v2/sidebars/{id} #
POST /wp/v2/sidebars/{id} POST /wp/v2/sidebars/{id} #
GET /wp/v2/statuses GET /wp/v2/statuses #
GET /wp/v2/statuses/{status} GET /wp/v2/statuses/{status} #
GET /wp/v2/tags GET /wp/v2/tags #
POST /wp/v2/tags POST /wp/v2/tags #
GET /wp/v2/tags/{id} GET /wp/v2/tags/{id} #
POST /wp/v2/tags/{id} POST /wp/v2/tags/{id} #
DELETE /wp/v2/tags/{id} DELETE /wp/v2/tags/{id} #
GET /wp/v2/taxonomies GET /wp/v2/taxonomies #
GET /wp/v2/taxonomies/{taxonomy} GET /wp/v2/taxonomies/{taxonomy} #
GET /wp/v2/template-parts GET /wp/v2/template-parts #
POST /wp/v2/template-parts POST /wp/v2/template-parts #
GET /wp/v2/template-parts/lookup GET /wp/v2/template-parts/lookup #
GET /wp/v2/template-parts/{id} GET /wp/v2/template-parts/{id} #
POST /wp/v2/template-parts/{id} POST /wp/v2/template-parts/{id} #
DELETE /wp/v2/template-parts/{id} DELETE /wp/v2/template-parts/{id} #
GET /wp/v2/template-parts/{id}/autosaves GET /wp/v2/template-parts/{id}/autosaves #
POST /wp/v2/template-parts/{id}/autosaves POST /wp/v2/template-parts/{id}/autosaves #
GET /wp/v2/template-parts/{parent}/autosaves/{id} GET /wp/v2/template-parts/{parent}/autosaves/{id} #
GET /wp/v2/template-parts/{parent}/revisions GET /wp/v2/template-parts/{parent}/revisions #
GET /wp/v2/template-parts/{parent}/revisions/{id} GET /wp/v2/template-parts/{parent}/revisions/{id} #
DELETE /wp/v2/template-parts/{parent}/revisions/{id} DELETE /wp/v2/template-parts/{parent}/revisions/{id} #
GET /wp/v2/templates GET /wp/v2/templates #
POST /wp/v2/templates POST /wp/v2/templates #
GET /wp/v2/templates/lookup GET /wp/v2/templates/lookup #
GET /wp/v2/templates/{id} GET /wp/v2/templates/{id} #
POST /wp/v2/templates/{id} POST /wp/v2/templates/{id} #
DELETE /wp/v2/templates/{id} DELETE /wp/v2/templates/{id} #
GET /wp/v2/templates/{id}/autosaves GET /wp/v2/templates/{id}/autosaves #
POST /wp/v2/templates/{id}/autosaves POST /wp/v2/templates/{id}/autosaves #
GET /wp/v2/templates/{parent}/autosaves/{id} GET /wp/v2/templates/{parent}/autosaves/{id} #
GET /wp/v2/templates/{parent}/revisions GET /wp/v2/templates/{parent}/revisions #
GET /wp/v2/templates/{parent}/revisions/{id} GET /wp/v2/templates/{parent}/revisions/{id} #
DELETE /wp/v2/templates/{parent}/revisions/{id} DELETE /wp/v2/templates/{parent}/revisions/{id} #
GET /wp/v2/themes GET /wp/v2/themes #
GET /wp/v2/themes/{stylesheet} GET /wp/v2/themes/{stylesheet} #
GET /wp/v2/types GET /wp/v2/types #
GET /wp/v2/types/{type} GET /wp/v2/types/{type} #
GET /wp/v2/users GET /wp/v2/users #
POST /wp/v2/users POST /wp/v2/users #
GET /wp/v2/users/me GET /wp/v2/users/me #
POST /wp/v2/users/me POST /wp/v2/users/me #
DELETE /wp/v2/users/me DELETE /wp/v2/users/me #
GET /wp/v2/users/{id} GET /wp/v2/users/{id} #
POST /wp/v2/users/{id} POST /wp/v2/users/{id} #
DELETE /wp/v2/users/{id} DELETE /wp/v2/users/{id} #
GET /wp/v2/users/{user_id}/application-passwords GET /wp/v2/users/{user_id}/application-passwords #
POST /wp/v2/users/{user_id}/application-passwords POST /wp/v2/users/{user_id}/application-passwords #
DELETE /wp/v2/users/{user_id}/application-passwords DELETE /wp/v2/users/{user_id}/application-passwords #
GET /wp/v2/users/{user_id}/application-passwords/introspect GET /wp/v2/users/{user_id}/application-passwords/introspect #
GET /wp/v2/users/{user_id}/application-passwords/{uuid} GET /wp/v2/users/{user_id}/application-passwords/{uuid} #
POST /wp/v2/users/{user_id}/application-passwords/{uuid} POST /wp/v2/users/{user_id}/application-passwords/{uuid} #
DELETE /wp/v2/users/{user_id}/application-passwords/{uuid} DELETE /wp/v2/users/{user_id}/application-passwords/{uuid} #
GET /wp/v2/widget-types GET /wp/v2/widget-types #
GET /wp/v2/widget-types/{id} GET /wp/v2/widget-types/{id} #
POST /wp/v2/widget-types/{id}/encode POST /wp/v2/widget-types/{id}/encode #
POST /wp/v2/widget-types/{id}/render POST /wp/v2/widget-types/{id}/render #
GET /wp/v2/widgets GET /wp/v2/widgets #
POST /wp/v2/widgets POST /wp/v2/widgets #
GET /wp/v2/widgets/{id} GET /wp/v2/widgets/{id} #
POST /wp/v2/widgets/{id} POST /wp/v2/widgets/{id} #
DELETE /wp/v2/widgets/{id} DELETE /wp/v2/widgets/{id} #
GET /wp/v2/wp_pattern_category GET /wp/v2/wp_pattern_category #
POST /wp/v2/wp_pattern_category POST /wp/v2/wp_pattern_category #
GET /wp/v2/wp_pattern_category/{id} GET /wp/v2/wp_pattern_category/{id} #
POST /wp/v2/wp_pattern_category/{id} POST /wp/v2/wp_pattern_category/{id} #
DELETE /wp/v2/wp_pattern_category/{id} DELETE /wp/v2/wp_pattern_category/{id} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bxp-wordpress-rest-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

boston-properties-wordpress-rest-openapi.yml Raw ↑
# Derived by the API Evangelist enrichment pipeline from BXP's own WordPress REST
# route-discovery document (https://www.bxp.com/wp-json/, HTTP 200, 2026-09-04).
# Nothing in this file was invented: every path, method, parameter, default and enum
# is a mechanical transform of that document. See openapi/boston-properties-wp-json-discovery.json
# for the verbatim source.
openapi: 3.1.0
info:
  title: BXP WordPress REST API (wp/v2)
  version: wp/v2
  description: The WordPress REST API namespace `wp/v2` as served by BXP (Boston Properties) at https://www.bxp.com/wp-json/.
    BXP publishes no first-party developer documentation for this surface; it is the stock WordPress content
    API exposed by the corporate site (WP Engine hosted). Every path, method and parameter in this document
    was mechanically derived from BXP's own route-discovery document at https://www.bxp.com/wp-json/ (HTTP
    200, 332 routes, fetched 2026-09-04). Nothing here was authored by hand. Anonymous reads were verified
    on /wp/v2/pages, /wp/v2/posts, /wp/v2/types, /wp/v2/categories, /wp/v2/search and /wp/v2/gl_js_maps;
    /wp/v2/settings returns 401 rest_forbidden. Write operations require authentication (WordPress application
    passwords or a cookie + X-WP-Nonce) and are not open to third parties.
  contact:
    name: BXP
    url: https://www.bxp.com/contact
  termsOfService: https://www.bxp.com/terms-of-service
externalDocs:
  description: Upstream WordPress REST API handbook (not authored by BXP)
  url: https://developer.wordpress.org/rest-api/
servers:
- url: https://www.bxp.com/wp-json
  description: BXP corporate site WordPress REST API
tags:
- name: block-directory
- name: block-patterns
- name: block-renderer
- name: block-types
- name: blocks
- name: categories
- name: comments
- name: font-collections
- name: font-families
- name: gl_js_maps
- name: global-styles
- name: icons
- name: index
- 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: widget-types
- name: widgets
- name: wp_pattern_category
paths:
  /wp/v2:
    get:
      operationId: getWpV2
      summary: GET /wp/v2
      tags:
      - index
      parameters:
      - name: context
        in: query
        required: false
        schema:
          default: view
      - name: namespace
        in: query
        required: false
        schema:
          default: wp/v2
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-directory/search:
    get:
      operationId: getWpV2BlockDirectorySearch
      summary: GET /wp/v2/block-directory/search
      tags:
      - block-directory
      parameters:
      - 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
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        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.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-patterns/categories:
    get:
      operationId: getWpV2BlockPatternsCategories
      summary: GET /wp/v2/block-patterns/categories
      tags:
      - block-patterns
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-patterns/patterns:
    get:
      operationId: getWpV2BlockPatternsPatterns
      summary: GET /wp/v2/block-patterns/patterns
      tags:
      - block-patterns
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-renderer/{name}:
    parameters:
    - name: name
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getWpV2BlockRendererByName
      summary: GET /wp/v2/block-renderer/{name}
      tags:
      - block-renderer
      parameters:
      - name: attributes
        in: query
        required: false
        schema:
          type: object
          default: &id001 []
        description: Attributes for the block.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum: &id002
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: post_id
        in: query
        required: false
        schema:
          type: integer
        description: ID of the post context.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: createWpV2BlockRendererByName
      summary: POST /wp/v2/block-renderer/{name}
      tags:
      - block-renderer
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                attributes:
                  type: object
                  default: *id001
                  description: Attributes for the block.
                context:
                  type: string
                  enum: *id002
                  default: view
                  description: Scope under which the request is made; determines fields present in response.
                post_id:
                  type: integer
                  description: ID of the post context.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - basicAuth: []
      - cookieNonce: []
  /wp/v2/block-types:
    get:
      operationId: getWpV2BlockTypes
      summary: GET /wp/v2/block-types
      tags:
      - block-types
      parameters:
      - 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: namespace
        in: query
        required: false
        schema:
          type: string
        description: Block namespace.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-types/{namespace}:
    parameters:
    - name: namespace
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getWpV2BlockTypesByNamespace
      summary: GET /wp/v2/block-types/{namespace}
      tags:
      - block-types
      parameters:
      - 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.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/block-types/{namespace}/{name}:
    parameters:
    - name: namespace
      in: path
      required: true
      schema:
        type: string
    - name: name
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getWpV2BlockTypesByNamespaceByName
      summary: GET /wp/v2/block-types/{namespace}/{name}
      tags:
      - block-types
      parameters:
      - 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.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/blocks:
    get:
      operationId: getWpV2Blocks
      summary: GET /wp/v2/blocks
      tags:
      - blocks
      parameters:
      - 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: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - 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: 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: 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: 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: 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: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        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: search_columns
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
        description: Array of column names to be searched.
      - name: search_semantics
        in: query
        required: false
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - 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
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - acf-disabled
            - email_sent
            - email_failed
            - email_scheduled
            - any
        description: Limit result set to posts assigned one or more statuses.
      - name: tax_relation
        in: query
        required: false
        schema:
          type: string
          enum:
          - AND
          - OR
        description: Limit result set based on relationship between multiple taxonomies.
      - name: wp_pattern_category
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items with specific terms assigned in the wp_pattern_category
          taxonomy.
      - name: wp_pattern_category_exclude
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items except those with specific terms assigned in the wp_pattern_category
          taxonomy.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: createWpV2Blocks
      summary: POST /wp/v2/blocks
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: object
                  description: The content for 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.
                excerpt:
                  type: object
                  description: The excerpt for the post.
                meta:
                  type: object
                  description: Meta fields.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                slug:
                  type: string
                  description: An alphanumeric identifier for the post unique to its type.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: A named status for the post.
                template:
                  type: string
                  description: The theme file to use to display the post.
                title:
                  type: object
                  description: The title for the post.
                wp_pattern_category:
                  type: array
                  items:
                    type: integer
                  description: The terms assigned to the post in the wp_pattern_category taxonomy.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages (collection routes)
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev)
              schema:
                type: string
          content:
            application/json:
              schema: {}
        '400':
          description: rest_invalid_param — a parameter failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: rest_forbidden — authentication required for this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: rest_forbidden / rest_cannot_* — authenticated but not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: rest_no_route / rest_post_invalid_id — route or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - basicAuth: []
      - cookieNonce: []
  /wp/v2/blocks/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getWpV2BlocksById
      summary: GET /wp/v2/blocks/{id}
      tags:
      - blocks
      parameters:
      - 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.
      responses:
        '200':
          description: Success
          headers:
            X-WP-Total:
              description: Total number of matching records (collection routes)
              

# --- truncated at 32 KB (533 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/boston-properties/refs/heads/main/openapi/boston-properties-wordpress-rest-openapi.yml