Contacts
Listez les contacts de votre entreprise et créez-en de nouveaux — les personnes à qui vous envoyez des documents.
Les contacts sont le carnet d'adresses partagé de votre entreprise — les personnes à qui vous envoyez des documents. L'API vous permet de les consulter et d'en ajouter. La lecture et l'écriture ont des scopes distincts, de sorte qu'une clé qui a seulement besoin de trouver des destinataires ne peut pas enrichir votre carnet d'adresses.
Lister les contacts
Requiert le scope contacts:read.
Endpoint
GET https://api2.bunnydoc.com/v1/contacts
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
page | integer | Numéro de page, à partir de 1. Par défaut 1. |
per_page | integer | Résultats par page, 1–100. Par défaut 25. |
search | string | Facultatif. Filtre par nom ou e-mail, jusqu'à 200 caractères. |
Exemple de requête
curl "https://api2.bunnydoc.com/v1/contacts?search=acme" \
-H "Authorization: Bearer <access_token>"GET /v1/contacts?search=acme HTTP/1.1
Host: api2.bunnydoc.com
Authorization: Bearer <access_token>Réponse
{
"data": [
{
"id": "018f7a1b-2c3d-7e4f-8a9b-0c1d2e3f4a5b",
"first_name": "Jane",
"middle_name": null,
"surname": "Doe",
"email": "jane@acme.com",
"contact_number": "+15551234567",
"job_title": "Head of Legal",
"company_name": "Acme Ltd",
"custom_fields": {},
"created_at": "2026-06-14T08:00:00.000Z",
"updated_at": "2026-06-14T08:00:00.000Z"
}
],
"pagination": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 }
}Créer un contact
Requiert le scope contacts:write. Créer un contact consomme le quota de contacts de votre plan.
Endpoint
POST https://api2.bunnydoc.com/v1/contacts
Corps
| Champ | Type | Requis | Notes |
|---|---|---|---|
first_name | string | Oui | Jusqu'à 100 caractères. |
surname | string | Oui | Jusqu'à 100 caractères. |
email | string | Oui | E-mail valide, jusqu'à 255 caractères. |
contact_number | string | Oui | Jusqu'à 50 caractères. |
middle_name | string | Non | Jusqu'à 100 caractères. |
job_title | string | Non | Jusqu'à 150 caractères. |
company_name | string | Non | Jusqu'à 200 caractères. |
secondary_phone | string | Non | Jusqu'à 50 caractères. |
notes | string | Non | Jusqu'à 2000 caractères. |
custom_fields | object | Non | Paires clé-valeur pour les champs personnalisés de votre entreprise. |
Exemple de requête
curl -X POST https://api2.bunnydoc.com/v1/contacts \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"surname": "Doe",
"email": "jane@acme.com",
"contact_number": "+15551234567",
"job_title": "Head of Legal",
"company_name": "Acme Ltd"
}'POST /v1/contacts HTTP/1.1
Host: api2.bunnydoc.com
Authorization: Bearer <access_token>
Content-Type: application/json
{
"first_name": "Jane",
"surname": "Doe",
"email": "jane@acme.com",
"contact_number": "+15551234567",
"job_title": "Head of Legal",
"company_name": "Acme Ltd"
}Réponse
{
"id": "018f7a1b-2c3d-7e4f-8a9b-0c1d2e3f4a5b",
"first_name": "Jane",
"middle_name": null,
"surname": "Doe",
"email": "jane@acme.com",
"contact_number": "+15551234567",
"job_title": "Head of Legal",
"company_name": "Acme Ltd",
"custom_fields": {},
"created_at": "2026-07-28T10:15:00.000Z",
"updated_at": "2026-07-28T10:15:00.000Z"
}Erreurs
| Statut | error.code | Quand cela se produit |
|---|---|---|
403 | quota_exceeded | Votre entreprise a atteint sa limite de contacts. |
422 | validation_failed | Un champ requis manque dans le corps ou une valeur est invalide. |
Vous n'êtes pas obligé d'enregistrer les contacts pour leur envoyer
Créer un contact est facultatif. Lors d'un envoi depuis un modèle, vous fournissez le nom et l'e-mail de chaque destinataire directement — le carnet d'adresses sert à la réutilisation, ce n'est pas un prérequis pour envoyer.