Skip to main content
GET
Get CRM Logs

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Query Parameters

contactId
string

The contact whose history to read (ctc_xxx). Pass contactId or companyId, not both; without either, the team's history is listed. An empty value answers INVALID_PARAMETER.

Pattern: ^ctc_[a-zA-Z0-9]+$
companyId
string

The company whose history to read (cpn_xxx). Pass contactId or companyId, not both; without either, the team's history is listed. An empty value answers INVALID_PARAMETER.

Pattern: ^cpn_[a-zA-Z0-9]+$
page
integer

Page number, starting at 1. Default: 1. page × limit must not exceed 5,000 (PAGE_OUT_OF_RANGE): beyond the 5,000 most recent rows, call again with to set to the createdAt of the last log you received. to is inclusive, so the logs of that instant come back: skip the _ids you already have.

Required range: x >= 1
limit
integer

Number of logs per page, from 1 to 100. Default: 100.

Required range: 1 <= x <= 100
state
string

Only the logs in these states, comma-separated: pending, done, error, aborted. When the parameter is repeated, the last value is used.

category
string

Only the logs of these categories, comma-separated: contact, company, association, activity, email, linkedin, sms, whatsapp, call, note, task, deal, event.

method
string

Only the logs of these operations, comma-separated, by their method name (see CrmLog.method). A name covers both directions: contact_update is a lemlist write and a change received from the CRM. With category, both filters apply. When the parameter is repeated, the last value is used.

from
string<date-time>

Only the logs created at or after this date (ISO 8601, read in UTC: a time without offset is UTC, a date without time starts at 00:00). For a record, no default: its whole history. For the team, 31 days before to by default, and from and to may span 31 days at most (INVALID_DATE_RANGE): with dates without time, from=2026-08-01&to=2026-08-31 is the widest window.

to
string<date-time>

Only the logs created at or before this date (ISO 8601, read in UTC: a time without offset is UTC, a date without time covers that whole day, up to 23:59:59.999). Default: now.

Response

Success

data
object[]
required
hasMore
boolean
required

Whether older logs exist past this page. For a contact or a company, it stays false on the page ending at row 5,000, even when older logs exist. For the team, it says whether they exist, and the next page answers PAGE_OUT_OF_RANGE. Past row 5,000, call again with to.