VICE WordPress REST API

The live WordPress REST API served by vice.com. 601 routes are declared by the route-discovery document at https://www.vice.com/wp-json/, which the site advertises in the head of every page as . The core content namespaces read anonymously — posts (822,047 of them per the X-WP-Total header), pages, media, search, the vice_section / profile / sp_product custom post types, and the category, tag, byline, brand and platform-language taxonomies. Users, settings, block types and every editorial plugin namespace return HTTP 401.

Operations 379

Showing the first 250 of 379. The full set is in the contract, and via get_provider_operations.

GET / GET / #
POST /batch/v1 POST /batch/v1 #
GET /oembed/1.0 GET /oembed/1.0 #
GET /oembed/1.0/embed GET /oembed/1.0/embed #
GET /oembed/1.0/proxy GET /oembed/1.0/proxy #
GET /wp-abilities/v1 GET /wp-abilities/v1 #
GET /wp-abilities/v1/abilities GET /wp-abilities/v1/abilities #
GET /wp-abilities/v1/abilities/{name} GET /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+) #
GET /wp-abilities/v1/abilities/{name}/run GET /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+?)/run #
POST /wp-abilities/v1/abilities/{name}/run POST /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+?)/run #
PUT /wp-abilities/v1/abilities/{name}/run PUT /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+?)/run #
PATCH /wp-abilities/v1/abilities/{name}/run PATCH /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+?)/run #
DELETE /wp-abilities/v1/abilities/{name}/run DELETE /wp-abilities/v1/abilities/(?P[a-zA-Z0-9\-\/]+?)/run #
GET /wp-abilities/v1/categories GET /wp-abilities/v1/categories #
GET /wp-abilities/v1/categories/{slug} GET /wp-abilities/v1/categories/(?P[a-z0-9]+(?:-[a-z0-9]+)*) #
GET /wp/v2 GET /wp/v2 #
GET /wp/v2/activity-log-events GET /wp/v2/activity-log-events #
POST /wp/v2/activity-log-events POST /wp/v2/activity-log-events #
GET /wp/v2/activity-log-events/{id} GET /wp/v2/activity-log-events/(?P[\d]+) #
POST /wp/v2/activity-log-events/{id} POST /wp/v2/activity-log-events/(?P[\d]+) #
PUT /wp/v2/activity-log-events/{id} PUT /wp/v2/activity-log-events/(?P[\d]+) #
PATCH /wp/v2/activity-log-events/{id} PATCH /wp/v2/activity-log-events/(?P[\d]+) #
DELETE /wp/v2/activity-log-events/{id} DELETE /wp/v2/activity-log-events/(?P[\d]+) #
GET /wp/v2/activity-log-events/{id}/autosaves GET /wp/v2/activity-log-events/(?P[\d]+)/autosaves #
POST /wp/v2/activity-log-events/{id}/autosaves POST /wp/v2/activity-log-events/(?P[\d]+)/autosaves #
GET /wp/v2/activity-log-events/{parent}/autosaves/{id} GET /wp/v2/activity-log-events/(?P[\d]+)/autosaves/(?P[\d]+) #
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/(?P[a-z0-9-]+/[a-z0-9-]+) #
POST /wp/v2/block-renderer/{name} POST /wp/v2/block-renderer/(?P[a-z0-9-]+/[a-z0-9-]+) #
GET /wp/v2/block-types GET /wp/v2/block-types #
GET /wp/v2/block-types/{namespace} GET /wp/v2/block-types/(?P[a-zA-Z0-9_-]+) #
GET /wp/v2/block-types/{namespace}/{name} GET /wp/v2/block-types/(?P[a-zA-Z0-9_-]+)/(?P[a-zA-Z0-9_-]+) #
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/(?P[\d]+) #
POST /wp/v2/blocks/{id} POST /wp/v2/blocks/(?P[\d]+) #
PUT /wp/v2/blocks/{id} PUT /wp/v2/blocks/(?P[\d]+) #
PATCH /wp/v2/blocks/{id} PATCH /wp/v2/blocks/(?P[\d]+) #
DELETE /wp/v2/blocks/{id} DELETE /wp/v2/blocks/(?P[\d]+) #
GET /wp/v2/blocks/{id}/autosaves GET /wp/v2/blocks/(?P[\d]+)/autosaves #
POST /wp/v2/blocks/{id}/autosaves POST /wp/v2/blocks/(?P[\d]+)/autosaves #
GET /wp/v2/blocks/{parent}/autosaves/{id} GET /wp/v2/blocks/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/blocks/{parent}/revisions GET /wp/v2/blocks/(?P[\d]+)/revisions #
GET /wp/v2/blocks/{parent}/revisions/{id} GET /wp/v2/blocks/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/blocks/{parent}/revisions/{id} DELETE /wp/v2/blocks/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/brands GET /wp/v2/brands #
POST /wp/v2/brands POST /wp/v2/brands #
GET /wp/v2/brands/{id} GET /wp/v2/brands/(?P[\d]+) #
POST /wp/v2/brands/{id} POST /wp/v2/brands/(?P[\d]+) #
PUT /wp/v2/brands/{id} PUT /wp/v2/brands/(?P[\d]+) #
PATCH /wp/v2/brands/{id} PATCH /wp/v2/brands/(?P[\d]+) #
DELETE /wp/v2/brands/{id} DELETE /wp/v2/brands/(?P[\d]+) #
GET /wp/v2/byline GET /wp/v2/byline #
POST /wp/v2/byline POST /wp/v2/byline #
GET /wp/v2/byline/{id} GET /wp/v2/byline/(?P[\d]+) #
POST /wp/v2/byline/{id} POST /wp/v2/byline/(?P[\d]+) #
PUT /wp/v2/byline/{id} PUT /wp/v2/byline/(?P[\d]+) #
PATCH /wp/v2/byline/{id} PATCH /wp/v2/byline/(?P[\d]+) #
DELETE /wp/v2/byline/{id} DELETE /wp/v2/byline/(?P[\d]+) #
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/(?P[\d]+) #
POST /wp/v2/categories/{id} POST /wp/v2/categories/(?P[\d]+) #
PUT /wp/v2/categories/{id} PUT /wp/v2/categories/(?P[\d]+) #
PATCH /wp/v2/categories/{id} PATCH /wp/v2/categories/(?P[\d]+) #
DELETE /wp/v2/categories/{id} DELETE /wp/v2/categories/(?P[\d]+) #
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/(?P[\d]+) #
POST /wp/v2/comments/{id} POST /wp/v2/comments/(?P[\d]+) #
PUT /wp/v2/comments/{id} PUT /wp/v2/comments/(?P[\d]+) #
PATCH /wp/v2/comments/{id} PATCH /wp/v2/comments/(?P[\d]+) #
DELETE /wp/v2/comments/{id} DELETE /wp/v2/comments/(?P[\d]+) #
GET /wp/v2/feedback GET /wp/v2/feedback #
POST /wp/v2/feedback POST /wp/v2/feedback #
GET /wp/v2/feedback/{id} GET /wp/v2/feedback/(?P[\d]+) #
POST /wp/v2/feedback/{id} POST /wp/v2/feedback/(?P[\d]+) #
PUT /wp/v2/feedback/{id} PUT /wp/v2/feedback/(?P[\d]+) #
PATCH /wp/v2/feedback/{id} PATCH /wp/v2/feedback/(?P[\d]+) #
DELETE /wp/v2/feedback/{id} DELETE /wp/v2/feedback/(?P[\d]+) #
POST /wp/v2/feedback/{id}/read POST /wp/v2/feedback/(?P\d+)/read #
POST /wp/v2/feedback/bulk_actions POST /wp/v2/feedback/bulk_actions #
GET /wp/v2/feedback/config GET /wp/v2/feedback/config #
GET /wp/v2/feedback/counts GET /wp/v2/feedback/counts #
POST /wp/v2/feedback/dismiss-classic-forms-notice POST /wp/v2/feedback/dismiss-classic-forms-notice #
GET /wp/v2/feedback/filters GET /wp/v2/feedback/filters #
GET /wp/v2/feedback/integrations GET /wp/v2/feedback/integrations #
GET /wp/v2/feedback/integrations-metadata GET /wp/v2/feedback/integrations-metadata #
GET /wp/v2/feedback/integrations/{slug} GET /wp/v2/feedback/integrations/(?P[\w-]+) #
DELETE /wp/v2/feedback/integrations/{slug} DELETE /wp/v2/feedback/integrations/(?P[\w-]+) #
DELETE /wp/v2/feedback/trash DELETE /wp/v2/feedback/trash #
GET /wp/v2/font-collections GET /wp/v2/font-collections #
GET /wp/v2/font-collections/{slug} GET /wp/v2/font-collections/(?P[\/\w-]+) #
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/(?P[\d]+)/font-faces #
POST /wp/v2/font-families/{font_family_id}/font-faces POST /wp/v2/font-families/(?P[\d]+)/font-faces #
GET /wp/v2/font-families/{font_family_id}/font-faces/{id} GET /wp/v2/font-families/(?P[\d]+)/font-faces/(?P[\d]+) #
DELETE /wp/v2/font-families/{font_family_id}/font-faces/{id} DELETE /wp/v2/font-families/(?P[\d]+)/font-faces/(?P[\d]+) #
GET /wp/v2/font-families/{id} GET /wp/v2/font-families/(?P[\d]+) #
POST /wp/v2/font-families/{id} POST /wp/v2/font-families/(?P[\d]+) #
PUT /wp/v2/font-families/{id} PUT /wp/v2/font-families/(?P[\d]+) #
PATCH /wp/v2/font-families/{id} PATCH /wp/v2/font-families/(?P[\d]+) #
DELETE /wp/v2/font-families/{id} DELETE /wp/v2/font-families/(?P[\d]+) #
GET /wp/v2/global-styles/{id} GET /wp/v2/global-styles/(?P[\/\d+]+) #
POST /wp/v2/global-styles/{id} POST /wp/v2/global-styles/(?P[\/\d+]+) #
PUT /wp/v2/global-styles/{id} PUT /wp/v2/global-styles/(?P[\/\d+]+) #
PATCH /wp/v2/global-styles/{id} PATCH /wp/v2/global-styles/(?P[\/\d+]+) #
GET /wp/v2/global-styles/{parent}/revisions GET /wp/v2/global-styles/(?P[\d]+)/revisions #
GET /wp/v2/global-styles/{parent}/revisions/{id} GET /wp/v2/global-styles/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/global-styles/themes/{stylesheet}/variations GET /wp/v2/global-styles/themes/(?P[\/\s%\w\.\(\)\[\]\@_\-]+)/variations #
GET /wp/v2/global-styles/themes/{stylesheet} GET /wp/v2/global-styles/themes/(?P[^\/:<>\*\?"\|]+(?:\/[^\/:<>\*\?"\|]+)?) #
GET /wp/v2/icons GET /wp/v2/icons #
GET /wp/v2/icons/{name} GET /wp/v2/icons/(?P[a-z][a-z0-9-]*/[a-z][a-z0-9-]*) #
GET /wp/v2/jetpack-forms GET /wp/v2/jetpack-forms #
POST /wp/v2/jetpack-forms POST /wp/v2/jetpack-forms #
GET /wp/v2/jetpack-forms/{id} GET /wp/v2/jetpack-forms/(?P[\d]+) #
POST /wp/v2/jetpack-forms/{id} POST /wp/v2/jetpack-forms/(?P[\d]+) #
PUT /wp/v2/jetpack-forms/{id} PUT /wp/v2/jetpack-forms/(?P[\d]+) #
PATCH /wp/v2/jetpack-forms/{id} PATCH /wp/v2/jetpack-forms/(?P[\d]+) #
DELETE /wp/v2/jetpack-forms/{id} DELETE /wp/v2/jetpack-forms/(?P[\d]+) #
GET /wp/v2/jetpack-forms/{id}/autosaves GET /wp/v2/jetpack-forms/(?P[\d]+)/autosaves #
POST /wp/v2/jetpack-forms/{id}/autosaves POST /wp/v2/jetpack-forms/(?P[\d]+)/autosaves #
GET /wp/v2/jetpack-forms/{id}/preview-url GET /wp/v2/jetpack-forms/(?P[\d]+)/preview-url #
GET /wp/v2/jetpack-forms/{parent}/autosaves/{id} GET /wp/v2/jetpack-forms/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/jetpack-forms/{parent}/revisions GET /wp/v2/jetpack-forms/(?P[\d]+)/revisions #
GET /wp/v2/jetpack-forms/{parent}/revisions/{id} GET /wp/v2/jetpack-forms/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/jetpack-forms/{parent}/revisions/{id} DELETE /wp/v2/jetpack-forms/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/jetpack-forms/status-counts GET /wp/v2/jetpack-forms/status-counts #
GET /wp/v2/jetpack-search-overlay GET /wp/v2/jetpack-search-overlay #
POST /wp/v2/jetpack-search-overlay POST /wp/v2/jetpack-search-overlay #
GET /wp/v2/jetpack-search-overlay/{id} GET /wp/v2/jetpack-search-overlay/(?P[\d]+) #
POST /wp/v2/jetpack-search-overlay/{id} POST /wp/v2/jetpack-search-overlay/(?P[\d]+) #
PUT /wp/v2/jetpack-search-overlay/{id} PUT /wp/v2/jetpack-search-overlay/(?P[\d]+) #
PATCH /wp/v2/jetpack-search-overlay/{id} PATCH /wp/v2/jetpack-search-overlay/(?P[\d]+) #
DELETE /wp/v2/jetpack-search-overlay/{id} DELETE /wp/v2/jetpack-search-overlay/(?P[\d]+) #
GET /wp/v2/jetpack-search-overlay/{id}/autosaves GET /wp/v2/jetpack-search-overlay/(?P[\d]+)/autosaves #
POST /wp/v2/jetpack-search-overlay/{id}/autosaves POST /wp/v2/jetpack-search-overlay/(?P[\d]+)/autosaves #
GET /wp/v2/jetpack-search-overlay/{parent}/autosaves/{id} GET /wp/v2/jetpack-search-overlay/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/jetpack-search-overlay/{parent}/revisions GET /wp/v2/jetpack-search-overlay/(?P[\d]+)/revisions #
GET /wp/v2/jetpack-search-overlay/{parent}/revisions/{id} GET /wp/v2/jetpack-search-overlay/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/jetpack-search-overlay/{parent}/revisions/{id} DELETE /wp/v2/jetpack-search-overlay/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/jp_pay_order GET /wp/v2/jp_pay_order #
POST /wp/v2/jp_pay_order POST /wp/v2/jp_pay_order #
GET /wp/v2/jp_pay_order/{id} GET /wp/v2/jp_pay_order/(?P[\d]+) #
POST /wp/v2/jp_pay_order/{id} POST /wp/v2/jp_pay_order/(?P[\d]+) #
PUT /wp/v2/jp_pay_order/{id} PUT /wp/v2/jp_pay_order/(?P[\d]+) #
PATCH /wp/v2/jp_pay_order/{id} PATCH /wp/v2/jp_pay_order/(?P[\d]+) #
DELETE /wp/v2/jp_pay_order/{id} DELETE /wp/v2/jp_pay_order/(?P[\d]+) #
GET /wp/v2/jp_pay_product GET /wp/v2/jp_pay_product #
POST /wp/v2/jp_pay_product POST /wp/v2/jp_pay_product #
GET /wp/v2/jp_pay_product/{id} GET /wp/v2/jp_pay_product/(?P[\d]+) #
POST /wp/v2/jp_pay_product/{id} POST /wp/v2/jp_pay_product/(?P[\d]+) #
PUT /wp/v2/jp_pay_product/{id} PUT /wp/v2/jp_pay_product/(?P[\d]+) #
PATCH /wp/v2/jp_pay_product/{id} PATCH /wp/v2/jp_pay_product/(?P[\d]+) #
DELETE /wp/v2/jp_pay_product/{id} DELETE /wp/v2/jp_pay_product/(?P[\d]+) #
GET /wp/v2/jp_pay_product/{id}/autosaves GET /wp/v2/jp_pay_product/(?P[\d]+)/autosaves #
POST /wp/v2/jp_pay_product/{id}/autosaves POST /wp/v2/jp_pay_product/(?P[\d]+)/autosaves #
GET /wp/v2/jp_pay_product/{parent}/autosaves/{id} GET /wp/v2/jp_pay_product/(?P[\d]+)/autosaves/(?P[\d]+) #
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/(?P[\d]+) #
POST /wp/v2/media/{id} POST /wp/v2/media/(?P[\d]+) #
PUT /wp/v2/media/{id} PUT /wp/v2/media/(?P[\d]+) #
PATCH /wp/v2/media/{id} PATCH /wp/v2/media/(?P[\d]+) #
DELETE /wp/v2/media/{id} DELETE /wp/v2/media/(?P[\d]+) #
POST /wp/v2/media/{id}/edit POST /wp/v2/media/(?P[\d]+)/edit #
POST /wp/v2/media/{id}/post-process POST /wp/v2/media/(?P[\d]+)/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/(?P[\d]+) #
POST /wp/v2/menu-items/{id} POST /wp/v2/menu-items/(?P[\d]+) #
PUT /wp/v2/menu-items/{id} PUT /wp/v2/menu-items/(?P[\d]+) #
PATCH /wp/v2/menu-items/{id} PATCH /wp/v2/menu-items/(?P[\d]+) #
DELETE /wp/v2/menu-items/{id} DELETE /wp/v2/menu-items/(?P[\d]+) #
GET /wp/v2/menu-items/{id}/autosaves GET /wp/v2/menu-items/(?P[\d]+)/autosaves #
POST /wp/v2/menu-items/{id}/autosaves POST /wp/v2/menu-items/(?P[\d]+)/autosaves #
GET /wp/v2/menu-items/{parent}/autosaves/{id} GET /wp/v2/menu-items/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/menu-locations GET /wp/v2/menu-locations #
GET /wp/v2/menu-locations/{location} GET /wp/v2/menu-locations/(?P[\w-]+) #
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/(?P[\d]+) #
POST /wp/v2/menus/{id} POST /wp/v2/menus/(?P[\d]+) #
PUT /wp/v2/menus/{id} PUT /wp/v2/menus/(?P[\d]+) #
PATCH /wp/v2/menus/{id} PATCH /wp/v2/menus/(?P[\d]+) #
DELETE /wp/v2/menus/{id} DELETE /wp/v2/menus/(?P[\d]+) #
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/(?P[\d]+) #
POST /wp/v2/navigation/{id} POST /wp/v2/navigation/(?P[\d]+) #
PUT /wp/v2/navigation/{id} PUT /wp/v2/navigation/(?P[\d]+) #
PATCH /wp/v2/navigation/{id} PATCH /wp/v2/navigation/(?P[\d]+) #
DELETE /wp/v2/navigation/{id} DELETE /wp/v2/navigation/(?P[\d]+) #
GET /wp/v2/navigation/{id}/autosaves GET /wp/v2/navigation/(?P[\d]+)/autosaves #
POST /wp/v2/navigation/{id}/autosaves POST /wp/v2/navigation/(?P[\d]+)/autosaves #
GET /wp/v2/navigation/{parent}/autosaves/{id} GET /wp/v2/navigation/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/navigation/{parent}/revisions GET /wp/v2/navigation/(?P[\d]+)/revisions #
GET /wp/v2/navigation/{parent}/revisions/{id} GET /wp/v2/navigation/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/navigation/{parent}/revisions/{id} DELETE /wp/v2/navigation/(?P[\d]+)/revisions/(?P[\d]+) #
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/(?P[\d]+) #
POST /wp/v2/pages/{id} POST /wp/v2/pages/(?P[\d]+) #
PUT /wp/v2/pages/{id} PUT /wp/v2/pages/(?P[\d]+) #
PATCH /wp/v2/pages/{id} PATCH /wp/v2/pages/(?P[\d]+) #
DELETE /wp/v2/pages/{id} DELETE /wp/v2/pages/(?P[\d]+) #
GET /wp/v2/pages/{id}/autosaves GET /wp/v2/pages/(?P[\d]+)/autosaves #
POST /wp/v2/pages/{id}/autosaves POST /wp/v2/pages/(?P[\d]+)/autosaves #
GET /wp/v2/pages/{parent}/autosaves/{id} GET /wp/v2/pages/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/pages/{parent}/revisions GET /wp/v2/pages/(?P[\d]+)/revisions #
GET /wp/v2/pages/{parent}/revisions/{id} GET /wp/v2/pages/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/pages/{parent}/revisions/{id} DELETE /wp/v2/pages/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/pattern-directory/patterns GET /wp/v2/pattern-directory/patterns #
GET /wp/v2/platform-languages GET /wp/v2/platform-languages #
POST /wp/v2/platform-languages POST /wp/v2/platform-languages #
GET /wp/v2/platform-languages/{id} GET /wp/v2/platform-languages/(?P[\d]+) #
POST /wp/v2/platform-languages/{id} POST /wp/v2/platform-languages/(?P[\d]+) #
PUT /wp/v2/platform-languages/{id} PUT /wp/v2/platform-languages/(?P[\d]+) #
PATCH /wp/v2/platform-languages/{id} PATCH /wp/v2/platform-languages/(?P[\d]+) #
DELETE /wp/v2/platform-languages/{id} DELETE /wp/v2/platform-languages/(?P[\d]+) #
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/(?P[^.\/]+(?:\/[^.\/]+)?) #
POST /wp/v2/plugins/{plugin} POST /wp/v2/plugins/(?P[^.\/]+(?:\/[^.\/]+)?) #
PUT /wp/v2/plugins/{plugin} PUT /wp/v2/plugins/(?P[^.\/]+(?:\/[^.\/]+)?) #
PATCH /wp/v2/plugins/{plugin} PATCH /wp/v2/plugins/(?P[^.\/]+(?:\/[^.\/]+)?) #
DELETE /wp/v2/plugins/{plugin} DELETE /wp/v2/plugins/(?P[^.\/]+(?:\/[^.\/]+)?) #
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/(?P[\d]+) #
POST /wp/v2/posts/{id} POST /wp/v2/posts/(?P[\d]+) #
PUT /wp/v2/posts/{id} PUT /wp/v2/posts/(?P[\d]+) #
PATCH /wp/v2/posts/{id} PATCH /wp/v2/posts/(?P[\d]+) #
DELETE /wp/v2/posts/{id} DELETE /wp/v2/posts/(?P[\d]+) #
GET /wp/v2/posts/{id}/autosaves GET /wp/v2/posts/(?P[\d]+)/autosaves #
POST /wp/v2/posts/{id}/autosaves POST /wp/v2/posts/(?P[\d]+)/autosaves #
GET /wp/v2/posts/{parent}/autosaves/{id} GET /wp/v2/posts/(?P[\d]+)/autosaves/(?P[\d]+) #
GET /wp/v2/posts/{parent}/revisions GET /wp/v2/posts/(?P[\d]+)/revisions #
GET /wp/v2/posts/{parent}/revisions/{id} GET /wp/v2/posts/(?P[\d]+)/revisions/(?P[\d]+) #
DELETE /wp/v2/posts/{parent}/revisions/{id} DELETE /wp/v2/posts/(?P[\d]+)/revisions/(?P[\d]+) #
GET /wp/v2/profile GET /wp/v2/profile #
POST /wp/v2/profile POST /wp/v2/profile #
GET /wp/v2/profile/{id} GET /wp/v2/profile/(?P[\d]+) #
POST /wp/v2/profile/{id} POST /wp/v2/profile/(?P[\d]+) #
PUT /wp/v2/profile/{id} PUT /wp/v2/profile/(?P[\d]+) #
PATCH /wp/v2/profile/{id} PATCH /wp/v2/profile/(?P[\d]+) #

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/vice-media-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vice-media-wp-rest-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: VICE WordPress REST API
  version: wp/v2
  summary: The live WordPress REST API served by VICE (vice.com) at https://www.vice.com/wp-json/.
  description: |-
    Derived mechanically and verbatim from the route-discovery document the VICE (vice.com) web server publishes at https://www.vice.com/wp-json/ (fetched 2026-09-04, HTTP 200). Every path, method, parameter name, type, default, enum and required flag in this document was read from that live response; nothing was invented.

    The provider advertises this surface itself: every page on the site carries `<link rel="https://api.w.org/" href="https://www.vice.com/wp-json/" />` in its head, and `https://www.vice.com/robots.txt` disallows nothing.

    This is the content-management and syndication API of a publishing property, not a commercial developer product. It is included because it is a real, live, self-describing HTTP contract on the brand's own host that serves the public editorial archive anonymously.

    Only the WordPress core namespaces are represented (`wp/v2`, `wp-abilities/v1`, `oembed/1.0`, and the root index). Third-party and operator plugin namespaces advertised by the same discovery document — `akismet/v1`, `apple-news/v1`, `block-visibility/v1`, `byline-manager/v1`, `cron-control/v1`, `duplicate-post/v1`, `elasticpress/v1`, `jetpack-boost/v1`, `jetpack/v4`, `jetpack/v4/explat`, `jetpack/v4/import`, `jetpack/v4/stats-app`, `my-jetpack/v1`, `post-smtp/v1`, `post-smtp/v2`, `psd/v1`, `savage-api-helper/v1`, `savage-platform/v1`, `savage-platform/v1/blocks`, `savage/v1`, `two-factor/1.0`, `vip/v1`, `vt/v1`, `wp-block-editor/v1`, `wp-curate/v1`, `wp-parsely/v1`, `wp-site-health/v1`, `wpcom/v2`, `wpcom/v3`, `yoast/v1` — are intentionally excluded as vendor plugin internals; all of them were observed returning HTTP 401 anonymously.
  contact:
    name: VICE Media security / responsible disclosure
    email: infosec@vice.com
    url: https://www.vice.com/en/vice-responsible-disclosure-policy/
  termsOfService: https://www.vice.com/en/terms/
  x-derived-from: https://www.vice.com/wp-json/
  x-derived-on: '2026-09-04'
  x-apievangelist-method: derived
