Endpoints
| Méthode | Chemin | Description |
|---|---|---|
GET | /brands | Lister toutes les marques |
POST | /brands | Cré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
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom de la marque (max 100 caractères) |
domain | string | Non | Domaine de la marque (max 253 caractères) |
aliases | string[] | Non | Noms alternatifs à surveiller |
language | string | Non | Code de langue BCP-47, ex. fr (2-5 caractères) |
country | string | Non | Code 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
| HTTP | code | Cause |
|---|---|---|
409 | CONFLICT | Une marque avec ce nom existe déjà |
422 | VALIDATION_ERROR | Corps de requête invalide |
422 | LIMIT_REACHED | Limite 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ètre | Description |
|---|---|
brandId | Identifiant 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
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Non | Nouveau nom (max 100 caractères) |
domain | string | null | Non | Nouveau domaine, ou null pour le supprimer |
aliases | string[] | Non | Nouveau tableau d'alias |
language | string | Non | Code de langue BCP-47 (2-5 caractères) |
autoWeeklyAnalysis | boolean | Non | Activer 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éthode | Chemin | Description |
|---|---|---|
GET | /brands/{brandId}/avatars | Lister les avatars |
POST | /brands/{brandId}/avatars | Cré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
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom d'affichage de l'avatar (max 100 caractères) |
sector | string | Oui | Secteur d'activité (max 100 caractères) |
role | string | Oui | Rôle ou type de persona (max 100 caractères) |
objectives | string | Oui | Objectifs et contexte de ce persona (max 500 caractères) |
description | string | Non | Description longue optionnelle (max 1000 caractères) |
isDefault | boolean | Non | Dé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" }
}