Developer Documentation Center

REST API

Updated: October 16, 2020

Nuxeo REST API is available on a Nuxeo Platform server at the following URL: http://NUXEO_SERVER/nuxeo/api/v1/*. We made available an API playground to help you understand the endpoints and have a try:

This page explains the high level organisation and scope of the existing endpoints and the various additional mechanisms that are offered to extend the behaviour of the API.

Scope and Concepts

Nuxeo provides a complete API accessible via HTTP/HTTPS. This API is the best way to integrate remotely with the Nuxeo Platform repository: portals, workflow engines, ESBs, custom application written in JavaScript, Ruby, etc. This API has the following endpoints:

  • Resources endpoints, for doing CRUD on resources in a 100% REST style. Multiple resources are exposed:
    • Documents (/nuxeo/api/v1/id/{docId} or /nuxeo/api/v1/path/{path} ): CRUD on documents (including paginated search);
    • Users (/nuxeo/api/v1/user/{userId}): CRUD on users;
    • Groups (/nuxeo/api/v1/group/{groupId}): CRUD on groups of users;
    • Directories (/nuxeo/api/v1/directory/{directoryId}):  CRUD on directories;
    • Document Types, Schemas and Facets definitions (/nuxeo/api/v1/config/types|schemas|facets/{type|schema|facet}): This is useful when doing remote introspection of the repository structure, for form automated generation, etc. More Information about this endpoint.
    • Queries (nuxeo/site/api/v1/query?query={query}  or /nuxeo/site/api/v1/query/{page_provider_name}?queryParams={params_values} You can search by query, or by referencing a page provider contributed serverside. See more information about this endpoint.
  • A commands endpoint, (/nuxeo/api/v1/automation/{Operation id}): To call a "command", i.e. an operation or chain of operations deployed on the server. This is the main way of exposing the platform services remotely. It exposes all the operations of the Automation module offering more than 100 commands for processing remotely the resources. The framework makes it very easy to add a new Java custom operation for completing the API if you miss a web-service, and to chain operations server-side using Nuxeo Studio, so as to expose a coarse-grained API that fits your business logic, without any development.
  • A batch upload endpoint, (/nuxeo/api/v1/automation/batch/upload}), for being able to upload a set of files before using them in a transactional operation, such as updating a list of documents content, etc ...

The Nuxeo REST API offers several nice additional features compared to a standard REST API:

  • Possibility to pipe a command call on a resource
  • REST Contributors that allow to ask for more information when receiving the resources via some request headers, in order to lower the number of requests you have to do (Ex: Receiving all the children of a document at the same time you receive a document, or receiving all the parents, or all the tasks, ...);
  • Web Adapters that can "transform" the resources that are returned, for example, getting the tasks of a document, or its related documents.

Quick Examples

Available Client SDKs 

We provide several client SDKs for making it even easier to use the API integrate with the Nuxeo Platform.