servers:
- url: https://www.vice.com
  description: Production
tags:
- name: oembed/1.0
  description: oEmbed 1.0 provider endpoints — discovery and proxy for embeddable representations of VICE articles
    and videos.
- name: root
  description: REST API index / namespace and route discovery.
- name: wp-abilities/v1
  description: WordPress Abilities API — the registry of named abilities an agent can discover and run. Read and
    run are capability-gated (observed HTTP 401 anonymously).
- name: wp/v2
  description: WordPress core content API — posts, pages, media, custom post types (sections, profiles, products),
    taxonomies (categories, tags, bylines, brands, platform languages), search, types, statuses and settings.
components:
  securitySchemes:
    applicationPassword:
      type: http
      scheme: basic
      description: WordPress Application Passwords (HTTP Basic). The live discovery document declares this as the
        site's authentication method, with the authorization endpoint at https://www.vice.com/wp-admin/authorize-application.php.
    wpNonce:
      type: apiKey
      in: header
      name: X-WP-Nonce
      description: WordPress cookie-authentication nonce. Advertised by the live server in its Access-Control-Allow-Headers
        response header (Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type).
  schemas:
    WPError:
      type: object
      description: The WordPress REST error envelope, observed live on this host. It is NOT RFC 9457 application/problem+json.
      properties:
        code:
          type: string
          description: Machine-readable error code, e.g. rest_forbidden.
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status repeated in the body.
      required:
      - code
      - message
