Documentation développeur

API Plausa

Une API REST pour brancher vos témoignages sur votre site, votre CRM ou vos tableaux de bord internes. Réponses JSON, authentification par clé, données strictement limitées à votre compte. L'API est incluse dans le plan Business.

Authentification

Générez votre clé dans Facturation → Clés API, puis envoyez-la dans l'en-tête x-api-key (l'en-tête Authorization: Bearer fonctionne aussi). Une clé n'ouvre l'accès qu'aux données de son propre compte, et cesse de fonctionner dès que la clé est révoquée ou que le compte quitte le plan Business.

curl https://plausa.lovable.app/api/public/v1/stats \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx"

Limites et sécurité

  • 120 requêtes par minute et par clé ; au-delà, réponse 429 avec en-tête Retry-After.
  • Toutes les réponses sont filtrées sur le propriétaire de la clé : aucun accès croisé entre comptes.
  • Jusqu'à 5 clés actives par compte, rotation et révocation immédiates depuis le tableau de bord.
  • Le secret complet n'est affiché qu'une seule fois ; seule son empreinte est stockée.

Endpoints

GET/api/public/v1/testimonials

Liste les témoignages du compte, filtrable par sentiment et par thème détecté.

Paramètres

  • limit Nombre de résultats, 1 à 100 (défaut 50).
  • offset Décalage pour la pagination (défaut 0).
  • status new | approved | hidden
  • sentiment very_positive | positive | neutral | mixed
  • theme Clé stable du thème, ex. customer-support
  • medium text | video

Exemple de requête

curl "https://plausa.lovable.app/api/public/v1/testimonials?status=approved&sentiment=very_positive&limit=20" \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx"

Exemple de réponse

{
  "data": [
    {
      "id": "6f1c…",
      "author_name": "Claire Meunier",
      "author_role": "Head of Sales, Kairo",
      "rating": 5,
      "medium": "text",
      "source": "link",
      "body_original": "…",
      "body_polished": "…",
      "published_version": "polished",
      "source_locale": "fr",
      "translations": { "en": "…", "es": "…" },
      "sentiment": "very_positive",
      "sentiment_summary": "…",
      "themes": [{ "key": "customer-support", "labels": { "fr": "Support client", "en": "Customer support", "es": "Soporte" } }],
      "status": "approved",
      "created_at": "2026-08-14T09:12:00.000Z"
    }
  ],
  "count": 1,
  "total": 37,
  "limit": 50,
  "offset": 0
}
GET/api/public/v1/forms

Liste les formulaires de collecte, ou un seul via son slug.

Paramètres

  • slug Slug du formulaire ou du mur.

Exemple de requête

curl https://plausa.lovable.app/api/public/v1/forms \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx"

Exemple de réponse

{
  "data": [
    {
      "id": "b21e…",
      "slug": "kairo-2026",
      "name": "Clients Kairo",
      "title": "Racontez-nous votre expérience",
      "questions": ["…", "…"],
      "locale": "fr",
      "is_active": true,
      "testimonial_count": 12,
      "public_url": "https://plausa.lovable.app/t/kairo-2026",
      "created_at": "2026-07-02T10:00:00.000Z"
    }
  ],
  "count": 1
}
POST/api/public/v1/forms

Crée un formulaire de collecte et renvoie son lien public.

Paramètres

  • body Corps JSON : name, title, intro, accentColor, questions (1 à 5), locale, isActive.

Exemple de requête

curl -X POST https://plausa.lovable.app/api/public/v1/forms \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "name": "Clients Kairo",
    "title": "Racontez-nous votre expérience",
    "intro": "2 minutes, pas plus.",
    "accentColor": "#1F4B43",
    "questions": ["Quel problème cherchiez-vous à résoudre ?"],
    "locale": "fr"
  }'

Exemple de réponse

{
  "data": {
    "id": "d4a9…",
    "slug": "k3f9a2",
    "public_url": "https://plausa.lovable.app/t/k3f9a2"
  }
}
GET/api/public/v1/walls

Récupère un mur (métadonnées) et, avec un slug, ses témoignages approuvés.

Paramètres

  • slug Slug du formulaire ou du mur.
  • locale fr | en | es — langue des témoignages renvoyés.

Exemple de requête

curl "https://plausa.lovable.app/api/public/v1/walls?slug=kairo&locale=en" \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx"

Exemple de réponse

{
  "data": {
    "id": "9ac1…",
    "slug": "kairo",
    "title": "Ils parlent de nous",
    "brand_name": "Kairo",
    "layout": "masonry",
    "locale": "en",
    "public_url": "https://plausa.lovable.app/wall/kairo",
    "embed_url": "https://plausa.lovable.app/embed/kairo",
    "items": [{ "id": "6f1c…", "authorName": "Claire Meunier", "body": "…", "rating": 5 }],
    "item_count": 24
  }
}
GET/api/public/v1/stats

Statistiques de base du compte : volumes, sentiments, notes, thèmes.

Paramètres

Aucun paramètre.

Exemple de requête

curl https://plausa.lovable.app/api/public/v1/stats \
  -H "x-api-key: plausa_sk_xxxxxxxxxxxx"

Exemple de réponse

{
  "data": {
    "testimonials": {
      "total": 37,
      "last_30_days": 9,
      "by_status": { "approved": 30, "new": 7 },
      "by_sentiment": { "very_positive": 21, "positive": 14, "neutral": 2 },
      "by_medium": { "text": 28, "video": 9 },
      "average_rating": 4.78
    },
    "top_themes": [{ "key": "customer-support", "count": 11 }],
    "forms": 3,
    "walls": 2
  }
}

Explorateur interactif (OpenAPI)

Testez chaque endpoint directement depuis cette page : cliquez sur « Authorize », collez votre clé Business, puis « Try it out » sur l'opération souhaitée. Les schémas de requête et de réponse sont générés depuis le contrat OpenAPI 3.1.

Télécharger le contrat openapi.json

Codes d'erreur

401
Clé absente, inconnue ou révoquée.
403
Le compte n'est pas (ou plus) sur le plan Business.
400 / 422
Paramètre de filtre invalide ou corps JSON refusé.
402
Quota du plan atteint lors d'une création.
429
Limite de débit dépassée.

Prêt à connecter vos outils ?

L'API fait partie du plan Business, avec la marque blanche et les comptes d'équipe.

Voir les tarifs