FAQ API
Endpoints admin (JWT)
Base path: /api/v1/dashboard/faq
CRUD
GET /?entityType=product&entityId=123&locale=es— lista FAQs de una entidadPOST /— crearPATCH /:id— actualizarDELETE /:id— borrar
Bulk
POST /bulk— array de objetos FAQPOST /import/csv— body CSV (mira Editor de FAQ)GET /export/csv— exportar. Sin filtros → todas las FAQs del tenant. Con?entityType=…&entityId=…→ filtrado.GET /template— formato JSON de ejemplo
Generación
POST /generate— FAQs generadas por LLM para una entidad dada (estado draft, pendientes de aprobación)POST /:id/approve— aprueba un draft generadoPOST /:id/reject— rechaza
Endpoint público (API key)
Usado por el embed widget. Rate-limit de 200 req / 5 min por key.
GET /api/v1/public/faq/render?entityType=product&entityId=123&pageUrl=https://shop.example.com/products/foo
X-API-Key: sk_live_...
Origin: https://shop.example.com
La cabecera Origin debe coincidir con la lista blanca allowedDomains de la API key.
Respuesta:
{
"data": {
"entries": [{ "question": "...", "answer": "..." }],
"jsonLd": { "@context": "https://schema.org", "@type": "FAQPage", ... },
"scriptTag": "<script type=\"application/ld+json\">...</script>",
"htmlBlock": "<div class=\"clione-faq\">...</div>",
"entryCount": 5,
"specificCount": 3,
"globalCount": 2
}
}
La respuesta fusiona automáticamente las FAQs específicas de la entidad con las globales del tenant (primero las específicas, luego las globales, cada bloque ordenado por sortOrder).
Tipos de entidad
product, variant, category, collection, brand, page, global.