Pydio API v1 is providing a REST access to all the actions exposed by the installed Pydio Plugins on your instance. Furthermore, it also describe a way to trigger these actions directly via Command Line.
API v1 is accessible on your pydio installation under the /api/v1/ URI. That is, if pydio installed on https://yourdomain.tld/pydio, the endpoints exposed here are available under https://yourdomain.tld/pydio/api/v1.
Since Pydio 7, you can also use the API V2, which is more compliant to the REST standards, but some actions may not be available by default and still require the use of Api V1.
Authentication against the API is done via HTTP Basic-Authentication. The standard users credentials (admin / password) can be used to login.
You can also use users Tokens instead as generated in the "My Api Keys" panel of My Account.
Request & Responses Format
Depending on the request, most parameters are passed as GET or POST key values. Most response format are using XML.
Finding the right workspaceId
Expected workspace ID can be either the internal 32-characters long string identifing a workspace in Pydio, or the workspace "slug" which is a more human-readable identifier. You can typically guess the slug by looking at your browser URL when navigating inside a workspace : URL is built with https://yourserver.com/pydio/ws-/current_folder/. Slug is also available in the workspace editor in the Settings.
Reserved Workspace identifiers
Please note that default workspaces My Files and Common Files have a specific internal identifier which is "1" and "0" respectively.
For all admin related actions (that are active in Pydio only when you are logged in the "Settings" panel), you can use the settings workspace ID.
For workspace-independant actions, like listing the workspaces accessible to the currently logged user, you can use pydio as workspace ID.
Actions are defined in plugins manifest.xml files. They are "endpoints" that each plugin can contribute to the application. Typically, the FS Storage Driver (access.fs) will provide all actions like "ls", "mkdir", "mkfile", "rename", etc...
Every request will always start with
The path parameter may depend on how the rest point is defined in the manifest. For example, to list the content of a given folder inside a workspace "marketing", you would use
You may have to add some query string parameters, e.g.
By logging on your Pydio server and going inside the root of your installation, you can trigger any API command using the following syntax:
$ php cmd.php -u=user -r=workspaceId [-p=password] [-a=action] [[--param1=value1 --param2=value2]]
User/password can be any valid Pydio user credentials. If you do not provide a password parameter, you will be prompted when executing the command. In a similar manner, if you do not provide an "action" parameter, you will be prompted with an auto-completable command line to find the proper action.
The paramX/valueX couples may vary depending on the action you want to trigger. Make sure to use double-dashes before these optional parameters names, whereas the u, r, a and p options must start with a simple dash.