Why GeeDeePerMark?
Your Apps Should Never Store Unprotected ID Documents Again. Use this API to watermark them.
GeeDeePerMark API protects sensitive documents by applying visible watermarks before storage or transmission. Whether you're handling ID cards, confidential reports, or audit materials, watermarking ensures:
- Deterrence — Visible watermarks discourage unauthorized sharing
- Privacy compliance — Mark sensitive data appropriately (GDPR, data classification)
- Audit trails — Custom text identifies document purpose and restrictions
Privacy-first design: All processing happens in-memory only — no files are ever stored on disk.
Use Cases
- HR departments — Watermark ID documents before storing in employee files
- Legal teams — Mark confidential documents for specific recipients
- Audit processes — Label documents "For Audit Only" or "Internal Use"
- Student verification — Protect ID copies used for enrollment
- Grist workflows — Auto-watermark attachments in your spreadsheet-database
How It Works
Three simple ways to use GeeDeePerMark:
1. Public REST API
Send files via HTTP POST and receive watermarked results. Perfect for integrating into your applications.
curl -X POST "https://geedeepermark.cpvo.org/watermark" \
-F "file=@document.pdf" \
-F "text=Confidential" \
--output protected.pdf
2. Grist Custom Widget
Automatically watermark document attachments in your Grist tables. Configure once, watermark automatically on every upload.
3. Web User Interface
Use the standalone web interface for easy file watermarking with department-specific configurations.
- → Default UI — Main interface
- → HR Department — Customized for HR
- → IT Department — Customized for IT
Features: Drag-and-drop upload, multi-language (FR/EN), department-specific watermarks, customizable branding.
4. Self-Hosted API
Install on your own infrastructure for complete control. One single Python file, minimal dependencies.
Key Features
- In-memory processing — Files never touch disk
- No logging — No IP addresses, no file copies, no tracking
- Multiple formats — Images (JPEG, PNG, etc.) and PDFs
- Customizable — Choose your watermark text and size
- Tiled pattern — Watermark covers entire document, preventing cropping
- Open source — Single-file Python app, easy to audit
Security & Privacy
- Ephemeral processing — Files exist only in RAM during watermarking
- No persistent storage — Original and watermarked files are never saved
- No tracking — We don't log IP addresses or file metadata
- Self-hostable — Run on your own servers for complete data sovereignty
- Use TLS — Always deploy behind a reverse proxy (Caddy/Nginx) with HTTPS
Don't trust me? You might be right! Self-host it and audit the code yourself.
Available Service
A public instance is available at: https://geedeepermark.cpvo.org/watermark
Or install your own instance for maximum privacy and control.
Technical Resources
- API, Setup and Grist Docs
- GitHub Repository — Source code and issues