Base URL:
https://api.dmly.io/apiThe Contacts API allows you to create, search, update, delete, and manage tags for contacts programmatically inside your DMLY workspace.
All endpoints require authentication using the x-api-key header.
AuthenticationEvery request must include:
x-api-key: YOUR_API_KEYYou can generate your API key from:
DMLY → Integrations → REST API → Edit Setup
Contact Endpoints OverviewMethod | Endpoint | Description |
GET |
| Search contacts |
POST |
| Create a new contact |
GET |
| Get contact by ID |
PUT |
| Update contact by ID |
DELETE |
| Delete contact by ID |
POST |
| Add tags to contact |
POST |
| Remove tags from contact |
Search ContactsGET /v1/contactsSearch contacts using filters, pagination, tags, or free-text search.
Name | Type | Required | Description |
limit | string | No | Max number of results |
tags | string | No | Filter by tags |
workspaceId | string | No | Filter by workspace |
page | string | No | Page number |
channel | string | No | Filter by channel |
searchText | string | No | Free-text search |
curl -X GET "https://api.dmly.io/api/v1/contacts?limit=10" \
-H "x-api-key: YOUR_API_KEY"200 OK → Returns array of contacts
Create New ContactPOST /v1/contactsCreate a new contact in DMLY.
x-api-key: YOUR_API_KEY
Content-Type: application/jsoncurl -X POST "https://api.dmly.io/api/v1/contacts" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"phoneNumber": "+15551234567",
"workspaceId": "workspace_id_here"
}'200 OK → Returns created contact object
Get Contact by IDGET /v1/contacts/{contactId}Name | Required | Description |
limit | Yes | Unique contact ID |
curl -X GET "https://api.dmly.io/api/v1/contacts/12345" \
-H "x-api-key: YOUR_API_KEY"PUT /v1/contacts/{contactId}Update an existing contact.
curl -X PUT "https://api.dmly.io/api/v1/contacts/12345" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "John Updated",
"stage": "Lead"
}'DELETE /v1/contacts/{contactId}curl -X DELETE "https://api.dmly.io/api/v1/contacts/12345" \
-H "x-api-key: YOUR_API_KEY"{
"success": true
}POST /v1/contacts/{contactId}/tags/addcurl -X POST "https://api.dmly.io/api/v1/contacts/12345/tags/add" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tags": ["VIP", "Purchased"]
}'{
"id": "12345",
"tags": ["VIP", "Purchased"]
}POST /v1/contacts/{contactId}/tags/removecurl -X POST "https://api.dmly.io/api/v1/contacts/12345/tags/remove" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tags": ["VIP"]
}'{
"id": "string",
"name": "string",
"phoneNumber": "string",
"workspace": {
"id": "string",
"title": "string"
},
"stage": "Subscriber | Engaged | Lead | Marketing qualified lead (MQL) | Sales qualified lead (SQL)",
"notes": "string",
"customFields": {},
"tags": ["string"]
}{
"id": "string",
"tags": ["string"]
}{
"success": true
}Always validate phone numbers in international format.
Use pagination when fetching large contact lists.
Avoid frequent bulk updates to prevent rate limiting.
Store contact IDs after creation for efficient updates.
Secure your API key — never expose it in frontend code.