A RESTful API for Plone.


plone.restapi is a RESTful hypermedia API for Plone.

Getting started#

A live demo of Plone 6 with the latest plone.restapi release is available at:

An example GET request on the portal root is the following.

curl -i -H "Accept: application/json"

An example POST request to create a new document is the following.

curl -i -X POST \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    --data-raw '{"@type": "Document", "title": "My Document"}' \
    --user admin:admin


You will need some kind of API browser application to explore the API. You will also need to first obtain a basic authorization token. We recommend using Postman which makes it easier to obtain a basic authorization token.


Install plone.restapi by adding it to your buildout.


# ...

eggs =

…and then running bin/buildout.

Python / Plone Compatibility#

plone.restapi 9 requires Python 3 and works with Plone 5.2 and Plone 6.x.

plone.restapi 8 entered "maintenance" mode with the release of plone.restapi 9 (September 2023). It is not planned to backport any features to this version and we highly recommend to upgrade to plone.restapi 9.

Python versions that reached their end-of-life, including Python 3.6 and Python 3.7 are not supported any longer.

Use plone.restapi 7 if you are running Python 2.7 or Plone versions below 5.2.


plone.restapi has been used in production since its first alpha release. It can be seen in action at the following sites:


If you are having issues, please let us know via the issue tracker.

If you require professional support, here is a list of Plone solution providers that contributed significantly to plone.restapi in the past.


The project is licensed under the GPLv2.

Appendix and Glossary#