Base URL
https://app.dmu.email/api/v1
Authentication
Bearer dmk_… API key
Rate limit
120 requests a minute per key

Get a contact

GET/contacts/{id}

Returns one contact.

Needs the permissioncontacts:read

A key sees the shared contacts. One made with “Include my personal contacts” also sees its own person’s, with visibility: "personal"; only that person can turn the option on, and no key ever sees anyone else’s.

Path parameters

idstringrequired
The contact.

Returns

The contact, as List contacts describes it.

Errors

401invalid_key
The key is wrong, expired or revoked. With no Authorization header at all, the code is missing_credentials.
403missing_scope
The key doesn’t have contacts:read. The X-Required-Scope header names what’s missing.
404not_found
There’s no such contact, or it’s personal and the key doesn’t include personal contacts.
429rate_limited
More than 120 requests a minute from this key. Wait for Retry-After seconds.
curl https://app.dmu.email/api/v1/contacts/3d7a51c2 \
  -H "Authorization: Bearer dmk_7f3a9c2e1b4d_Xq8v…"

Response

200 OK

{
  "data": {
    "id": "3d7a51c2",
    "visibility": "shared",
    "source": "api",
    "firstName": "Άννα",
    "lastName": "Παπαδάκη",
    "company": "Λογιστήριο Παπαδάκη",
    "jobTitle": "Accountant",
    "email": "anna@papadakis-acc.gr",
    "emails": ["anna@papadakis-acc.gr"],
    "phones": ["210 412 3380"],
    "fields": {
      "vat_number": "094536781",
      "customer_number": "ΠΕΛ-0412"
    },
    "locked": [
      "first_name",
      "last_name",
      "company",
      "job_title",
      "email",
      "phone",
      "vat_number",
      "customer_number"
    ],
    "createdAt": "2026-10-25T06:12:40.000Z",
    "updatedAt": "2026-10-25T06:31:05.000Z"
  }
}

Every response wraps its result in data. A page of threads adds nextCursor, which is null on the last page.