A REST API to pipe your testimonials into your website, CRM or internal dashboards. JSON responses, key-based auth, data scoped strictly to your account. The API ships with the Business plan.
GET/api/public/v1/testimonials
Lists the account's testimonials, filterable by sentiment and detected theme.
Parameters
limit Result count, 1 to 100 (default 50).offset Pagination offset (default 0).status new | approved | hiddensentiment very_positive | positive | neutral | mixedtheme Stable theme key, e.g. customer-supportmedium text | video
Example request
curl "https://plausa.lovable.app/api/public/v1/testimonials?status=approved&sentiment=very_positive&limit=20" \
-H "x-api-key: plausa_sk_xxxxxxxxxxxx"
Example response
{
"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
Lists collection forms, or a single one by slug.
Parameters
Example request
curl https://plausa.lovable.app/api/public/v1/forms \
-H "x-api-key: plausa_sk_xxxxxxxxxxxx"
Example response
{
"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
Creates a collection form and returns its public link.
Parameters
body JSON body: name, title, intro, accentColor, questions (1-5), locale, isActive.
Example request
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"
}'
Example response
{
"data": {
"id": "d4a9…",
"slug": "k3f9a2",
"public_url": "https://plausa.lovable.app/t/k3f9a2"
}
}
GET/api/public/v1/walls
Fetches a wall's metadata and, with a slug, its approved testimonials.
Parameters
slug Form or wall slug.locale fr | en | es — language of the returned testimonials.
Example request
curl "https://plausa.lovable.app/api/public/v1/walls?slug=kairo&locale=en" \
-H "x-api-key: plausa_sk_xxxxxxxxxxxx"
Example response
{
"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
Baseline account stats: volumes, sentiment split, ratings, themes.
Parameters
No parameters.
Example request
curl https://plausa.lovable.app/api/public/v1/stats \
-H "x-api-key: plausa_sk_xxxxxxxxxxxx"
Example response
{
"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
}
}
Ready to wire it up?
The API is part of the Business plan, alongside white label and team seats.
See pricing