Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/nuxeo/nuxeo/llms.txt

Use this file to discover all available pages before exploring further.

This quickstart walks you through the minimum steps to get a Nuxeo server running locally and interact with it through the REST API. By the end you will have started Nuxeo with Docker, created a document, retrieved it by ID, and run an NXQL search query. No prior Nuxeo experience is required.
1

Start Nuxeo with Docker

Pull and run the official Nuxeo image. The -p 8080:8080 flag maps the container port to your local machine.
docker run -it -p 8080:8080 nuxeo/nuxeo:2025.x
The server takes 30–60 seconds to start. Watch for the following line in the log output:
INFO  [NuxeoStarter] Nuxeo started
This command runs a bare server with no packages installed and no persistent storage. Data is lost when the container stops. See the installation guide for volume mounts and production configuration.
2

Verify the server is ready

Once started, confirm the REST API is reachable by fetching the root path of the default repository:
curl -u Administrator:Administrator \
  http://localhost:8080/nuxeo/api/v1/repo/default/path/
A successful response returns a JSON object with "entity-type": "document" and the path /. If you receive a connection error, wait a few more seconds and retry.
3

Create a document

Create a File document under the root path. The name field sets the URL-safe segment; dc:title is the human-readable title stored in the dublincore schema.
curl -X POST \
  -u Administrator:Administrator \
  -H "Content-Type: application/json" \
  -d '{
    "entity-type": "document",
    "type": "File",
    "name": "my-first-doc",
    "properties": {
      "dc:title": "My First Document",
      "dc:description": "Created via the Nuxeo REST API"
    }
  }' \
  http://localhost:8080/nuxeo/api/v1/repo/default/path/
The response includes the full document representation. Copy the "uid" field from the response — you will use it in the next step.
{
  "entity-type": "document",
  "uid": "a1b2c3d4-...",
  "path": "/my-first-doc",
  "type": "File",
  "state": "project",
  "properties": {
    "dc:title": "My First Document",
    "dc:description": "Created via the Nuxeo REST API"
  }
}
4

Read the document back by ID

Fetch the document using its uid. Replace <DOC_UID> with the value from the previous response.
curl -u Administrator:Administrator \
  http://localhost:8080/nuxeo/api/v1/repo/default/id/<DOC_UID>
You can also fetch by path:
curl -u Administrator:Administrator \
  http://localhost:8080/nuxeo/api/v1/repo/default/path/my-first-doc
5

Search with NXQL

Use the /query endpoint to search documents using NXQL, Nuxeo’s SQL-like query language. This query returns all File documents visible to the Administrator user:
curl -u Administrator:Administrator \
  "http://localhost:8080/nuxeo/api/v1/query?query=SELECT%20*%20FROM%20File"
You can pass a more targeted query using dc:title:
curl -u Administrator:Administrator \
  "http://localhost:8080/nuxeo/api/v1/query?query=SELECT%20*%20FROM%20File%20WHERE%20dc%3Atitle%3D%27My%20First%20Document%27"
The response is a paginated list with "entity-type": "documents" and an "entries" array.
The default Administrator password is Administrator. Change it immediately in any environment that is accessible from a network. Navigate to http://localhost:8080/nuxeo in your browser and update the password under user settings, or set it programmatically via the user management API at /nuxeo/api/v1/user/Administrator.

Next steps

Installation options

Persistent volumes, environment variables, and building from source.

REST API overview

Explore the full API surface: batch upload, automation, bulk actions, and more.

NXQL search

Learn the full NXQL syntax, operators, full-text predicates, and pagination.

Creating bundles

Package custom document types, operations, and listeners as an OSGi bundle.

Build docs developers (and LLMs) love