Skip to content

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)

ChampTypeRequis
namestringoui
Schéma JSON
json
{
  "type": "object",
  "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 200 } },
  "required": [ "name" ]
}

Réponses

200 — Le membre, renommé.

ChampTypeRequis
memberobjectoui
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)

ChampTypeRequis
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.

ChampTypeRequis
settingsobjectoui
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)

ChampTypeRequis
currentPasswordstringoui
newPasswordstringoui
revokeOtherSessionsbooleannon
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.

ChampTypeRequis
scopeobjectoui
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)

ChampTypeRequis
mode"exclude" | "include"non
domainsstring[]non
emailsstring[]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é.

ChampTypeRequis
scopeobjectoui

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.

ChampTypeRequis
policyobjectoui
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)

ChampTypeRequis
mode"all" | "priority"oui
Schéma JSON
json
{
  "type": "object",
  "properties": { "mode": { "type": "string", "enum": [ "all", "priority" ] } },
  "required": [ "mode" ]
}

Réponses

200 — La politique.

ChampTypeRequis
policyobjectoui

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.