Store contacts, log interactions, set follow-up reminders, track deal history. HubSpot CRM but your contact data doesn't live in HubSpot's database.
Every operation in Dossier is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/contacts — list all contacts with optional search and filter query parametersPOST /api/contacts — create a new contact recordGET /api/contacts/{id} — retrieve a single contact by IDPUT /api/contacts/{id} — update an existing contactDELETE /api/contacts/{id} — remove a contactGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringTeams outgrow spreadsheet-based contacts tracking around the same time they realize SaaS alternatives want $15 to $50 per seat per month. Dossier is a single binary that handles the same job without the recurring bill or the vendor dependency.
Download the binary and run it. Dossier starts serving immediately with a dashboard at localhost and a REST API for automation. No cloud account, no API keys to provision, no monthly invoice. Your data lives in a SQLite file you can back up, move, or query directly.
Point curl at /api/contacts to interact with Dossier programmatically. The API follows predictable REST conventions: GET to list or fetch, POST to create, PUT to update, DELETE to remove. The response schema matches the internal data model exactly, so what you see in the dashboard is what the API returns.
GET /api/contacts — List all contacts. Supports ?q=keyword for search and ?status=value for filteringPOST /api/contacts — Create a new contact. Send JSON with at least nameGET /api/contacts/{id} — Fetch one contact by IDPUT /api/contacts/{id} — Update fields on an existing contactDELETE /api/contacts/{id} — Remove a contactGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted contact and CRM manager. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool dossier
PORT=9080 ./dossier
http://localhost:9080
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export DOSSIER_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./dossier
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.