Français
Mon compte
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.
PATCH /api/v1/me
Changer mon nom d’affichage
Seulement le nom : l’adresse est l’identifiant de connexion et reste en lecture seule. Pas de ligne d’audit.
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 |
Schéma JSON
json
{
"type": "object",
"properties": { "name": { "type": "string", "minLength": 1, "maxLength": 200 } },
"required": [ "name" ]
}Réponses
200 — Le membre, renommé.
| Champ | Type | Requis |
|---|---|---|
member | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"member": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"email": { "type": "string" },
"name": { "type": "string" },
"role": { "type": "string", "enum": [ "member", "admin" ] },
"status": { "type": "string", "enum": [ "active", "suspended" ] }
},
"required": [ "id", "email", "name", "role", "status" ],
"additionalProperties": false
}
},
"required": [ "member" ],
"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.
Codes d’erreur — auth.invalid_settings. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
PATCH /api/v1/me/settings
Changer mes préférences
Langue, mode d’affichage et thème. Seules les clés présentes sont écrites ; un corps vide ne change rien et rend les préférences courantes.
Accès — Session de membre ou clé d’API portant profile:write.
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
locale | "fr" | "en" | non |
theme | "light" | "dark" | "system" | non |
themeName | "classic" | "meridian" | "atelier" | non |
Schéma JSON
json
{
"type": "object",
"properties": {
"locale": { "type": "string", "enum": [ "fr", "en" ] },
"theme": { "type": "string", "enum": [ "light", "dark", "system" ] },
"themeName": { "type": "string", "enum": [ "classic", "meridian", "atelier" ] }
}
}Réponses
200 — Les préférences, après écriture.
| Champ | Type | Requis |
|---|---|---|
settings | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"settings": {
"type": "object",
"properties": {
"locale": { "type": "string", "enum": [ "fr", "en" ] },
"theme": { "type": "string", "enum": [ "light", "dark", "system" ] },
"themeName": { "type": "string", "enum": [ "classic", "meridian", "atelier" ] }
},
"additionalProperties": false
}
},
"required": [ "settings" ],
"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.
Codes d’erreur — auth.invalid_settings. Les codes communs (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) s’appliquent à toutes les routes ; voir Erreurs.
POST /api/v1/me/password
Changer mon mot de passe
Exige le mot de passe actuel. Partage la limite de débit de la connexion (par IP). Un mot de passe actuel faux est un 403, pas un 401 : la session reste valide. Révoque éventuellement les autres sessions. Journalisé dans l’audit.
Accès — Session de membre seulement : les clés d’API sont refusées (api_key.session_required).
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
currentPassword | string | oui |
newPassword | string | oui |
revokeOtherSessions | boolean | non |
Schéma JSON
json
{
"type": "object",
"properties": {
"currentPassword": { "type": "string", "minLength": 1, "maxLength": 256 },
"newPassword": { "type": "string", "minLength": 12, "maxLength": 256 },
"revokeOtherSessions": { "default": true, "type": "boolean" }
},
"required": [ "currentPassword", "newPassword" ]
}Réponses
204 — Changé.
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 — auth.too_many_attempts, auth.weak_password, auth.invalid_credentials, auth.invalid_current_password. 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/scope
Lire mon périmètre d’ingestion
Accès — Session de membre ou clé d’API portant profile:read.
Réponses
200 — Le périmètre du membre.
| Champ | Type | Requis |
|---|---|---|
scope | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"scope": {
"type": "object",
"properties": {
"mode": { "type": "string", "enum": [ "exclude", "include" ] },
"domains": {
"maxItems": 500,
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 320 }
},
"emails": {
"maxItems": 500,
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 320 }
}
},
"required": [ "mode", "domains", "emails" ],
"additionalProperties": false
}
},
"required": [ "scope" ],
"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.
PUT /api/v1/scope
Remplacer mon périmètre d’ingestion
Un remplacement complet, pas un patch. Vaut pour l’ingestion future seulement ; rien n’est rejoué sur les exécutions passées. La réponse est la forme normalisée.
Accès — Session de membre ou clé d’API portant profile:write.
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
mode | "exclude" | "include" | non |
domains | string[] | non |
emails | string[] | non |
Schéma JSON
json
{
"type": "object",
"properties": {
"mode": { "default": "exclude", "type": "string", "enum": [ "exclude", "include" ] },
"domains": {
"default": [],
"maxItems": 500,
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 320 }
},
"emails": {
"default": [],
"maxItems": 500,
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 320 }
}
}
}Réponses
200 — Le périmètre du membre, normalisé.
| Champ | Type | Requis |
|---|---|---|
scope | object | oui |
Même schéma que GET /api/v1/scope.
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, governance.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/dispatch-policy
Lire ma politique de déclenchement
Accès — Session de membre ou clé d’API portant profile:read.
Réponses
200 — La politique.
| Champ | Type | Requis |
|---|---|---|
policy | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"policy": {
"type": "object",
"properties": { "mode": { "type": "string", "enum": [ "all", "priority" ] } },
"required": [ "mode" ],
"additionalProperties": false
}
},
"required": [ "policy" ],
"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.
PUT /api/v1/dispatch-policy
Régler ma politique de déclenchement
Bascule entre all (tout workflow qui correspond tourne) et priority (seul le premier, par priorité de workflow). L’ordre lui-même se règle workflow par workflow.
Accès — Session de membre ou clé d’API portant profile:write.
Corps de la requête (application/json)
| Champ | Type | Requis |
|---|---|---|
mode | "all" | "priority" | oui |
Schéma JSON
json
{
"type": "object",
"properties": { "mode": { "type": "string", "enum": [ "all", "priority" ] } },
"required": [ "mode" ]
}Réponses
200 — La politique.
| Champ | Type | Requis |
|---|---|---|
policy | object | oui |
Même schéma que GET /api/v1/dispatch-policy.
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, governance.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.