Platform Management
This page covers the dashboard-management surface — endpoints used primarily by the CronDB dashboard UI rather than by external API consumers. They're documented here as a reference; if you're building a third-party integration, the Search, Enrichment, Sequences, and Workflows endpoints are usually what you want.
Every endpoint on this page requires Authorization: Bearer cdb_your_api_key and respects the standard plan-tier gating. CRM, teams, and reports are Pro+; analytics tracking is open to all plans.
CRM (/v1/crm/*)
Native pipeline management — kanban board with stages, deals, contacts, and activities. Used by the dashboard CRM page; can also be driven via API for custom rollups.
Stages
| Method | Path | Description |
|---|---|---|
GET | /v1/crm/stages | List pipeline stages in order. |
POST | /v1/crm/stages | Create a new stage. Body: {name, color, order}. |
PATCH | /v1/crm/stages/{stage_id} | Rename / recolor / reorder one stage. |
DELETE | /v1/crm/stages/{stage_id} | Delete. Deals in the stage move to the first remaining stage. |
POST | /v1/crm/stages/reorder | Bulk-reorder. Body: {stage_ids: [...]} in target order. |
Deals
| Method | Path | Description |
|---|---|---|
POST | /v1/crm/deals | Create a deal. Body: {name, domain, value_usd, stage_id, owner_user_id}. |
GET | /v1/crm/deals | List deals; query params: stage_id, owner_user_id, min_value, q. |
GET | /v1/crm/deals/kanban | Kanban view — stages with their deals nested. |
GET | /v1/crm/deals/{deal_id} | Get one deal with contacts + activities. |
PATCH | /v1/crm/deals/{deal_id} | Update fields. |
PATCH | /v1/crm/deals/{deal_id}/move | Move to a different stage. Body: {stage_id}. Stamps a stage_changed activity. |
DELETE | /v1/crm/deals/{deal_id} | Delete. |
GET | /v1/crm/deals/export | CSV export of all deals with current stages. |
Contacts on a deal
| Method | Path | Description |
|---|---|---|
GET | /v1/crm/deals/{deal_id}/contacts | List contacts attached to a deal. |
POST | /v1/crm/deals/{deal_id}/contacts | Attach a contact. |
PATCH | /v1/crm/contacts/{contact_id} | Update a contact. |
DELETE | /v1/crm/contacts/{contact_id} | Delete. |
Activities
| Method | Path | Description |
|---|---|---|
GET | /v1/crm/deals/{deal_id}/activities | Activity timeline — calls, emails, notes, stage changes. |
POST | /v1/crm/deals/{deal_id}/activities | Log an activity. Body: {type, body, scheduled_for}. |
Leaderboard
GET /v1/crm/leaderboard?days=30
Closed-won deal value per owner over the lookback. Pro+ only.
Teams (/v1/teams/*)
Multi-user accounts with role-based access. The "team" is the billable entity; members have roles owner, admin, member, or viewer. Sequences and watchlists can be shared at the team level.
| Method | Path | Description |
|---|---|---|
POST | /v1/teams | Create a team. The caller becomes owner. |
GET | /v1/teams | List teams the caller belongs to. |
GET | /v1/teams/{team_id} | Team details + members. |
PUT | /v1/teams/{team_id} | Update name/description (owner/admin). |
DELETE | /v1/teams/{team_id} | Disband (owner only). |
POST | /v1/teams/{team_id}/invite | Email-invite a new member. Body: {email, role}. Sends a token-link. |
POST | /v1/teams/accept-invite/{token} | Accept an invite (auth required — caller's email is matched against the invite). |
DELETE | /v1/teams/{team_id}/invites/{invite_id} | Revoke a pending invite. |
PUT | /v1/teams/{team_id}/members/{user_id} | Change a member's role. |
DELETE | /v1/teams/{team_id}/members/{user_id} | Remove member. |
GET | /v1/teams/{team_id}/activity | Audit log: invites, role changes, removals. |
Org-level (alternate naming, same concept)
| Method | Path | Description |
|---|---|---|
GET | /v1/org | Caller's primary org/team. |
POST | /v1/org | Create. |
PUT | /v1/org | Update. |
GET | /v1/org/members | List members. |
Notifications (/v1/notifications/*)
In-app notification surface plus rule + channel management.
| Method | Path | Description |
|---|---|---|
GET | /v1/notifications/rules | List notification rules (saved-search alerts, watchlist changes, sequence replies, etc.). |
PUT | /v1/notifications/rules/{rule_type}/{rule_id}/toggle | Toggle a rule on/off without deleting it. |
GET | /v1/notifications/channels | List channels (in-app, email, Slack, webhook). |
GET | /v1/notifications/history | Recent notification fires across all rules. |
GET | /v1/notifications/inbox | The caller's unread + recent in-app notifications. |
GET | /v1/notifications/unread-count | Lightweight badge count. |
PUT | /v1/notifications/read/{notification_id} | Mark one read. |
PUT | /v1/notifications/read-all | Mark every notification read. |
DELETE | /v1/notifications/{notification_id} | Delete one. |
For real-time push, the WebSocket at /v1/ws/notifications streams incoming notifications as they fire.
Reports (/v1/reports/*)
Industry benchmark reports + scheduled-report management. Lightweight version of Intelligence reports — these are pre-computed industry rollups, not live queries.
| Method | Path | Description |
|---|---|---|
GET | /v1/reports/industries | List industries with available reports. |
GET | /v1/reports/benchmark/{industry} | JSON benchmark — average enrichment rate, email coverage, growth, top domains. |
GET | /v1/reports/benchmark/{industry}/pdf | A4 PDF rendered version. Pro+ only. |
GET | /v1/reports/export-preview | Preview the next scheduled-report payload before it fires. |
Scheduled reports
| Method | Path | Description |
|---|---|---|
GET | /v1/reports/schedules | List configured schedules. |
POST | /v1/reports/schedules | Create a schedule. Body: {report_type, cron, recipients, format}. |
PUT | /v1/reports/schedules/{report_id} | Update. |
DELETE | /v1/reports/schedules/{report_id} | Cancel. |
The scheduled_report_worker polls every 5 minutes and fires reports whose cron matches the current time bucket.
Analytics (/v1/analytics/*)
Frontend usage tracking + traffic stats. Useful for product analytics on what features your team actually uses.
| Method | Path | Description |
|---|---|---|
POST | /v1/analytics/track | Record a usage event. Body: {event_type, page, properties}. Fires from the dashboard. |
GET | /v1/analytics/traffic | 30-day rollup: page views, sessions, top pages, conversion events. Admin only. |
Business Profile (/v1/business-profile/*)
The user's onboarding profile that drives ICP scoring and persona-aware enrichment defaults.
| Method | Path | Description |
|---|---|---|
GET | /v1/business-profile | Get the caller's profile. |
POST | /v1/business-profile | Create. Body covers industry, team_size, target_geos, target_industries, target_company_sizes, etc. |
PUT | /v1/business-profile | Update. |
DELETE | /v1/business-profile | Reset. |
POST | /v1/business-profile/skip | Skip onboarding without filling in. |
POST | /v1/business-profile/icp-score | Score a domain against the profile. Body: {domain} returns {score, factors}. |
GET | /v1/business-profile/icp-leads | List domains in the user's pipeline ranked by ICP score. |
Notes
- These endpoints are stable, but documentation here is intentionally compact. Full per-endpoint detail isn't likely to be load-bearing for third-party integrations — most callers use the CronDB dashboard.
- For programmatic access at scale, prefer the data-side endpoints (Search, Enrichment, Domain 360) plus the outreach stack (Sequences, Inbox, Workflows).
- Auth: every endpoint requires
Authorization: Bearer cdb_your_api_keyunless explicitly noted.
Next Steps
- API Overview — Full endpoint catalogue.
- Authentication — Get an API key.
- Workflows — The most common automation surface.