Aller à la documentation
API

Lister les personnes

Tous ceux que liste la page Contacts de l'application : les contacts enregistrés, et chaque adresse vue dans le courrier comme expéditeur ou destinataire du message le plus récent d'un fil, avec le nombre de fils que chacune partage avec la boîte et le moment du dernier courrier. Une personne vue dans le courrier et enregistrée tient en une ligne. La pagination est par clé : `limit` va jusqu'à 100 et vaut 25 par défaut, et `nextCursor` revient comme `cursor` tant que `hasMore` est vrai.

GETapi.openemail.uk/contacts/people

Exécute le véritable appel sur votre espace de travail, avec votre propre clé.

GET /contacts/people

Tous ceux que liste la page Contacts de l'application : les contacts enregistrés, et chaque adresse vue dans le courrier comme expéditeur ou destinataire du message le plus récent d'un fil, avec le nombre de fils que chacune partage avec la boîte et le moment du dernier courrier. Une personne vue dans le courrier et enregistrée tient en une ligne. La pagination est par clé : limit va jusqu'à 100 et vaut 25 par défaut, et nextCursor revient comme cursor tant que hasMore est vrai.

Exemple

Nécessite contacts:read. Les adresses vues dans le courrier ne sont incluses que si la clé détient aussi threads:read.

curl
curl "$OE/contacts/people?sort=threads&limit=25" -H "$AUTH"
Réponse
{  "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 vaut recent (par défaut), le courrier le plus récent d'abord et les contacts enregistrés jamais vus dans le courrier ensuite, name, par nom ou à défaut par adresse sans tenir compte de la casse, ou threads, le plus de fils d'abord. En cas d'égalité, l'adresse départage, si bien qu'un parcours ne répète ni ne saute jamais une ligne.

q cherche dans les noms, les adresses et les notes. email lit une seule adresse, c'est ainsi qu'on obtient le nombre de fils et le dernier courrier d'une personne. blocked=true ne renvoie que les personnes que bloque la liste de blocage de l'espace de travail, règles sur des domaines entiers comprises, et blockedBy nomme la règle sur chaque ligne.

Sans threads:read, les lignes ne sont que les contacts enregistrés et seen est faux, car le reste est lu dans le courrier. Les adresses supprimées et les adresses propres de la boîte ne sont jamais listées. Le curseur est opaque : renvoyez-le avec les mêmes sort, q et blocked, et un curseur qui n'a pas été fourni donne un 400 invalid_cursor.