paths:
  /:
    get:
      operationId: get_root
      summary: GET /
      description: '`GET` on the WordPress REST route `/` in namespace `root`, as declared by the live route-discovery
        document at https://www.vice.com/wp-json/.'
      tags:
      - root
      parameters:
      - name: context
        in: query
        required: false
        schema:
          default: view
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /batch/v1:
    post:
      operationId: post_batch_v1
      summary: POST /batch/v1
      description: '`POST` on the WordPress REST route `/batch/v1` in namespace `root`, as declared by the live
        route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - root
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                validation:
                  type: string
                  enum:
                  - require-all-validate
                  - normal
                  default: normal
                requests:
                  type: array
                  items:
                    type: object
              required:
              - requests
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /oembed/1.0:
    get:
      operationId: get_oembed_1_0
      summary: GET /oembed/1.0
      description: '`GET` on the WordPress REST route `/oembed/1.0` in namespace `oembed/1.0`, as declared by the
        live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - oembed/1.0
      parameters:
      - name: namespace
        in: query
        required: false
        schema:
          default: oembed/1.0
      - name: context
        in: query
        required: false
        schema:
          default: view
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /oembed/1.0/embed:
    get:
      operationId: get_oembed_1_0_embed
      summary: GET /oembed/1.0/embed
      description: '`GET` on the WordPress REST route `/oembed/1.0/embed` in namespace `oembed/1.0`, as declared
        by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - oembed/1.0
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
          format: uri
        description: The URL of the resource for which to fetch oEmbed data.
      - name: format
        in: query
        required: false
        schema:
          default: json
      - name: maxwidth
        in: query
        required: false
        schema:
          default: 600
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /oembed/1.0/proxy:
    get:
      operationId: get_oembed_1_0_proxy
      summary: GET /oembed/1.0/proxy
      description: '`GET` on the WordPress REST route `/oembed/1.0/proxy` in namespace `oembed/1.0`, as declared
        by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - oembed/1.0
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
          format: uri
        description: The URL of the resource for which to fetch oEmbed data.
      - name: format
        in: query
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
        description: The oEmbed format to use.
      - name: maxwidth
        in: query
        required: false
        schema:
          type: integer
          default: 600
        description: The maximum width of the embed frame in pixels.
      - name: maxheight
        in: query
        required: false
        schema:
          type: integer
        description: The maximum height of the embed frame in pixels.
      - name: discover
        in: query
        required: false
        schema:
          type: boolean
          default: true
        description: Whether to perform an oEmbed discovery request for unsanctioned providers.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1:
    get:
      operationId: get_wp_abilities_v1
      summary: GET /wp-abilities/v1
      description: '`GET` on the WordPress REST route `/wp-abilities/v1` in namespace `wp-abilities/v1`, as declared
        by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      parameters:
      - name: namespace
        in: query
        required: false
        schema:
          default: wp-abilities/v1
      - name: context
        in: query
        required: false
        schema:
          default: view
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1/abilities:
    get:
      operationId: get_wp_abilities_v1_abilities
      summary: GET /wp-abilities/v1/abilities
      description: '`GET` on the WordPress REST route `/wp-abilities/v1/abilities` in namespace `wp-abilities/v1`,
        as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      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: 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: 50
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: category
        in: query
        required: false
        schema:
          type: string
        description: Limit results to abilities in specific ability category.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1/abilities/{name}:
    parameters:
    - name: name
      in: path
      required: true
      description: Path segment matched by the WordPress route pattern `[a-zA-Z0-9\-\/]+`.
      schema:
        type: string
        pattern: '[a-zA-Z0-9\-\/]+'
    get:
      operationId: get_wp_abilities_v1_abilities_by_name
      summary: GET /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+)
      description: '`GET` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+)` in
        namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1/abilities/{name}/run:
    parameters:
    - name: name
      in: path
      required: true
      description: Path segment matched by the WordPress route pattern `[a-zA-Z0-9\-\/]+?`.
      schema:
        type: string
        pattern: '[a-zA-Z0-9\-\/]+?'
    get:
      operationId: get_wp_abilities_v1_abilities_by_name_run
      summary: GET /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run
      description: '`GET` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      parameters:
      - name: input
        in: query
        required: false
        schema:
          type:
          - integer
          - number
          - boolean
          - string
          - array
          - object
          - 'null'
          default: null
        description: Input parameters for the ability execution.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: post_wp_abilities_v1_abilities_by_name_run
      summary: POST /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run
      description: '`POST` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type:
                  - integer
                  - number
                  - boolean
                  - string
                  - array
                  - object
                  - 'null'
                  default: null
                  description: Input parameters for the ability execution.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    put:
      operationId: put_wp_abilities_v1_abilities_by_name_run
      summary: PUT /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run
      description: '`PUT` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type:
                  - integer
                  - number
                  - boolean
                  - string
                  - array
                  - object
                  - 'null'
                  default: null
                  description: Input parameters for the ability execution.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    patch:
      operationId: patch_wp_abilities_v1_abilities_by_name_run
      summary: PATCH /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run
      description: '`PATCH` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type:
                  - integer
                  - number
                  - boolean
                  - string
                  - array
                  - object
                  - 'null'
                  default: null
                  description: Input parameters for the ability execution.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    delete:
      operationId: delete_wp_abilities_v1_abilities_by_name_run
      summary: DELETE /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run
      description: '`DELETE` on the WordPress REST route `/wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+?)/run`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      parameters:
      - name: input
        in: query
        required: false
        schema:
          type:
          - integer
          - number
          - boolean
          - string
          - array
          - object
          - 'null'
          default: null
        description: Input parameters for the ability execution.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1/categories:
    get:
      operationId: get_wp_abilities_v1_categories
      summary: GET /wp-abilities/v1/categories
      description: '`GET` on the WordPress REST route `/wp-abilities/v1/categories` in namespace `wp-abilities/v1`,
        as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      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: 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: 50
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-abilities/v1/categories/{slug}:
    parameters:
    - name: slug
      in: path
      required: true
      description: Path segment matched by the WordPress route pattern `[a-z0-9]+(?:-[a-z0-9]+)*`.
      schema:
        type: string
        pattern: '[a-z0-9]+(?:-[a-z0-9]+)*'
    get:
      operationId: get_wp_abilities_v1_categories_by_slug
      summary: GET /wp-abilities/v1/categories/(?P<slug>[a-z0-9]+(?:-[a-z0-9]+)*)
      description: '`GET` on the WordPress REST route `/wp-abilities/v1/categories/(?P<slug>[a-z0-9]+(?:-[a-z0-9]+)*)`
        in namespace `wp-abilities/v1`, as declared by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp-abilities/v1
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2:
    get:
      operationId: get_wp_v2
      summary: GET /wp/v2
      description: '`GET` on the WordPress REST route `/wp/v2` in namespace `wp/v2`, as declared by the live route-discovery
        document at https://www.vice.com/wp-json/.'
      tags:
      - wp/v2
      parameters:
      - name: namespace
        in: query
        required: false
        schema:
          default: wp/v2
      - name: context
        in: query
        required: false
        schema:
          default: view
      responses:
        '200':
          description: Success. WordPress returns the requested resource or collection as JSON.
          content:
            application/json:
              schema: {}
        '401':
          description: Not authenticated or not permitted. WordPress returns its standard error envelope, e.g. `{"code":"rest_forbidden","message":"Sorry,
            you are not allowed to do that.","data":{"status":401}}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/activity-log-events:
    get:
      operationId: get_wp_v2_activity_log_events
      summary: GET /wp/v2/activity-log-events
      description: '`GET` on the WordPress REST route `/wp/v2/activity-log-events` in namespace `wp/v2`, as declared
        by the live route-discovery document at https://www.vice.com/wp-json/.'
      tags:
      - wp/v2
      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: 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: 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
     

# --- truncated at 32 KB (1025 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vice-media/refs/heads/main/openapi/_ae-authored/vice-media-wp-rest-openapi.yml