Français
Signatures
Les routes sont relatives à <PUBLIC_BASE_URL> ; les corps de requête et de réponse sont en JSON sauf mention contraire. L’authentification, les portées, la pagination et le format des erreurs sont décrits dans les guides de l’API REST.
GET /api/v1/signatures
Lister mes signatures
Les signatures du membre connecté, puis celles de l’organisation. L’ordre est le contrat : un client qui prend la première marquée par défaut trouve la sienne, pas celle de la maison.
Accès — Session de membre ou clé d’API portant profile:read.
Réponses
200 — Les signatures.
| Champ | Type | Requis |
|---|---|---|
signatures | object[] | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"signatures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"scope": { "type": "string", "enum": [ "member", "org" ] },
"name": { "type": "string" },
"bodyText": { "type": "string" },
"bodyHtml": { "type": "string" },
"isDefault": { "type": "boolean" },
"createdAt": { "type": "string" },
"updatedAt": { "type": "string" }
},
"required": [
"id",
"scope",
"name",
"bodyText",
"bodyHtml",
"isDefault",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
}
},
"required": [ "signatures" ],
"additionalProperties": false
}401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
POST /api/v1/signatures
Créer une signature
Le corps HTML est assaini à l’écriture. scope: "org" est réservé aux administrateurs. Un nom déjà porté par le même propriétaire est refusé.
Accès — Session de membre ou clé d’API portant profile:write.
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
name | string | oui |
bodyText | string | non |
bodyHtml | string | non |
scope | "member" | "org" | non |
isDefault | boolean | non |
Schéma JSON
json
{
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1, "maxLength": 120 },
"bodyText": { "default": "", "type": "string", "maxLength": 10000 },
"bodyHtml": { "default": "", "type": "string", "maxLength": 50000 },
"scope": { "default": "member", "type": "string", "enum": [ "member", "org" ] },
"isDefault": { "type": "boolean" }
},
"required": [ "name" ]
}Réponses
201 — La signature.
| Champ | Type | Requis |
|---|---|---|
signature | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"signature": {
"type": "object",
"properties": {
"id": { "type": "string" },
"scope": { "type": "string", "enum": [ "member", "org" ] },
"name": { "type": "string" },
"bodyText": { "type": "string" },
"bodyHtml": { "type": "string" },
"isDefault": { "type": "boolean" },
"createdAt": { "type": "string" },
"updatedAt": { "type": "string" }
},
"required": [
"id",
"scope",
"name",
"bodyText",
"bodyHtml",
"isDefault",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
},
"required": [ "signature" ],
"additionalProperties": false
}400 — La requête ne respecte pas son schéma.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Cette opération accepte un en-tête Idempotency-Key : rejouer la même requête avec la même clé rend la réponse d’origine au lieu d’agir deux fois. Voir Idempotence.
Codes d’erreur — request.bad_request, auth.forbidden, contacts.duplicate_signature_name. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
PUT /api/v1/signatures/{id}
Modifier une signature
Un remplacement partiel : seuls les champs donnés changent. Une signature hors du périmètre du membre est un 404, jamais un 403 ; celles de l’organisation ne s’écrivent que par les administrateurs.
Accès — Session de membre ou clé d’API portant profile:write.
Paramètres
| Nom | Où | Type | Requis |
|---|---|---|---|
id | chemin | string | oui |
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
name | string | non |
bodyText | string | non |
bodyHtml | string | non |
isDefault | boolean | non |
Schéma JSON
json
{
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1, "maxLength": 120 },
"bodyText": { "type": "string", "maxLength": 10000 },
"bodyHtml": { "type": "string", "maxLength": 50000 },
"isDefault": { "type": "boolean" }
}
}Réponses
200 — La signature, modifiée.
| Champ | Type | Requis |
|---|---|---|
signature | object | oui |
Même schéma que POST /api/v1/signatures.
400 — La requête ne respecte pas son schéma.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Codes d’erreur — request.bad_request, contacts.not_found, contacts.duplicate_signature_name. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
DELETE /api/v1/signatures/{id}
Supprimer une signature
Les fiches du carnet qui la référençaient perdent la référence ; elles ne disparaissent pas avec elle.
Accès — Session de membre ou clé d’API portant profile:write.
Paramètres
| Nom | Où | Type | Requis |
|---|---|---|---|
id | chemin | string | oui |
Réponses
204 — Supprimée.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Codes d’erreur — contacts.not_found. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
GET /api/v1/webmail/signatures
Lister mes signatures
WARNING
Dépréciée.
Les signatures du membre connecté, puis celles de l’organisation. L’ordre est le contrat : un client qui prend la première marquée par défaut trouve la sienne, pas celle de la maison.
Accès — Session de membre ou clé d’API portant profile:read.
Réponses
200 — Les signatures.
| Champ | Type | Requis |
|---|---|---|
signatures | object[] | oui |
Même schéma que GET /api/v1/signatures.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
POST /api/v1/webmail/signatures
Créer une signature
WARNING
Dépréciée.
Le corps HTML est assaini à l’écriture. scope: "org" est réservé aux administrateurs. Un nom déjà porté par le même propriétaire est refusé.
Accès — Session de membre ou clé d’API portant profile:write.
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
name | string | oui |
bodyText | string | non |
bodyHtml | string | non |
scope | "member" | "org" | non |
isDefault | boolean | non |
Même schéma que POST /api/v1/signatures.
Réponses
201 — La signature.
| Champ | Type | Requis |
|---|---|---|
signature | object | oui |
Même schéma que POST /api/v1/signatures.
400 — La requête ne respecte pas son schéma.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Cette opération accepte un en-tête Idempotency-Key : rejouer la même requête avec la même clé rend la réponse d’origine au lieu d’agir deux fois. Voir Idempotence.
Codes d’erreur — request.bad_request, auth.forbidden, contacts.duplicate_signature_name. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
PUT /api/v1/webmail/signatures/{id}
Modifier une signature
WARNING
Dépréciée.
Un remplacement partiel : seuls les champs donnés changent. Une signature hors du périmètre du membre est un 404, jamais un 403 ; celles de l’organisation ne s’écrivent que par les administrateurs.
Accès — Session de membre ou clé d’API portant profile:write.
Paramètres
| Nom | Où | Type | Requis |
|---|---|---|---|
id | chemin | string | oui |
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
name | string | non |
bodyText | string | non |
bodyHtml | string | non |
isDefault | boolean | non |
Même schéma que PUT /api/v1/signatures/{id}.
Réponses
200 — La signature, modifiée.
| Champ | Type | Requis |
|---|---|---|
signature | object | oui |
Même schéma que POST /api/v1/signatures.
400 — La requête ne respecte pas son schéma.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Codes d’erreur — request.bad_request, contacts.not_found, contacts.duplicate_signature_name. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
DELETE /api/v1/webmail/signatures/{id}
Supprimer une signature
WARNING
Dépréciée.
Les fiches du carnet qui la référençaient perdent la référence ; elles ne disparaissent pas avec elle.
Accès — Session de membre ou clé d’API portant profile:write.
Paramètres
| Nom | Où | Type | Requis |
|---|---|---|---|
id | chemin | string | oui |
Réponses
204 — Supprimée.
401 — Aucune session ni clé d’API valide (auth.unauthenticated).
403 — Refusé : rôle insuffisant (auth.forbidden), portée manquante (api_key.scope_missing, details.required la nomme) ou route fermée aux clés (api_key.session_required).
429 — La clé d’API dépasse son débit (api_key.rate_limited) ; Retry-After dit quand réessayer.
Codes d’erreur — contacts.not_found. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.