Revisions

These routes allow you to retrieve/delete revisions of posts.

Possible routes (endpoints are described below):

/wp/v2/posts/{parent}/revisions       // retrieves revisions of the post specified in {parent}
/wp/v2/posts/{parent}/revisions/{ID}  // retrieves the revision of the post specified in {ID}

Controller class: WP_REST_Revisions_Controller{}

Resource schema

The schema shows all fields that exist for the post object: the fields of the object that the request will return.

Parameter Context Description
author
number
view, edit, embed ID of the object author.
date
string
view, edit, embed Publication date of the object, according to the site's timezone.
date_gmt
string
view, edit Publication time of the object, in GMT.
guid
object
view, edit Global unique identifier for the object.
id
number
view, edit, embed Unique identifier for the object.
modified
string
view, edit Date of the last modification of the object, according to the site's timezone.
modified_gmt
string
view, edit Date of the last modification of the object, in GMT.
parent
number
view, edit, embed ID of the parent object.
slug
string
view, edit, embed Alphanumeric identifier for the object unique to its type.
title
object
view, edit, embed Title for the object.
content
object
view, edit Content of the object.
excerpt
object
view, edit, embed Excerpt of the object.

wp/v2/posts/{parent}/revisions

An OPTIONS request to the route will return a complete description of this route: endpoints, their parameters, schema.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts/{parent}/revisions
GitHub
{
    "namespace": "wp/v2",
    "methods": [
        "GET"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки в которых сделан запрос, определяют поля в ответе.",
                    "type": "string"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "post-revision",
        "type": "object",
        "properties": {
            "author": {
                "description": "ID автора объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date": {
                "description": "Дата публикации объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date_gmt": {
                "description": "Время публикации объекта, по GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "guid": {
                "description": "Глобальный уникальный идентификатор для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "raw": {
                        "description": "GUID для объекта, как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ],
                        "readonly": true
                    },
                    "rendered": {
                        "description": "GUID для объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    }
                }
            },
            "id": {
                "description": "Уникальный идентификатор для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "modified": {
                "description": "Дата последнего изменения объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "modified_gmt": {
                "description": "Дата последнего изменения объекта, в GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "parent": {
                "description": "ID родителя объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "title": {
                "description": "Название для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Название объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML название объекта, преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "content": {
                "description": "Содержимое объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": {
                    "raw": {
                        "description": "Содержимое объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML содержимое объекта преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищено ли содержимое паролем.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "excerpt": {
                "description": "Отрывок объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Отрывок объекта как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML отрывок объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищать ли паролем отрывок.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            }
        }
    }
}

List of post revisions

The algorithm is similar to the function wp_get_post_revisions().

Request type

Access: public

GET /wp/v2/posts/{parent}/revisions

Request parameters

parent(number)
ID of the post whose revisions need to be retrieved. Specified in the route.
context(string)
The context in which the request is made; determines the fields present in the response.
Must be: view, embed, edit
Default: view

Example request

$ curl http://demo.wp-api.org/wp-json/wp/v2/posts/72/revisions
[
	{
		"author": 1,
		"date": "2018-08-03T22:11:48",
		"date_gmt": "2018-08-03T22:11:48",
		"id": 97,
		"modified": "2018-08-03T22:11:48",
		"modified_gmt": "2018-08-03T22:11:48",
		"parent": 72,
		"slug": "72-revision-v1",
		"guid": {
			"rendered": "http://example.com/72-revision-v1/"
		},
		"title": {
			"rendered": "Post Title"
		},
		"content": {
			"rendered": "post content"
		},
		"excerpt": {
			"rendered": ""
		},
		"_links": {
			"parent": [
				{
					"href": "http://example.com/wp-json/wp/v2/posts/72"
				}
			]
		}
	},
	{ ... },
	{ ... },
]

wp/v2/posts/{parent}/revisions/{id}

An OPTIONS request to the route will return a complete description of this route: endpoints, their parameters, schema.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts/{parent}/revisions/{id}
GitHub
{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор для объекта.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки в которых сделан запрос, определяют поля в ответе.",
                    "type": "string"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор для объекта.",
                    "type": "integer"
                },
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Должно быть истинно, так как ревизии не поддерживают перемещение в корзину. ",
                    "type": "boolean"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "post-revision",
        "type": "object",
        "properties": {
            "author": {
                "description": "ID автора объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date": {
                "description": "Дата публикации объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date_gmt": {
                "description": "Время публикации объекта, по GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "guid": {
                "description": "Глобальный уникальный идентификатор для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "raw": {
                        "description": "GUID для объекта, как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ],
                        "readonly": true
                    },
                    "rendered": {
                        "description": "GUID для объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    }
                }
            },
            "id": {
                "description": "Уникальный идентификатор для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "modified": {
                "description": "Дата последнего изменения объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "modified_gmt": {
                "description": "Дата последнего изменения объекта, в GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "parent": {
                "description": "ID родителя объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "title": {
                "description": "Название для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Название объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML название объекта, преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "content": {
                "description": "Содержимое объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": {
                    "raw": {
                        "description": "Содержимое объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML содержимое объекта преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищено ли содержимое паролем.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "excerpt": {
                "description": "Отрывок объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Отрывок объекта как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML отрывок объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищать ли паролем отрывок.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            }
        }
    }
}

Retrieving a single post revision

The algorithm is similar to the function get_post().

Request type

Access: public

GET /wp/v2/posts/{parent}/revisions/{id}

Request parameters

parent(number)
ID of the post whose revision needs to be retrieved. Specified in the route.
id(number)
ID of the revision. Specified in the route.
context(string)
The context in which the request is made; determines the fields present in the response.
Must be: view, embed, edit
Default: view

Example request

$ curl http://example.com/wp-json/wp/v2/posts/72/revisions/97
{
	"author": 1,
	"date": "2018-08-03T22:11:48",
	"date_gmt": "2018-08-03T22:11:48",
	"id": 97,
	"modified": "2018-08-03T22:11:48",
	"modified_gmt": "2018-08-03T22:11:48",
	"parent": 72,
	"slug": "72-revision-v1",
	"guid": {
		"rendered": "http://example.com/72-revision-v1/"
	},
	"title": {
		"rendered": "Post Title"
	},
	"content": {
		"rendered": "post content"
	},
	"excerpt": {
		"rendered": ""
	},
	"_links": {
		"parent": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts/72"
			}
		]
	}
}

Deleting a post revision

The algorithm is similar to the function wp_delete_post_revision().

Request type

Access: authorization required

DELETE /wp/v2/posts/{parent}/revisions/{id}

Request parameters

parent(number)
ID of the post whose revision needs to be deleted. Specified in the route.
id(number)
ID of the revision. Specified in the route.
force
Must always be true, as revisions do not support trash.
Default: false

Example request

$ curl -X DELETE http://example.com/wp-json/wp/v2/posts/72/revisions/97

Error: force=true parameter not specified:

{
	"code": "rest_trash_not_supported",
	"message": "Revisions cannot be moved to trash. Set 'force=true' to delete.",
	"data": {
		"status": 501
	}
}

Specify the required parameter:

$ curl -X DELETE http://example.com/wp-json/wp/v2/posts/72/revisions/97?force=true
{
	"deleted": true,
	"previous": {
		"author": 1,
		"date": "2018-08-03T22:11:48",
		"date_gmt": "2018-08-03T22:11:48",
		"id": 97,
		"modified": "2018-08-03T22:11:48",
		"modified_gmt": "2018-08-03T22:11:48",
		"parent": 72,
		"slug": "72-revision-v1",
		"guid": {
			"rendered": "http://example.com/72-revision-v1/"
		},
		"title": {
			"rendered": "Post Title"
		},
		"content": {
			"rendered": "revision content"
		},
		"excerpt": {
			"rendered": ""
		}
	}
}