Gérer les contacts via l’API et MCP
Créez, importez, exportez, recherchez, organisez les contacts et groupes dans TrekMail via l’API de messages et MCP, avec endpoints, portées et pagination.
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
▼
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
- Type
- Référence
- Difficulté
- Intermédiaire
- Forfaits
- Starter · Pro · Agency
- Dernière mise à jour
- 10 sept. 2026
Le carnet d’adresses de votre boîte mail est entièrement programmable. L’API de messages et les outils MCP peuvent créer, modifier et supprimer des contacts, effectuer des importations et des exportations groupées (CSV ou vCard), rechercher dans un grand carnet d’adresses et organiser les personnes en groupes. Il s’agit des mêmes données que voient votre webmail et vos clients CardDAV. Ainsi, un contact ajouté par un agent d’IA apparaît sur votre téléphone, et un contact ajouté sur votre téléphone est visible par l’API.
Avant de commencer
- Les contacts utilisent l’interface du jeton de messages (
/api/v1/messages/...) et ses portées, et non un jeton d’API du tableau de bord. - Chaque appel est limité à la boîte mail propre au jeton. Un jeton peut uniquement voir et gérer ses propres contacts et groupes, jamais ceux d’une autre boîte mail.
- Les contacts sont identifiés par leur adresse e-mail au sein d’une boîte mail. Une importation met à jour un contact correspondant. La création d’un contact avec une adresse existante renvoie ce contact sans modification au lieu de créer un doublon.
- Les réponses de liste renvoient un ensemble de champs clair et lisible (nom, e-mail, société, poste, téléphone, adresse, date de naissance et notes). La carte CardDAV brute associée à un contact synchronisé n’est jamais renvoyée. Vous obtenez toujours la version épurée.
- L’importation accepte les fichiers CSV et vCard (
.vcf) jusqu’à 10 MB et comprend les formats d’exportation de Google Contacts, Outlook, Apple et Roundcube, y compris les particularités UTF-8, UTF-16 et BOM.
Portées
| Portée | Fonction |
|---|---|
messages:read |
Répertorier et rechercher les contacts, répertorier les groupes et leurs membres, exporter |
messages:write |
Créer, mettre à jour, supprimer et importer des contacts, créer et gérer des groupes |
Gérer les contacts
Chemin de base : /api/v1/messages/contacts
| Méthode | Chemin | Portée | Objectif |
|---|---|---|---|
GET |
/contacts |
messages:read |
Répertorier les contacts avec recherche et pagination |
POST |
/contacts |
messages:write |
Créer un contact |
PATCH |
/contacts/{id} |
messages:write |
Mettre à jour un contact |
DELETE |
/contacts/{id} |
messages:write |
Supprimer un contact |
POST |
/contacts/import |
messages:write |
Importer en masse un fichier CSV ou vCard |
GET |
/contacts/export |
messages:read |
Exporter tous les contacts au format CSV ou vCard |
Répertorier et rechercher
GET /api/v1/messages/contacts?q=alice&per_page=50&page=1
Scope: messages:read
q recherche une correspondance dans le nom ou l’adresse e-mail. Les résultats sont paginés (per_page de 1 à 100, 50 par défaut) et accompagnés d’un bloc pagination (total, per_page, current_page, last_page). Vous pouvez ainsi parcourir un grand carnet d’adresses jusqu’au bout au lieu de vous arrêter à la première page.
Créer un contact
POST /api/v1/messages/contacts
Scope: messages:write
{
"email": "ada@example.com",
"name": "Ada Lovelace",
"company": "Analytical Engines",
"job_title": "Mathematician",
"phone": "+1 555 0100",
"address": "London",
"birthday": "1815-12-10",
"notes": "Met at the conference"
}
Seul email est obligatoire. Si un contact avec cette adresse existe déjà, le contact existant est renvoyé sans modification. La création ne produit jamais de doublon et n’écrase pas les informations enregistrées.
Importer en masse
POST /api/v1/messages/contacts/import
Scope: messages:write
{
"content_base64": "<base64 of your .csv or .vcf file>",
"format": "csv"
}
Envoyez le fichier encodé en base64 avec format défini sur csv ou vcf (10 MB maximum après décodage). La réponse indique le nombre de lignes appliquées et le nombre de lignes ignorées faute d’adresse e-mail utilisable :
{ "imported": 128, "skipped": 3 }
Les en-têtes de colonnes des exportations Google, Outlook, Apple et Roundcube sont reconnus automatiquement. La plupart des exportations peuvent donc être importées sans aucune modification.
Exporter
GET /api/v1/messages/contacts/export?format=vcard
Scope: messages:read
Renvoie l’intégralité du carnet d’adresses sous la forme d’un fichier unique encodé en base64 :
{ "format": "vcard", "content_base64": "..." }
Utilisez format=csv pour obtenir un fichier adapté aux feuilles de calcul ou format=vcard pour obtenir un fichier .vcf à charger dans un autre client de messagerie.
Groupes de contacts
Les groupes sont des listes de distribution dans le carnet d’adresses. Chemin de base : /api/v1/messages/contact-groups
| Méthode | Chemin | Portée | Objectif |
|---|---|---|---|
GET |
/contact-groups |
messages:read |
Répertorier les groupes, chacun avec son contact_count |
POST |
/contact-groups |
messages:write |
Créer un groupe |
PATCH |
/contact-groups/{id} |
messages:write |
Renommer un groupe |
DELETE |
/contact-groups/{id} |
messages:write |
Supprimer un groupe |
GET |
/contact-groups/{id}/members |
messages:read |
Répertorier les contacts d’un groupe |
POST |
/contact-groups/{id}/members |
messages:write |
Ajouter des contacts à un groupe |
DELETE |
/contact-groups/{id}/members |
messages:write |
Retirer des contacts d’un groupe |
Voir qui appartient à un groupe
GET /api/v1/messages/contact-groups/42/members?per_page=50&page=1
Scope: messages:read
Renvoie les contacts du groupe, avec les mêmes champs épurés que dans la liste des contacts, ainsi qu’un bloc pagination et le contact_count total du groupe. Vous pouvez ainsi lire la composition du groupe au lieu de la modifier à l’aveugle.
Ajouter ou retirer des membres
POST /api/v1/messages/contact-groups/42/members
Scope: messages:write
{ "contact_ids": [11, 12, 13] }
L’ajout est idempotent : un contact déjà présent dans le groupe reste inchangé. Seuls les contacts appartenant à la même boîte mail peuvent être ajoutés. Chaque requête d’ajout ou de retrait accepte entre 1 et 200 identifiants de contact. Les lots plus grands doivent être divisés en plusieurs requêtes.
Outils MCP
Le même carnet d’adresses est accessible aux agents d’IA par MCP, aussi bien sur le serveur stdio privé que sur le serveur MCP public :
| Outil | Portée | Objectif |
|---|---|---|
list_contacts |
read | Répertorier et rechercher les contacts avec pagination |
create_contact |
write | Créer un contact |
update_contact |
write | Mettre à jour un contact |
delete_contact |
write | Supprimer un contact |
import_contacts |
write | Importer un fichier CSV/vCard en base64 |
export_contacts |
read | Exporter tous les contacts au format CSV/vCard |
list_contact_groups |
read | Répertorier les groupes avec le nombre de membres |
list_contact_group_members |
read | Répertorier les contacts d’un groupe |
create_contact_group |
write | Créer un groupe |
update_contact_group |
write | Renommer un groupe |
delete_contact_group |
write | Supprimer un groupe |
add_contact_group_members |
write | Ajouter des contacts à un groupe |
remove_contact_group_members |
write | Retirer des contacts d’un groupe |
Les outils d’écriture nécessitent toujours la portée d’écriture du jeton de messages. Un administrateur MCP en hébergement local peut également exiger une approbation explicite pour les actions d’écriture. Un agent peut ainsi consulter les contacts sans pouvoir les modifier.
Articles associés
Articles similaires
Accédez aux guides voisins qui prolongent votre démarche.