Schema
The schema defines all the fields that exist within a post record. Any response from these endpoints can be expected to contain the fields below unless the `_filter` query parameter is used or the schema field only appears in a specific context.
date | The date the post was published, in the site's timezone. JSON data type: string or null, Context: |
date_gmt | The date the post was published, as GMT. JSON data type: string or null, Context: |
guid | The globally unique identifier for the post. JSON data type: object Read only Context: |
id | Unique identifier for the post. JSON data type: integer Read only Context: |
link | URL to the post. JSON data type: string, Read only Context: |
modified | The date the post was last modified, in the site's timezone. JSON data type: string, Read only Context: |
modified_gmt | The date the post was last modified, as GMT. JSON data type: string, Read only Context: |
slug | An alphanumeric identifier for the post unique to its type. JSON data type: string Context: |
status | A named status for the post. JSON data type: string Context: One of: |
type | Type of post. JSON data type: string Read only Context: |
password | A password to protect access to the content and excerpt. JSON data type: string Context: |
permalink_template | Permalink template for the post. JSON data type: string Read only Context: |
generated_slug | Slug automatically generated from the post title. JSON data type: string Read only Context: |
title | The title for the post. JSON data type: object Context: |
content | The content for the post. JSON data type: object Context: |
author | The ID for the author of the post. JSON data type: integer Context: |
excerpt | The excerpt for the post. JSON data type: object Context: |
featured_media | The ID of the featured media for the post. JSON data type: integer Context: |
comment_status | Whether or not comments are open on the post. JSON data type: string Context: One of: |
ping_status | Whether or not the post can be pinged. JSON data type: string Context: One of: |
format | The format for the post. JSON data type: string Context: One of: |
meta | Meta fields. JSON data type: object Context: |
sticky | Whether or not the post should be treated as sticky. JSON data type: boolean Context: |
template | The theme file to use to display the post. JSON data type: string Context: |
categories | The terms assigned to the post in the category taxonomy. JSON data type: array Context: |
tags | The terms assigned to the post in the post_tag taxonomy. JSON data type: array Context: |
List Posts
Query this endpoint to retrieve a collection of posts. The response you receive can be controlled and filtered using the URL query parameters below.
Definition
GET /wp/v2/posts
Example Request
$ curl https://example.com/wp-json/wp/v2/posts
Arguments
context | Scope under which the request is made; determines fields present in response. Default: One of: |
page | Current page of the collection. Default: |
per_page | Maximum number of items to be returned in result set. Default: |
search | Limit results to those matching a string. |
after | Limit response to posts published after a given ISO8601 compliant date. |
modified_after | Limit response to posts modified after a given ISO8601 compliant date. |
author | Limit result set to posts assigned to specific authors. |
author_exclude | Ensure result set excludes posts assigned to specific authors. |
before | Limit response to posts published before a given ISO8601 compliant date. |
modified_before | Limit response to posts modified before a given ISO8601 compliant date. |
exclude | Ensure result set excludes specific IDs. |
include | Limit result set to specific IDs. |
offset | Offset the result set by a specific number of items. |
order | Order sort attribute ascending or descending. Default: One of: |
orderby | Sort collection by post attribute. Default: One of: |
search_columns | Array of column names to be searched. |
slug | Limit result set to posts with one or more specific slugs. |
status | Limit result set to posts assigned one or more statuses. Default: |
tax_relation | Limit result set based on relationship between multiple taxonomies. One of: AND, OR |
categories | Limit result set to items with specific terms assigned in the categories taxonomy. |
categories_exclude | Limit result set to items except those with specific terms assigned in the categories taxonomy. |
tags | Limit result set to items with specific terms assigned in the tags taxonomy. |
tags_exclude | Limit result set to items except those with specific terms assigned in the tags taxonomy. |
sticky | Limit result set to items that are sticky. |
Create a Post
Arguments
date | The date the post was published, in the site's timezone. |
date_gmt | The date the post was published, as GMT. |
slug | An alphanumeric identifier for the post unique to its type. |
status | A named status for the post. One of: publish, future, draft, pending, private |
password | A password to protect access to the content and excerpt. |
title | The title for the post. |
content | The content for the post. |
author | The ID for the author of the post. |
excerpt | The excerpt for the post. |
featured_media | The ID of the featured media for the post. |
comment_status | Whether or not comments are open on the post. One of: open, closed |
ping_status | Whether or not the post can be pinged. One of: open, closed |
format | The format for the post. One of: standard, aside, chat, gallery, link, image, quote, status, video, audio |
meta | Meta fields. |
sticky | Whether or not the post should be treated as sticky. |
template | The theme file to use to display the post. |
categories | The terms assigned to the post in the category taxonomy. |
tags | The terms assigned to the post in the post_tag taxonomy. |
Definition
POST /wp/v2/posts
Retrieve a Post
Definition & Example Request
GET /wp/v2/posts/<id>
Query this endpoint to retrieve a specific post record.
$ curl https://example.com/wp-json/wp/v2/posts/<id>
Arguments
id | Unique identifier for the post. |
context | Scope under which the request is made; determines fields present in response. Default: One of: |
password | The password for the post if it is password protected. |
Update a Post
Arguments
id | Unique identifier for the post. |
date | The date the post was published, in the site's timezone. |
date_gmt | The date the post was published, as GMT. |
slug | An alphanumeric identifier for the post unique to its type. |
status | A named status for the post. One of: publish, future, draft, pending, private |
password | A password to protect access to the content and excerpt. |
title | The title for the post. |
content | The content for the post. |
author | The ID for the author of the post. |
excerpt | The excerpt for the post. |
featured_media | The ID of the featured media for the post. |
comment_status | Whether or not comments are open on the post. One of: open, closed |
ping_status | Whether or not the post can be pinged. One of: open, closed |
format | The format for the post. One of: standard, aside, chat, gallery, link, image, quote, status, video, audio |
meta | Meta fields. |
sticky | Whether or not the post should be treated as sticky. |
template | The theme file to use to display the post. |
categories | The terms assigned to the post in the category taxonomy. |
tags | The terms assigned to the post in the post_tag taxonomy. |
Definition
POST /wp/v2/posts/<id>
Example Request
$ curl -X POST https://example.com/wp-json/wp/v2/posts/<id> -d '{"title":"My New Title"}'
Delete a Post
Arguments
id | Unique identifier for the post. |
force | Whether to bypass Trash and force deletion. |
Definition
DELETE /wp/v2/posts/<id>
Example Request
$ curl -X DELETE https://example.com/wp-json/wp/v2/posts/<id>