Endpoints

MéthodeCheminDescription
GET/brandsLister toutes les marques
POST/brandsCréer une marque
GET/brands/{brandId}Obtenir les détails d'une marque
PATCH/brands/{brandId}Modifier une marque
DELETE/brands/{brandId}Supprimer une marque

GET /brands

Liste toutes les marques appartenant au compte authentifié.

curl https://mentova.ai/api/v1/brands \
  -H "X-API-Key: mtv_live_votre_cle"

Réponse 200

{
  "data": [
    {
      "id": "clxabc123",
      "name": "Acme Corp",
      "domain": "acme.com",
      "aliases": ["Acme"],
      "language": "fr",
      "country": "FR",
      "autoWeeklyAnalysis": false,
      "createdAt": "2026-01-10T09:00:00.000Z"
    }
  ]
}

POST /brands

Crée une nouvelle marque. Le nombre de marques autorisées dépend de votre plan.

Corps de la requête

ChampTypeRequisDescription
namestringOuiNom de la marque (max 100 caractères)
domainstringNonDomaine de la marque (max 253 caractères)
aliasesstring[]NonNoms alternatifs à surveiller
languagestringNonCode de langue BCP-47, ex. fr (2-5 caractères)
countrystringNonCode pays ISO 3166-1 alpha-2, ex. FR (2-5 caractères)
curl -X POST https://mentova.ai/api/v1/brands \
  -H "X-API-Key: mtv_live_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "domain": "acme.com",
    "aliases": ["Acme"],
    "language": "fr",
    "country": "FR"
  }'

Réponse 201

{
  "data": {
    "id": "clxabc123",
    "name": "Acme Corp",
    "domain": "acme.com",
    "aliases": ["Acme"],
    "language": "fr",
    "country": "FR",
    "autoWeeklyAnalysis": false,
    "createdAt": "2026-06-01T09:00:00.000Z"
  }
}

Erreurs

HTTPcodeCause
409CONFLICTUne marque avec ce nom existe déjà
422VALIDATION_ERRORCorps de requête invalide
422LIMIT_REACHEDLimite de marques du plan atteinte

GET /brands/

Obtient les détails complets d'une marque.

curl https://mentova.ai/api/v1/brands/clxabc123 \
  -H "X-API-Key: mtv_live_votre_cle"

Paramètres de chemin

ParamètreDescription
brandIdIdentifiant de la marque

Réponse 200

{
  "data": {
    "id": "clxabc123",
    "name": "Acme Corp",
    "domain": "acme.com",
    "aliases": ["Acme"],
    "language": "fr",
    "country": "FR",
    "autoWeeklyAnalysis": false,
    "createdAt": "2026-01-10T09:00:00.000Z"
  }
}

PATCH /brands/

Modifie un ou plusieurs champs d'une marque. Seuls les champs inclus dans le corps de la requête sont mis à jour.

Corps de la requête

ChampTypeRequisDescription
namestringNonNouveau nom (max 100 caractères)
domainstring | nullNonNouveau domaine, ou null pour le supprimer
aliasesstring[]NonNouveau tableau d'alias
languagestringNonCode de langue BCP-47 (2-5 caractères)
autoWeeklyAnalysisbooleanNonActiver ou désactiver les campagnes hebdomadaires automatiques
curl -X PATCH https://mentova.ai/api/v1/brands/clxabc123 \
  -H "X-API-Key: mtv_live_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{"autoWeeklyAnalysis": true}'

Réponse 200

{
  "data": {
    "id": "clxabc123",
    "name": "Acme Corp",
    "domain": "acme.com",
    "autoWeeklyAnalysis": true
  }
}

DELETE /brands/

Supprime définitivement une marque et toutes les données associées.

curl -X DELETE https://mentova.ai/api/v1/brands/clxabc123 \
  -H "X-API-Key: mtv_live_votre_cle"

Réponse 200

{
  "data": { "deleted": true }
}

Avatars

Les avatars d'audience définissent des profils persona utilisés pour contextualiser les prompts LLM lors des campagnes. Maximum 5 avatars par marque.

Endpoints

MéthodeCheminDescription
GET/brands/{brandId}/avatarsLister les avatars
POST/brands/{brandId}/avatarsCréer un avatar
PATCH/brands/{brandId}/avatars/{avatarId}Modifier un avatar
DELETE/brands/{brandId}/avatars/{avatarId}Supprimer un avatar

GET /brands//avatars

curl https://mentova.ai/api/v1/brands/clxabc123/avatars \
  -H "X-API-Key: mtv_live_votre_cle"

Réponse 200

{
  "data": [
    {
      "id": "clxavatar1",
      "brandId": "clxabc123",
      "name": "Sophie, Directrice Marketing",
      "sector": "SaaS B2B",
      "role": "Directrice Marketing",
      "objectives": "Augmenter le share of voice de la marque dans les résultats IA",
      "description": null,
      "isDefault": true,
      "createdAt": "2026-04-17T10:00:00.000Z",
      "updatedAt": "2026-04-17T10:00:00.000Z"
    }
  ]
}

POST /brands//avatars

Corps de la requête

ChampTypeRequisDescription
namestringOuiNom d'affichage de l'avatar (max 100 caractères)
sectorstringOuiSecteur d'activité (max 100 caractères)
rolestringOuiRôle ou type de persona (max 100 caractères)
objectivesstringOuiObjectifs et contexte de ce persona (max 500 caractères)
descriptionstringNonDescription longue optionnelle (max 1000 caractères)
isDefaultbooleanNonDéfinir comme avatar par défaut pour les nouvelles campagnes
curl -X POST https://mentova.ai/api/v1/brands/clxabc123/avatars \
  -H "X-API-Key: mtv_live_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Sophie, Directrice Marketing",
    "sector": "SaaS B2B",
    "role": "Directrice Marketing",
    "objectives": "Augmenter le share of voice de la marque dans les résultats IA",
    "isDefault": true
  }'

Réponse 201

{
  "data": {
    "id": "clxavatar1",
    "brandId": "clxabc123",
    "name": "Sophie, Directrice Marketing",
    "sector": "SaaS B2B",
    "role": "Directrice Marketing",
    "objectives": "Augmenter le share of voice de la marque dans les résultats IA",
    "description": null,
    "isDefault": true,
    "createdAt": "2026-04-17T10:00:00.000Z",
    "updatedAt": "2026-04-17T10:00:00.000Z"
  }
}

PATCH /brands//avatars/

Tous les champs sont optionnels. Seuls les champs fournis sont mis à jour.

curl -X PATCH https://mentova.ai/api/v1/brands/clxabc123/avatars/clxavatar1 \
  -H "X-API-Key: mtv_live_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{"isDefault": false}'

Réponse 200

{
  "data": {
    "id": "clxavatar1",
    "isDefault": false
  }
}

DELETE /brands//avatars/

curl -X DELETE https://mentova.ai/api/v1/brands/clxabc123/avatars/clxavatar1 \
  -H "X-API-Key: mtv_live_votre_cle"

Réponse 200

{
  "data": { "id": "clxavatar1" }
}