The first open-source tool to fully export all your data from Reeleezee (now Exact Reeleezee), a Dutch accounting platform.
Reeleezee does not provide a built-in full data export. This tool connects to their REST API and downloads everything: invoices, customers, vendors, products, bank data, PDF documents, scans, and audit files.
Available as a CLI tool for scripting and automation, or as a web application (Docker) with a browser-based UI for interactive exports with real-time progress tracking.
Author: Sinisa Devcic / Dynconnect
- Full data export — sales invoices (with line items), purchase invoices, customers, vendors, products, offerings, bank imports, bank statements, ledger accounts, and more
- File downloads — purchase invoice scans (original JPG/PDF), sales invoice PDFs, offering/quote PDFs
- Administration exports — audit files (CLAIR, XAF), trial balances, and financial reports for all available years
- Year selection — choose which years to export, with automatic detection of years that contain data
- Web UI — browser-based interface with login, export configuration, live progress (SSE), data browser, file browser, and ZIP download
- Docker — one command to run:
docker compose up --build - Auto-discovery — automatically finds all administrations in your account
- Incremental downloads — re-running skips already-downloaded files
- Resume — failed exports can be resumed from the last checkpoint
- Structured output — organized JSON files per administration and data type
- Credentials via .env — no credentials in code, supports
.envfiles
git clone https://github.com/dynconnect/reeleezee-exporter.git
cd reeleezee-exporter
pip install -e .
# Configure credentials
cp .env.example .env
# Edit .env with your Reeleezee username and password
# Export all data
reeleezee-export
# Download all files (PDFs, scans)
reeleezee-downloadcd docker
docker compose up --build
# Open http://localhost:8000pip install -e .pip install -e ".[web]"pip install -r requirements.txt
python -m reeleezee_exporter.export_data --username USER --password PASS# Using .env file (recommended)
reeleezee-export
# With explicit credentials
reeleezee-export --username YOUR_USER --password YOUR_PASS
# Custom output directory
reeleezee-export --output-dir ./my_export
# Single JSON file instead of structured
reeleezee-export --format json# Download all PDFs and scans
reeleezee-download
# Custom output directory
reeleezee-download --output-dir ./my_files# Discover available endpoints and data
reeleezee-explorecd docker
docker compose up --buildOpen http://localhost:8000 in your browser:
- Login with your Reeleezee credentials
- Select years — years with data are automatically detected and highlighted
- Select data types — choose which endpoints and file types to export
- Start export — watch real-time progress via Server-Sent Events
- Browse data — view exported data in paginated tables while export runs
- Browse files — view downloaded PDFs and scans
- Download ZIP — download the complete export as a ZIP archive
python -m http.server 8000
# Open http://localhost:8000/viewers/viewer_advanced.html| Data Type | Description |
|---|---|
| Administrations | Administration details and settings |
| Sales Invoices | All outgoing invoices with full detail (43+ fields) |
| Sales Invoice Lines | Individual line items per invoice |
| Purchase Invoices | All incoming invoices with full detail |
| Customers | Customer records |
| Vendors | Vendor/supplier records |
| Products | Product catalog |
| Offerings | Quotes and offerings |
| Relations | Combined customer/vendor relations |
| Addresses | All addresses |
| Accounts | Ledger accounts |
| Bank Imports | Bank import file records |
| Bank Statements | Bank statement records |
| Documents | Document metadata |
| Export Files | Audit files, trial balances (CLAIR, XAF formats) |
| File Type | Source | Format |
|---|---|---|
| Purchase invoice scans | Uploaded originals | JPG, PDF, PNG |
| Sales invoice PDFs | Generated by Reeleezee | |
| Offering PDFs | Generated by Reeleezee |
exports/reeleezee_export_20250101_120000/
index.json
{administration_id}/
index.json
administration.json
sales_invoices.json
sales_invoice_lines.json
purchase_invoices.json
customers.json
vendors.json
products.json
offerings.json
bank_imports.json
bank_statements.json
exports.json
export_files.json
Credentials can be provided in three ways (in order of precedence):
- Command-line arguments:
--username USER --password PASS - Environment variables:
REELEEZEE_USERNAMEandREELEEZEE_PASSWORD .envfile: Copy.env.exampleto.envand fill in values
For Docker deployments, set SECRET_KEY for production:
SECRET_KEY=your-random-secret docker compose up --buildSee .env.example for all available settings.
The web UI runs as three Docker containers:
| Service | Purpose |
|---|---|
| app | FastAPI web server (port 8000) |
| worker | RQ background worker for async export jobs |
| redis | Job queue and real-time progress (pubsub) |
cd docker
# Start
docker compose up --build
# Start in background
docker compose up --build -d
# Stop
docker compose down
# Stop and remove data
docker compose down -vpip install -e ".[web]"
pip install pytest
# Run all tests
pytest tests/ -v
# Run only CLI tests
pytest tests/test_client.py tests/test_export_data.py -v
# Run only web tests
pytest tests/test_web.py -vThis tool uses the Reeleezee REST API at https://portal.reeleezee.nl/api/v1/ with HTTP Basic Authentication. See docs/api-endpoints.md for the complete list of discovered endpoints.
Key API characteristics:
- OData v4 format with
@odata.nextLinkpagination - Only one concurrent session per account
- Default page size of 1000 items
- Date filtering via
$filter=Date ge ... and Date lt ...
- Setup Guide — Installation and configuration
- Architecture — Code structure and design
- API Endpoints — All discovered Reeleezee API endpoints
- Contributing — How to contribute
Contributions are welcome. See CONTRIBUTING.md for guidelines.
Copyright (c) 2025 Sinisa Devcic / Dynconnect