# LDM v3 API

**Canonical:** https://apis.io/apis/live-direct-marketing-online/ldm-v3-api/  
**Provider:** Live Direct Marketing — https://apis.io/providers/live-direct-marketing-online/  
**Base URL:** https://api.live-direct-marketing.online  
**Documentation:** https://developers.live-direct-marketing.online/

LDM v3 API is one of 7 APIs that [Live Direct Marketing](https://apis.io/providers/live-direct-marketing-online/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include CRM, Sales & marketing automation, Email, Lead Management, and Cold Outreach. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, a getting-started guide, and authentication docs.

Multi-tenant B2B outreach automation platform exposed as one Bearer-authenticated HTTPS surface for the web UI, MCP and A2A clients. 1,304 operations across 119 tags: companies, contacts, leads and pipelines, briefs and creatives, mailing tasks and campaigns with send-readiness dry-runs, email accounts and warm-up, three-phase deliverability probes, suppression / stop-list / marking guardrails, webhooks, billing ledger, legal documents and a public DSAR endpoint. Tenant-scoped calls carry X-Tenant-Id; 406 operations declare x-required-scope from a 79-scope catalog. Self-serve registration returns a PENDING-account ldm_* key immediately.

## Operations (60 of 1304)

| Method | Path | Summary |
|---|---|---|
| GET | `/api/notifications/push/public-key` | Get the tenant VAPID public key for Web Push |
| POST | `/api/notifications/push/subscribe` | Register a browser Web Push subscription |
| POST | `/api/notifications/push/unsubscribe` | Remove a browser Web Push subscription |
| GET | `/api/notifications` | List notifications for the current user |
| GET | `/api/notifications/unread-count` | Get the unread notifications badge count |
| POST | `/api/notifications/read-all` | Mark all unread notifications as read |
| POST | `/api/notifications/{id}/read` | Mark a notification as read |
| POST | `/api/notifications/{id}/dismiss` | Dismiss a notification (hide from widget) |
| POST | `/api/notifications/dismiss-all` | Dismiss all notifications for the current user |
| POST | `/api/notifications/self-note` | Create an agent self-note notification |
| POST | `/api/auth/register` | Register a new account (self-service). Requires termsAccepted=true (user agreement: GET /api/legal/terms). channel=web needs a password; channel=mcp/a2a/form... |
| GET | `/api/auth/verify-email` | Confirm email by the token from the signup email. Activates the account automatically (1 auto-activation per hour platform-wide; otherwise it stays PENDING f... |
| POST | `/api/auth/signup-questionnaire` | Issue #322 — submit the signup questionnaire for accounts that did not qualify for automatic activation (free mailbox, or the website/MX checks did not line ... |
| POST | `/api/auth/otc` | Exchange the one-time sign-in code from the email-verification redirect for a session (same response as /auth/login). Codes are single-use and expire in 5 mi... |
| POST | `/api/auth/login` | Authenticate a user and issue access + refresh tokens. 401 = wrong email/password; 403 = credentials are correct but the account is not ACTIVE yet (email not... |
| POST | `/api/auth/refresh` | Exchange a refresh token for a new access + refresh pair |
| POST | `/api/auth/logout` | Revoke a refresh token and end the session |
| POST | `/api/auth/forgot-password` | Request a password reset email (rate-limited per email and per IP) |
| POST | `/api/auth/reset-password` | Reset password using a reset token |
| GET | `/api/auth/profile` | Get the current authenticated user profile |
| GET | `/api/auth/me` | Get current user profile (alias of /auth/profile) |
| POST | `/api/auth/change-password` | Change the password of the authenticated user (current required) |
| POST | `/api/auth/impersonate/{userId}` | Impersonate another user (SUPER role only) |
| GET | `/api/api-keys` | List tenant API keys (raw key value hidden) |
| POST | `/api/api-keys` | Create a new tenant API key. Pass `actAsCurrentUser: true` to bind the key to the calling user (required for compose/reply/forward and other user-context end... |
| GET | `/api/api-keys/whoami` | Check that the current Bearer credentials (API key or JWT) are valid, and learn where this key is connected before hitting a wall. No scope required — any au... |
| GET | `/api/api-keys/{id}/reveal` | Reveal the raw value of an existing API key. Only JWT-authenticated (browser) calls are allowed — an ApiKey cannot read another key's secret. Returns { id, n... |
| GET | `/api/api-keys/scopes/structured` | Structured scope catalog for the API Keys UI wizard. Returns presets (AI Agent / Read-only) + grouped scope definitions with descriptions and dangerous-flag.... |
| PATCH | `/api/api-keys/{id}` | Upgrade an existing API key in-place: set/unset Act-as-me. Only JWT-authenticated calls are allowed (an ApiKey cannot upgrade another ApiKey). Key value is N... |
| DELETE | `/api/api-keys/{id}` | Permanently delete a tenant API key |
| DELETE | `/api/api-keys/{id}/revoke` | Revoke (deactivate) a tenant API key without deleting it |
| GET | `/api/webhooks` | List webhook endpoints |
| POST | `/api/webhooks` | Create a webhook endpoint |
| PATCH | `/api/webhooks/{id}` | Update a webhook endpoint |
| DELETE | `/api/webhooks/{id}` | Delete a webhook endpoint |
| GET | `/api/webhooks/{id}/deliveries` | List delivery history for a webhook endpoint |
| POST | `/api/webhooks/deliveries/{id}/retry` | Retry a single webhook delivery |
| POST | `/api/webhooks/{id}/retrigger` | Retrigger the last N deliveries for a webhook endpoint |
| POST | `/api/users/me/accept-terms` | Accept legal terms for the current user |
| GET | `/api/users` | List users (SUPER/MANAGER) |
| POST | `/api/users` | Create a user (SUPER only) |
| GET | `/api/users/system/stats` | Get system stats (SUPER only) |
| POST | `/api/users/system/kill-process/{pid}` | Kill a system process by pid (SUPER only) |
| POST | `/api/users/system/cleanup-orphans` | Cleanup orphan system resources (SUPER only) |
| GET | `/api/users/{id}` | Get a user by id (SUPER/MANAGER) |
| DELETE | `/api/users/{id}` | Delete a user with tenant cleanup: sole-member tenants + their DBs are dropped (SUPER only) |
| PATCH | `/api/users/{id}/role` | Update a user role (SUPER/MANAGER) |
| PATCH | `/api/users/{id}/status` | Update a user status (SUPER/MANAGER) |
| PATCH | `/api/users/{id}/password` | Update a user password (SUPER only) |
| PATCH | `/api/users/{id}/profile` | Update a user profile (SUPER only) |
| GET | `/api/users/{id}/comments` | List admin comments on a user (SUPER/MANAGER) |
| POST | `/api/users/{id}/comments` | Add an admin comment on a user (SUPER/MANAGER) |
| DELETE | `/api/users/{id}/comments/{commentId}` | Delete an admin comment on a user (SUPER only) |
| GET | `/api/companies/custom-fields` | List custom field definitions for the given entity (company/contact/lead) |
| POST | `/api/companies/custom-fields` | Create a custom field definition |
| PUT | `/api/companies/custom-fields/reorder` | Reorder custom field definitions by id array |
| GET | `/api/companies/custom-fields/{companyId}/values` | Get custom field values for a company |
| POST | `/api/companies/custom-fields/{companyId}/values` | Set custom field values for a company |
| PUT | `/api/companies/custom-fields/{id}` | Update a custom field definition |
| DELETE | `/api/companies/custom-fields/{id}` | Delete a custom field definition (requires confirm=true) |

…and 1244 more operations. The page lists the first 250; the full set of 1304 is in the OpenAPI linked below.

## Machine-readable artifacts (9)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/live-direct-marketing-online/refs/heads/main/openapi/live-direct-marketing-online-ldm-v3-openapi.json
- **OpenAPI** — https://api.live-direct-marketing.online/api/docs-json
- **Documentation** — https://developers.live-direct-marketing.online/
- **APIReference** — https://developers.live-direct-marketing.online/api-reference
- **GettingStarted** — https://developers.live-direct-marketing.online/quickstart
- **Authentication** — https://developers.live-direct-marketing.online/authentication
- **Overlay** — https://raw.githubusercontent.com/api-evangelist/live-direct-marketing-online/refs/heads/main/overlays/live-direct-marketing-online-ldm-v3-overlay.yaml
- **DataModel** — https://raw.githubusercontent.com/api-evangelist/live-direct-marketing-online/refs/heads/main/data-model/live-direct-marketing-online-data-model.yml
- **APIsJSON** — https://raw.githubusercontent.com/api-evangelist/live-direct-marketing-online/refs/heads/main/apis.yml

## Other Live Direct Marketing APIs (6)

- [LDM MCP Server](https://apis.io/apis/live-direct-marketing-online/ldm-mcp-server/)
- [LDM.delivery A2A Agent](https://apis.io/apis/live-direct-marketing-online/ldm-a2a-agent/)
- [LDM Webhook Events](https://apis.io/apis/live-direct-marketing-online/ldm-webhook-events/)
- [Inbox Check API](https://apis.io/apis/live-direct-marketing-online/inbox-check-api/)
- [Inbox Check MCP Server](https://apis.io/apis/live-direct-marketing-online/inbox-check-mcp-server/)
- [Inbox Check A2A Agent Card](https://apis.io/apis/live-direct-marketing-online/inbox-check-a2a-agent/)

## Tags

CRM, Sales & marketing automation, Email, Lead Management, Cold Outreach

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/live-direct-marketing-online/ldm-v3-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/live-direct-marketing-online/.
