Skip to main content
Demo mode starts a complete Databunker Pro instance with no database server, no configuration, and no setup wizard. It installs itself on an in-memory SQLite database and comes up ready to accept API calls, which makes it the fastest way to evaluate the API.
Demo mode is for evaluation only. The database is held in memory and everything is erased when the container stops, the wrapping key is a fixed public value, and the root access token is the well-known string DEMO. Never expose a demo instance to a network you do not control, and never use it for real personal data. For a real deployment, see Install with Docker Compose.

Step 1: Start Databunker Pro

The container installs itself on first start. Check the logs to confirm it is ready:
Open http://localhost:3000/ to reach the web interface. Select Admin as the login method and enter DEMO as the access token.
Demo mode requires Databunker Pro 0.14.23 or later. Every API call below authenticates with the X-Bunker-Token: DEMO header — in a real deployment this is your root access token, generated during setup.

Step 2: Create a user record

Storing a user record is the most common Databunker Pro operation. The vault encrypts the profile and returns a user token in UUID format.
That token is a pseudonymized identity. Store it in your own database in place of the personal data — on its own it reveals nothing, and deleting the user record in Databunker Pro renders the encrypted data unrecoverable. You can read the record back by user token, or by any indexed field such as email, phone, or login:
The mode and identity pair identifies the user in every call that follows. Supported modes are token, login, email, phone, and custom.

Step 3: Store an encrypted file

Files are attached to a user and encrypted with a per-file key that is wrapped by that user’s record key. File content is supplied as base64 in the filedata field. The optional tags field labels the file by document type, so you can find it later without relying on the filename:
The fileuuid is the handle for this file. The MIME type was not supplied — Databunker Pro detects it from the file content and stores it, so image/jpeg appears in the responses below. Pass mimetype explicitly only when you need to override that. Tags are lowercased, de-duplicated, and sorted on write, which is why they come back in a different order than they were sent.
File tagging requires Databunker Pro 0.14.24 or later. Tags must match ^[a-z0-9][a-z0-9._-]{0,49}$, and a file can carry up to 16 of them. Because tags are stored unencrypted so they can be indexed, use them for document types such as passport or proof-of-address — never for personal data.
Upload a second file so the next steps have something to filter:
Uploading the same content twice for the same user does not create a second copy. The response returns the existing fileuuid with "duplicate": true.

Step 4: List the user’s files

This returns metadata only. Filenames are encrypted at rest and decrypted for the response, so the listing itself never exposes file content. Add a tag to return just the files carrying it — useful for checking which documents a profile is still missing:

Step 5: Retrieve a file

Retrieve a file by its fileuuid, taken from the FileCreate response or from the listing above. The decrypted content comes back base64-encoded in filedata:
To download the decrypted bytes directly instead of base64 inside JSON, add "raw": true. The response carries the original MIME type and a Content-Disposition header:

Step 6: Stop the instance

The container was started with --rm, so it is removed on stop and the in-memory database goes with it. Starting demo mode again gives you a clean instance.

Next steps

Install with Docker Compose

Deploy with a real database, persistent storage, and generated credentials.

File Vault

How file encryption, crypto-shredding, and the S3, GCS, and Azure backends work.

Access control

Scope API tokens to roles and groups instead of using the root token.

API reference

The full API surface, authentication, errors, and pagination.