openapi: 3.0.3 info: title: WordPress REST API description: >- The WordPress REST API provides endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON objects. It is the backbone of the WordPress Block Editor and enables headless CMS, mobile apps, and third-party integrations. version: 'v2' contact: name: WordPress Developer Resources url: https://developer.wordpress.org/rest-api/ license: name: GPL-2.0-or-later url: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html x-generated-from: documentation servers: - url: https://{site}/wp-json description: WordPress site REST API root variables: site: default: example.com description: Your WordPress site hostname security: - cookieAuth: [] - basicAuth: [] - applicationPassword: [] tags: - name: Posts description: Manage WordPress posts - name: Pages description: Manage WordPress pages - name: Media description: Manage WordPress media library - name: Comments description: Manage WordPress comments - name: Users description: Manage WordPress users - name: Categories description: Manage post categories - name: Tags description: Manage post tags - name: Taxonomies description: Manage WordPress taxonomies - name: Blocks description: Manage reusable blocks - name: Block Types description: Query registered block types - name: Themes description: Manage WordPress themes - name: Plugins description: Manage WordPress plugins - name: Settings description: Manage site settings - name: Search description: Search across WordPress content - name: Post Types description: Query registered post types paths: /wp/v2/posts: get: operationId: listPosts summary: WordPress List Posts description: Retrieves a collection of posts from the WordPress site. Supports filtering, ordering, and pagination. tags: - Posts parameters: - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: [view, embed, edit] default: view example: view - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to be returned in result set. schema: type: integer default: 10 maximum: 100 example: 10 - name: search in: query description: Limit results to those matching a string. schema: type: string example: WordPress tutorial - name: status in: query description: Limit result set to posts assigned one or more statuses. schema: type: string default: publish example: publish - name: author in: query description: Limit result set to posts assigned to specific authors. schema: type: array items: type: integer example: [1] - name: categories in: query description: Limit result set to items with specific terms assigned in the categories taxonomy. schema: type: array items: type: integer example: [5] - name: tags in: query description: Limit result set to items with specific terms assigned in the tags taxonomy. schema: type: array items: type: integer example: [12] - name: orderby in: query description: Sort collection by object attribute. schema: type: string enum: [author, date, id, include, modified, parent, relevance, slug, include_slugs, title] default: date example: date - name: order in: query description: Order sort attribute ascending or descending. schema: type: string enum: [asc, desc] default: desc example: desc responses: '200': description: A list of posts headers: X-WP-Total: description: Total number of items in the collection schema: type: integer X-WP-TotalPages: description: Total number of pages available schema: type: integer content: application/json: schema: type: array items: $ref: '#/components/schemas/Post' examples: ListPosts200Example: summary: Default listPosts 200 response x-microcks-default: true value: - id: 123 date: '2026-04-15T10:30:00' date_gmt: '2026-04-15T10:30:00' status: publish type: post link: https://example.com/2026/04/my-first-post/ title: rendered: My First WordPress Post content: rendered: '
Welcome to my WordPress site.
' protected: false excerpt: rendered: 'Welcome to my WordPress site.
' protected: false author: 1 featured_media: 0 comment_status: open ping_status: open sticky: false template: '' format: standard categories: [1] tags: [] '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createPost summary: WordPress Create Post description: Creates a new post on the WordPress site. Requires authentication with appropriate user capabilities. tags: - Posts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostInput' examples: CreatePostRequestExample: summary: Default createPost request x-microcks-default: true value: title: My New Post content: This is the post content. status: publish categories: [1] responses: '201': description: Post created successfully content: application/json: schema: $ref: '#/components/schemas/Post' examples: CreatePost201Example: summary: Default createPost 201 response x-microcks-default: true value: id: 124 date: '2026-05-03T12:00:00' status: publish type: post title: rendered: My New Post content: rendered: 'This is the post content.
' protected: false author: 1 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/posts/{id}: get: operationId: getPost summary: WordPress Get Post description: Retrieves a single post by ID from the WordPress site. tags: - Posts parameters: - name: id in: path required: true description: Unique identifier for the post. schema: type: integer example: 123 - name: context in: query description: Scope under which the request is made. schema: type: string enum: [view, embed, edit] default: view example: view responses: '200': description: A single post content: application/json: schema: $ref: '#/components/schemas/Post' examples: GetPost200Example: summary: Default getPost 200 response x-microcks-default: true value: id: 123 date: '2026-04-15T10:30:00' status: publish type: post link: https://example.com/2026/04/my-first-post/ title: rendered: My First WordPress Post content: rendered: 'Welcome to my WordPress site.
' protected: false author: 1 '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updatePost summary: WordPress Update Post description: Updates an existing post by ID. Requires authentication. tags: - Posts parameters: - name: id in: path required: true description: Unique identifier for the post. schema: type: integer example: 123 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostInput' responses: '200': description: Post updated successfully content: application/json: schema: $ref: '#/components/schemas/Post' examples: UpdatePost200Example: summary: Default updatePost 200 response x-microcks-default: true value: id: 123 status: publish title: rendered: My Updated Post '404': $ref: '#/components/responses/NotFound' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deletePost summary: WordPress Delete Post description: Deletes a post by ID. Requires authentication with appropriate user capabilities. tags: - Posts parameters: - name: id in: path required: true description: Unique identifier for the post. schema: type: integer example: 123 - name: force in: query description: Whether to bypass trash and force deletion. schema: type: boolean default: false example: false responses: '200': description: Post deleted (moved to trash or permanently deleted) content: application/json: schema: $ref: '#/components/schemas/Post' examples: DeletePost200Example: summary: Default deletePost 200 response x-microcks-default: true value: id: 123 status: trash title: rendered: My First WordPress Post '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/pages: get: operationId: listPages summary: WordPress List Pages description: Retrieves a collection of pages from the WordPress site. tags: - Pages parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to be returned. schema: type: integer default: 10 example: 10 - name: status in: query description: Limit result set to pages with a specific status. schema: type: string default: publish example: publish - name: parent in: query description: Limit result set to pages with a specific parent ID. schema: type: integer example: 0 responses: '200': description: A list of pages content: application/json: schema: type: array items: $ref: '#/components/schemas/Page' examples: ListPages200Example: summary: Default listPages 200 response x-microcks-default: true value: - id: 2 date: '2026-01-01T00:00:00' status: publish type: page title: rendered: About content: rendered: 'About this site.
' protected: false parent: 0 menu_order: 0 x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createPage summary: WordPress Create Page description: Creates a new page. Requires authentication. tags: - Pages requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PageInput' responses: '201': description: Page created successfully content: application/json: schema: $ref: '#/components/schemas/Page' examples: CreatePage201Example: summary: Default createPage 201 response x-microcks-default: true value: id: 10 status: publish title: rendered: New Page '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/pages/{id}: get: operationId: getPage summary: WordPress Get Page description: Retrieves a single page by ID. tags: - Pages parameters: - name: id in: path required: true description: Unique identifier for the page. schema: type: integer example: 2 responses: '200': description: A single page content: application/json: schema: $ref: '#/components/schemas/Page' examples: GetPage200Example: summary: Default getPage 200 response x-microcks-default: true value: id: 2 status: publish title: rendered: About content: rendered: 'About this site.
' protected: false '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/media: get: operationId: listMedia summary: WordPress List Media description: Retrieves a collection of media items from the media library. tags: - Media parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to be returned. schema: type: integer default: 10 example: 10 - name: media_type in: query description: Limit result set to attachments of a particular media type. schema: type: string enum: [image, video, text, application, audio] example: image - name: mime_type in: query description: Limit result set to attachments of a specific MIME type. schema: type: string example: image/jpeg responses: '200': description: A list of media items content: application/json: schema: type: array items: $ref: '#/components/schemas/MediaItem' examples: ListMedia200Example: summary: Default listMedia 200 response x-microcks-default: true value: - id: 45 date: '2026-03-10T09:00:00' status: inherit type: attachment mime_type: image/jpeg source_url: https://example.com/wp-content/uploads/2026/03/photo.jpg title: rendered: photo alt_text: A sample photo x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/media/{id}: get: operationId: getMedia summary: WordPress Get Media Item description: Retrieves a single media item by ID. tags: - Media parameters: - name: id in: path required: true description: Unique identifier for the media item. schema: type: integer example: 45 responses: '200': description: A single media item content: application/json: schema: $ref: '#/components/schemas/MediaItem' examples: GetMedia200Example: summary: Default getMedia 200 response x-microcks-default: true value: id: 45 status: inherit mime_type: image/jpeg source_url: https://example.com/wp-content/uploads/2026/03/photo.jpg '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/comments: get: operationId: listComments summary: WordPress List Comments description: Retrieves a collection of comments. Public endpoint returns approved comments. tags: - Comments parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to be returned. schema: type: integer default: 10 example: 10 - name: post in: query description: Limit result set to comments assigned to specific post IDs. schema: type: array items: type: integer example: [123] - name: status in: query description: Limit result set to comments assigned a specific status. schema: type: string default: approve example: approve responses: '200': description: A list of comments content: application/json: schema: type: array items: $ref: '#/components/schemas/Comment' examples: ListComments200Example: summary: Default listComments 200 response x-microcks-default: true value: - id: 1 post: 123 parent: 0 author: 0 author_name: John Doe author_email: john@example.com date: '2026-04-16T08:00:00' content: rendered: 'Great post!
' status: approved type: comment x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createComment summary: WordPress Create Comment description: Creates a new comment on a post. tags: - Comments requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommentInput' responses: '201': description: Comment created successfully content: application/json: schema: $ref: '#/components/schemas/Comment' examples: CreateComment201Example: summary: Default createComment 201 response x-microcks-default: true value: id: 2 post: 123 status: approved author_name: Jane Smith content: rendered: 'Thanks for sharing!
' '400': $ref: '#/components/responses/BadRequest' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/users: get: operationId: listUsers summary: WordPress List Users description: Retrieves a collection of users. Requires authentication for most contexts. tags: - Users parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to be returned. schema: type: integer default: 10 example: 10 - name: roles in: query description: Limit result set to users matching at least one specific role. schema: type: array items: type: string example: [administrator, editor] responses: '200': description: A list of users content: application/json: schema: type: array items: $ref: '#/components/schemas/User' examples: ListUsers200Example: summary: Default listUsers 200 response x-microcks-default: true value: - id: 1 name: admin slug: admin avatar_urls: '96': https://secure.gravatar.com/avatar/abc123?s=96 roles: [administrator] '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/users/{id}: get: operationId: getUser summary: WordPress Get User description: Retrieves a single user by ID. tags: - Users parameters: - name: id in: path required: true description: Unique identifier for the user. schema: type: integer example: 1 responses: '200': description: A single user content: application/json: schema: $ref: '#/components/schemas/User' examples: GetUser200Example: summary: Default getUser 200 response x-microcks-default: true value: id: 1 name: admin slug: admin roles: [administrator] '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/categories: get: operationId: listCategories summary: WordPress List Categories description: Retrieves a collection of post categories. tags: - Categories parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items. schema: type: integer default: 10 example: 10 - name: search in: query description: Limit results to matching categories. schema: type: string example: technology - name: hide_empty in: query description: Whether to hide terms not assigned to any posts. schema: type: boolean default: false example: false responses: '200': description: A list of categories content: application/json: schema: type: array items: $ref: '#/components/schemas/Term' examples: ListCategories200Example: summary: Default listCategories 200 response x-microcks-default: true value: - id: 1 count: 12 description: '' link: https://example.com/category/uncategorized/ name: Uncategorized slug: uncategorized taxonomy: category parent: 0 x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createCategory summary: WordPress Create Category description: Creates a new category. Requires authentication. tags: - Categories requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TermInput' responses: '201': description: Category created successfully content: application/json: schema: $ref: '#/components/schemas/Term' examples: CreateCategory201Example: summary: Default createCategory 201 response x-microcks-default: true value: id: 5 name: Technology slug: technology taxonomy: category '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/tags: get: operationId: listTags summary: WordPress List Tags description: Retrieves a collection of post tags. tags: - Tags parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items. schema: type: integer default: 10 example: 10 - name: search in: query description: Limit results to matching tags. schema: type: string example: api - name: hide_empty in: query description: Whether to hide terms not assigned to any posts. schema: type: boolean default: false example: false responses: '200': description: A list of tags content: application/json: schema: type: array items: $ref: '#/components/schemas/Term' examples: ListTags200Example: summary: Default listTags 200 response x-microcks-default: true value: - id: 12 count: 5 description: '' link: https://example.com/tag/api/ name: API slug: api taxonomy: post_tag parent: 0 x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/search: get: operationId: searchContent summary: WordPress Search Content description: Searches across WordPress content types including posts, pages, and other objects. tags: - Search parameters: - name: search in: query required: true description: Limit results to those matching a string. schema: type: string example: WordPress API - name: type in: query description: Limit results to items of an object type. schema: type: string enum: [post, term, post-format] default: post example: post - name: subtype in: query description: Limit results to items of one or more object subtypes. schema: type: string example: post - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items to return. schema: type: integer default: 10 example: 10 responses: '200': description: Search results content: application/json: schema: type: array items: $ref: '#/components/schemas/SearchResult' examples: SearchContent200Example: summary: Default searchContent 200 response x-microcks-default: true value: - id: 123 title: My First WordPress Post url: https://example.com/2026/04/my-first-post/ type: post subtype: post x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/settings: get: operationId: getSettings summary: WordPress Get Settings description: Retrieves registered site settings. Requires authentication. tags: - Settings responses: '200': description: Site settings content: application/json: schema: $ref: '#/components/schemas/Settings' examples: GetSettings200Example: summary: Default getSettings 200 response x-microcks-default: true value: title: My WordPress Site description: Just another WordPress site url: https://example.com email: admin@example.com timezone: America/New_York date_format: F j, Y time_format: g:i a start_of_week: 1 language: en_US use_smilies: true default_category: 1 default_post_format: '' posts_per_page: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/themes: get: operationId: listThemes summary: WordPress List Themes description: Retrieves a collection of installed themes. Requires authentication. tags: - Themes parameters: - name: status in: query description: Limit result set to themes assigned one or more statuses. schema: type: string example: active responses: '200': description: A list of themes content: application/json: schema: type: array items: $ref: '#/components/schemas/Theme' examples: ListThemes200Example: summary: Default listThemes 200 response x-microcks-default: true value: - stylesheet: twentytwentyfive template: twentytwentyfive name: rendered: Twenty Twenty-Five description: rendered: 'Bringing together a refined craftsmanship and an eye for fresh perspectives, Twenty Twenty-Five is built to help you share your ideas by diving into the details that make your content shine.' status: active version: '1.3' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/plugins: get: operationId: listPlugins summary: WordPress List Plugins description: Retrieves a collection of installed plugins. Requires administrator authentication. tags: - Plugins responses: '200': description: A list of plugins content: application/json: schema: type: array items: $ref: '#/components/schemas/Plugin' examples: ListPlugins200Example: summary: Default listPlugins 200 response x-microcks-default: true value: - plugin: akismet/akismet status: active name: Akismet Anti-Spam plugin_uri: https://akismet.com/ author: Automattic author_uri: https://automattic.com/ description: raw: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. rendered: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. version: '5.3.4' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/types: get: operationId: listPostTypes summary: WordPress List Post Types description: Retrieves a collection of all registered post types. tags: - Post Types responses: '200': description: An object of registered post types content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/PostType' examples: ListPostTypes200Example: summary: Default listPostTypes 200 response x-microcks-default: true value: post: capabilities: create_posts: create_posts description: '' hierarchical: false name: Posts rest_base: posts slug: post taxonomies: [category, post_tag] page: capabilities: create_posts: create_posts description: '' hierarchical: true name: Pages rest_base: pages slug: page taxonomies: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /wp/v2/blocks: get: operationId: listBlocks summary: WordPress List Reusable Blocks description: Retrieves a collection of reusable blocks. tags: - Blocks parameters: - name: page in: query description: Current page of the collection. schema: type: integer default: 1 example: 1 - name: per_page in: query description: Maximum number of items. schema: type: integer default: 10 example: 10 responses: '200': description: A list of reusable blocks content: application/json: schema: type: array items: $ref: '#/components/schemas/Block' examples: ListBlocks200Example: summary: Default listBlocks 200 response x-microcks-default: true value: - id: 15 status: publish type: wp_block title: rendered: Call to Action Block content: rendered: 'Hello World
' protected: type: boolean description: Whether the content is protected with a password example: false Post: type: object description: A WordPress post object properties: id: type: integer description: Unique identifier for the post example: 123 date: type: string format: date-time description: The date the post was published in site timezone example: '2026-04-15T10:30:00' date_gmt: type: string format: date-time description: The date the post was published in GMT example: '2026-04-15T10:30:00' modified: type: string format: date-time description: The date the post was last modified in site timezone example: '2026-04-20T14:00:00' slug: type: string description: An alphanumeric identifier for the post example: my-first-wordpress-post status: type: string description: A named status for the post enum: [publish, future, draft, pending, private, trash] example: publish type: type: string description: Type of post example: post link: type: string description: URL to the post example: https://example.com/2026/04/my-first-post/ title: $ref: '#/components/schemas/RenderedContent' content: $ref: '#/components/schemas/RenderedContent' excerpt: $ref: '#/components/schemas/RenderedContent' author: type: integer description: The ID for the author of the post example: 1 featured_media: type: integer description: The ID of the featured media for the post example: 45 comment_status: type: string description: Whether or not comments are open on the post enum: [open, closed] example: open ping_status: type: string description: Whether or not the post can be pinged enum: [open, closed] example: open sticky: type: boolean description: Whether or not the post should be treated as sticky example: false template: type: string description: The theme file to use to display the post example: '' format: type: string description: The format for the post enum: [standard, aside, chat, gallery, link, image, quote, status, video, audio] example: standard categories: type: array description: The terms assigned to the post in the category taxonomy items: type: integer example: [1] tags: type: array description: The terms assigned to the post in the post_tag taxonomy items: type: integer example: [12] PostInput: type: object description: Input schema for creating or updating a post properties: title: type: string description: The title for the post example: My New Post content: type: string description: The content for the post example: This is the post content. status: type: string description: A named status for the post enum: [publish, future, draft, pending, private] example: publish excerpt: type: string description: The excerpt for the post example: A short excerpt author: type: integer description: The ID for the author of the post example: 1 featured_media: type: integer description: The ID of the featured media for the post example: 45 categories: type: array description: The terms assigned in the category taxonomy items: type: integer example: [1] tags: type: array description: The terms assigned in the post_tag taxonomy items: type: integer example: [12] Page: type: object description: A WordPress page object properties: id: type: integer description: Unique identifier for the page example: 2 date: type: string format: date-time description: The date the page was published in site timezone example: '2026-01-01T00:00:00' status: type: string description: A named status for the page enum: [publish, future, draft, pending, private, trash] example: publish type: type: string description: Type of post example: page link: type: string description: URL to the page example: https://example.com/about/ title: $ref: '#/components/schemas/RenderedContent' content: $ref: '#/components/schemas/RenderedContent' excerpt: $ref: '#/components/schemas/RenderedContent' author: type: integer description: The ID for the author of the page example: 1 parent: type: integer description: The ID for the parent of the page example: 0 menu_order: type: integer description: The order of the page in relation to other pages example: 0 template: type: string description: The theme file used to display the page example: '' PageInput: type: object description: Input schema for creating or updating a page properties: title: type: string description: The title for the page example: New Page content: type: string description: The content for the page example: Page content goes here. status: type: string enum: [publish, draft, private] example: publish parent: type: integer description: The ID for the parent page example: 0 menu_order: type: integer description: The order of the page example: 0 MediaItem: type: object description: A WordPress media attachment object properties: id: type: integer description: Unique identifier for the media item example: 45 date: type: string format: date-time description: The date the media was uploaded example: '2026-03-10T09:00:00' status: type: string description: A named status for the object example: inherit type: type: string description: Type of Post for the object example: attachment mime_type: type: string description: The MIME type of the attachment example: image/jpeg title: $ref: '#/components/schemas/RenderedContent' alt_text: type: string description: Alternative text to display when attachment is not displayed example: A sample photo source_url: type: string description: URL to the original attachment file example: https://example.com/wp-content/uploads/2026/03/photo.jpg media_type: type: string description: Attachment type (image, video, audio, etc.) enum: [image, file] example: image media_details: type: object description: Details about the media file including sizes properties: width: type: integer example: 1920 height: type: integer example: 1080 file: type: string example: '2026/03/photo.jpg' Comment: type: object description: A WordPress comment object properties: id: type: integer description: Unique identifier for the comment example: 1 post: type: integer description: The ID of the associated post example: 123 parent: type: integer description: The ID for the parent of the comment example: 0 author: type: integer description: The ID of the user object, if author was a user example: 0 author_name: type: string description: Display name for the comment author example: John Doe author_email: type: string format: email description: Email address for the comment author example: john@example.com date: type: string format: date-time description: The date the comment was published example: '2026-04-16T08:00:00' content: $ref: '#/components/schemas/RenderedContent' status: type: string description: State of the comment enum: [approved, unapproved, hold, spam, trash] example: approved type: type: string description: Type of the comment example: comment CommentInput: type: object description: Input schema for creating a comment required: - post - content properties: post: type: integer description: The ID of the associated post example: 123 parent: type: integer description: The ID for the parent of the comment example: 0 author_name: type: string description: Display name for the comment author example: Jane Smith author_email: type: string format: email description: Email for the comment author example: jane@example.com content: type: string description: The content for the comment example: Thanks for sharing! User: type: object description: A WordPress user object properties: id: type: integer description: Unique identifier for the user example: 1 name: type: string description: Display name for the user example: admin slug: type: string description: An alphanumeric identifier for the user example: admin description: type: string description: Description of the user example: Site administrator link: type: string description: URL of the user example: https://example.com/author/admin/ avatar_urls: type: object description: Avatar URLs for the user keyed by image size additionalProperties: type: string example: '96': https://secure.gravatar.com/avatar/abc123?s=96 roles: type: array description: Roles assigned to the user items: type: string example: [administrator] Term: type: object description: A WordPress taxonomy term (category or tag) properties: id: type: integer description: Unique identifier for the term example: 1 count: type: integer description: Number of published posts for the term example: 12 description: type: string description: HTML description of the term example: '' link: type: string description: URL of the term example: https://example.com/category/uncategorized/ name: type: string description: HTML title for the term example: Uncategorized slug: type: string description: An alphanumeric identifier for the term example: uncategorized taxonomy: type: string description: Type attribution for the term example: category parent: type: integer description: The parent term ID example: 0 TermInput: type: object description: Input schema for creating or updating a term required: - name properties: name: type: string description: HTML title for the term example: Technology description: type: string description: HTML description of the term example: Technology-related posts slug: type: string description: An alphanumeric identifier example: technology parent: type: integer description: The parent term ID example: 0 SearchResult: type: object description: A search result object properties: id: type: integer description: Unique identifier for the search result example: 123 title: type: string description: The title for the search result example: My First WordPress Post url: type: string description: URL for the search result example: https://example.com/2026/04/my-first-post/ type: type: string description: The type of the search result example: post subtype: type: string description: The subtype of the search result example: post Settings: type: object description: WordPress site settings properties: title: type: string description: Site title example: My WordPress Site description: type: string description: Site tagline example: Just another WordPress site url: type: string description: Site URL example: https://example.com email: type: string format: email description: Administrator email address example: admin@example.com timezone: type: string description: Site timezone string example: America/New_York date_format: type: string description: Date format for the site example: 'F j, Y' time_format: type: string description: Time format for the site example: 'g:i a' start_of_week: type: integer description: Day of the week that the week should start on (0=Sunday, 1=Monday) example: 1 language: type: string description: WordPress locale code example: en_US use_smilies: type: boolean description: Whether smilies should automatically be converted to graphics example: true default_category: type: integer description: Default post category ID example: 1 posts_per_page: type: integer description: Number of posts per page example: 10 Theme: type: object description: A WordPress theme object properties: stylesheet: type: string description: The theme's stylesheet example: twentytwentyfive template: type: string description: The theme's template example: twentytwentyfive name: $ref: '#/components/schemas/RenderedContent' description: $ref: '#/components/schemas/RenderedContent' status: type: string description: A named status for the theme example: active version: type: string description: The theme's current version example: '1.3' author: $ref: '#/components/schemas/RenderedContent' author_uri: $ref: '#/components/schemas/RenderedContent' theme_uri: $ref: '#/components/schemas/RenderedContent' Plugin: type: object description: A WordPress plugin object properties: plugin: type: string description: The plugin file, relative to the plugins directory example: akismet/akismet status: type: string description: The plugin activation status enum: [active, inactive] example: active name: type: string description: The plugin name example: Akismet Anti-Spam plugin_uri: type: string description: The plugin's website address example: https://akismet.com/ author: type: string description: The plugin author's name example: Automattic author_uri: type: string description: Profile page for the plugin author example: https://automattic.com/ description: type: object description: The plugin description properties: raw: type: string example: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. rendered: type: string example: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. version: type: string description: The plugin version number example: '5.3.4' PostType: type: object description: A WordPress registered post type properties: capabilities: type: object description: All capabilities used by the post type additionalProperties: type: string description: type: string description: A human-readable description of the post type example: '' hierarchical: type: boolean description: Whether or not the post type should have children example: false name: type: string description: Human-readable name of the post type, e.g., Posts example: Posts rest_base: type: string description: REST base route for the post type example: posts slug: type: string description: An alphanumeric identifier for the post type example: post taxonomies: type: array description: All taxonomies associated with the post type items: type: string example: [category, post_tag] Block: type: object description: A WordPress reusable block properties: id: type: integer description: Unique identifier for the block example: 15 status: type: string description: A named status for the block example: publish type: type: string description: Type of post example: wp_block title: $ref: '#/components/schemas/RenderedContent' content: $ref: '#/components/schemas/RenderedContent' BlockType: type: object description: A registered WordPress block type properties: name: type: string description: Unique name identifying the block type example: core/paragraph title: type: string description: Human-readable block type label example: Paragraph description: type: string description: Short description for the block type example: Start with the basic building block of narrative. category: type: string description: Block category example: text attributes: type: object description: Block attributes additionalProperties: type: object is_dynamic: type: boolean description: Whether the block is dynamic example: false ErrorResponse: type: object description: A WordPress REST API error response properties: code: type: string description: Error code example: rest_forbidden message: type: string description: Human-readable error message example: Sorry, you are not allowed to do that. data: type: object description: Additional data about the error properties: status: type: integer description: HTTP status code example: 403 responses: BadRequest: description: Bad request - invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequest400Example: summary: Bad request example x-microcks-default: true value: code: rest_invalid_param message: Invalid parameter. data: status: 400 Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized401Example: summary: Unauthorized example x-microcks-default: true value: code: rest_not_logged_in message: You are not currently logged in. data: status: 401 Forbidden: description: Insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Forbidden403Example: summary: Forbidden example x-microcks-default: true value: code: rest_forbidden message: Sorry, you are not allowed to do that. data: status: 403 NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: NotFound404Example: summary: Not found example x-microcks-default: true value: code: rest_post_invalid_id message: Invalid post ID. data: status: 404