Список людей
Все, кого перечисляет страница «Контакты» в приложении: сохранённые контакты и каждый адрес, встреченный в почте как отправитель или получатель самого нового письма цепочки, с тем, сколько цепочек у каждого общих с ящиком, и временем последнего письма. Человек, который встречался в почте и сохранён, это одна строка. Постраничный вывод по ключу: `limit` до 100, по умолчанию 25, а `nextCursor` возвращается как `cursor`, пока `hasMore` равно true.
Выполняет настоящий запрос в вашем рабочем пространстве, с вашим собственным ключом.
GET /contacts/people
Все, кого перечисляет страница «Контакты» в приложении: сохранённые контакты и каждый адрес, встреченный в почте как отправитель или получатель самого нового письма цепочки, с тем, сколько цепочек у каждого общих с ящиком, и временем последнего письма. Человек, который встречался в почте и сохранён, это одна строка. Постраничный вывод по ключу: limit до 100, по умолчанию 25, а nextCursor возвращается как cursor, пока hasMore равно true.
Пример
Требуется contacts:read. Адреса из почты включаются только тогда, когда у ключа есть и threads:read.
curl "$OE/contacts/people?sort=threads&limit=25" -H "$AUTH"{ "object": "list", "data": [ { "object": "person", "email": "[email protected]", "displayEmail": "[email protected]", "name": "Ada Lovelace", "saved": true, "source": "manual", "notes": "Met at the engine demo", "photoUrl": null, "threads": 42, "lastAt": "2026-09-22T16:04:11.000Z", "createdAt": "2026-08-01T10:00:00.000Z", "updatedAt": "2026-09-01T09:12:00.000Z", "blockedBy": null }, { "object": "person", "email": "[email protected]", "displayEmail": "[email protected]", "name": "Shop", "saved": false, "source": null, "notes": null, "photoUrl": null, "threads": 17, "lastAt": "2026-09-21T07:30:00.000Z", "createdAt": null, "updatedAt": null, "blockedBy": { "rule": "shop.example", "list": "blockedDomains" } } ], "hasMore": true, "nextCursor": "WyIyMDI2LTA5LTIxVDA3OjMwOjAwLjAwMFoiLDE3XQ", "seen": true}sort бывает recent (по умолчанию), сначала самая новая почта, а сохранённые контакты без почты после неё, name, по имени или, если его нет, по адресу без учёта регистра, или threads, сначала те, у кого больше цепочек. При равенстве решает адрес, так что обход никогда не повторяет и не пропускает строку.
q ищет по именам, адресам и заметкам. email читает один адрес, так можно получить число цепочек и последнее письмо одного человека. blocked=true возвращает только тех, кого блокирует список блокировки рабочего пространства, включая правила на весь домен, а blockedBy называет правило в каждой строке.
Без threads:read строки состоят только из сохранённых контактов, а seen равно false, потому что остальное читается из почты. Удалённые адреса и собственные адреса ящика никогда не перечисляются. Курсор непрозрачен: возвращайте его с теми же sort, q и blocked, а курсор, который не выдавался, даёт 400 invalid_cursor.