{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"3795ffaa-aae8-46f4-9aab-c25ef2dd75a7","name":"Klyvora AI","description":"# Klyvora AI — Customer Intelligence API\n\nWelcome to the official API documentation for **Klyvora AI**, powered by the **EchoSense** engine. This documentation will guide you through integrating Klyvora's customer intelligence capabilities into your applications, dashboards, and data pipelines.\n\n---\n\n## 1\\. Overview\n\n**Klyvora AI** is an enterprise-grade **Customer Intelligence Platform** designed to help businesses unlock the hidden value inside unstructured customer feedback.\n\nOur API transforms raw, unstructured feedback — whether submitted as **text** or **voice recordings** — into **actionable, structured insights** that teams can act on immediately. Under the hood, EchoSense orchestrates a multi-model AI pipeline:\n\n- **Large Language Model**: `Llama-3.3-70b-versatile` — used for sentiment analysis, intent detection, topic extraction, and summarization.\n    \n- **Speech-to-Text Model**: `Whisper-large-v3-turbo` — used for high-accuracy transcription of audio feedback across multiple languages and accents.\n    \n- **Inference Layer**: The **Groq SDK**, chosen for its ultra-low-latency inference, ensuring real-time feedback analysis at scale.\n    \n\nWhether you're building a Voice-of-Customer dashboard, an in-app feedback widget, a call-center analytics tool, or a product research platform, Klyvora AI provides the intelligence layer you need — with a single API call.\n\n---\n\n## 2\\. Project Resources\n\nExplore the complete Klyvora AI ecosystem:\n\n| Resource | Link |\n| --- | --- |\n| **Figma Design** | [https://www.figma.com/proto/bKRdU5q74OYXJxaAXLCljD/Work?node-id=502-2&amp;t=zXVrXeegnGTnJAcz-1&amp;scaling=min-zoom&amp;content-scaling=fixed&amp;page-id=32:2&amp;starting-point-node-id=503:128](https://www.figma.com/proto/bKRdU5q74OYXJxaAXLCljD/Work?node-id=502-2&t=zXVrXeegnGTnJAcz-1&scaling=min-zoom&content-scaling=fixed&page-id=32%3A2&starting-point-node-id=503%3A128) |\n| **Live Application** | [klyvora-ai.vercel.app](https://klyvora-ai.vercel.app) |\n| **YouTube Demo** | [https://youtu.be/mvJ5lRVgd9U](https://youtu.be/mvJ5lRVgd9U) |\n| **GitHub Repository** | [github.com/paldpathak404/echosenseai](https://github.com/paldpathak404/echosenseai) |\n\n---\n\n## 3\\. Base URL & Environments\n\nKlyvora AI supports two environments out of the box. You can switch between them using the `{{base_url}}` collection variable.\n\n| Environment | Base URL |\n| --- | --- |\n| **Production** | `https://klyvora-backend.onrender.com` |\n| **Local Development** | `http://localhost:5000` |\n\n> **Tip:** All requests in this collection use the `{{base_url}}` collection variable. Switching environments requires only updating that single variable — no individual request edits needed. \n  \n\n---\n\n## 4\\. Authentication & Headers\n\nKlyvora AI's public analysis endpoint is designed for easy integration. At a minimum, the following header is **required** for all requests to the `/api/analyze` endpoint:\n\n``` http\nContent-Type: application/json\n\n ```\n\nAll request bodies must be valid JSON. Authentication tokens, if applicable in your deployment, should be supplied via the `Authorization` header — refer to your deployment configuration for details.\n\n---\n\n## 5\\. API Endpoints\n\nThe two live, executable requests below are the complete surface area of the Klyvora AI API. Click into each request to view its full schema, run it directly, and inspect saved example responses.\n\n| Method | Endpoint | Purpose |\n| --- | --- | --- |\n| `POST` | `/api/analyze` | Submit text or audio feedback for AI-powered analysis |\n| `GET` | `/api/status` | Verify that the API server is live and reachable |\n\n> The requests listed in this collection are the canonical, always-up-to-date source of truth for this API. Each request carries its own detailed documentation, request schema, and saved examples — open them directly to explore. \n  \n\n---\n\n## 6\\. Error Handling\n\nKlyvora AI follows standard HTTP semantics. The table below describes the most common status codes you may encounter:\n\n| Status Code | Meaning | Typical Cause |\n| --- | --- | --- |\n| **200 OK** | Success | The request was processed and insights were returned. |\n| **400 Bad Request** | Invalid Payload | The request body is missing, malformed, or neither `text` nor `audioBase64` was provided. |\n| **500 Internal Server Error** | Upstream AI Failure | The underlying AI pipeline (Llama-3.3 or Whisper via Groq) failed to respond or threw an unexpected error. Retry with exponential backoff. |\n\nAll error responses follow a consistent shape:\n\n``` json\n{\n  \"success\": false,\n  \"error\": \"A human-readable description of what went wrong.\"\n}\n\n ```\n\n---\n\n## 7\\. Integration Example\n\nBelow is a production-ready example of how a frontend developer can invoke the `/api/analyze` endpoint using the native `fetch()` API.\n\n``` javascript\n/**\n * Analyze customer feedback using Klyvora AI (EchoSense).\n *\n * @param {string} feedbackText - The raw customer feedback to analyze.\n * @returns {Promise<object>} The structured insights returned by the API.\n */\nasync function analyzeFeedback(feedbackText) {\n  const API_BASE_URL = \"https://klyvora-backend.onrender.com\";\n  try {\n    const response = await fetch(`${API_BASE_URL}/api/analyze`, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({\n        text: feedbackText,\n        audioBase64: null,\n      }),\n    });\n    if (!response.ok) {\n      throw new Error(`Klyvora AI request failed with status ${response.status}`);\n    }\n    const data = await response.json();\n    console.log(\"[SUCCESS] Insights received:\", data);\n    return data;\n  } catch (error) {\n    console.error(\"[ERROR] Failed to analyze feedback:\", error);\n    throw error;\n  }\n}\n// Example usage\nanalyzeFeedback(\"The service was absolutely amazing today, I am very happy.\");\n\n ```\n\nFor voice feedback, replace the `text` field with `audioBase64` and pass a base64-encoded audio string — Klyvora will automatically route the payload through the Whisper-large-v3-turbo transcription pipeline before analysis.\n\n---\n\n## 8\\. Rate Limiting & Best Practices\n\n- **Debounce User Input** — When invoking `/api/analyze` from a live text field or voice recorder, debounce requests on the frontend (e.g., 400–600ms) to avoid flooding the AI backend and hitting upstream Groq rate limits.\n    \n- **Retry with Backoff** — For transient `500` responses, implement exponential backoff (e.g., 1s → 2s → 4s) rather than retrying immediately.\n    \n- **Batch Where Possible** — If you need to analyze many feedback entries, process them sequentially or in small concurrent batches (3–5 at a time) rather than firing all requests in parallel.\n    \n- **Keep Secrets Server-Side** — Never expose private API keys or deployment tokens in client-side code. Proxy sensitive requests through your own backend.\n    \n- **Cache Results** — Identical feedback strings will produce identical insights; cache them to reduce cost and latency.\n    \n\n---\n\n## 9\\. Support & Feedback\n\nWe're thrilled to have you building with **Klyvora AI**. If you run into issues, have feature requests, or want to share what you're building, please reach out via our GitHub repository linked above.\n\n## 10\\. In-Detail API EndPoints","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"50839228","team":12206648,"collectionId":"3795ffaa-aae8-46f4-9aab-c25ef2dd75a7","publishedId":"2sBXqKofJq","public":true,"publicUrl":"https://documenter-api.postman.tech/view/50839228/2sBXqKofJq","privateUrl":"https://go.postman.co/documentation/50839228-3795ffaa-aae8-46f4-9aab-c25ef2dd75a7","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Klyvora AI APIs convert voice and text feedback into actionable business insights. This collection covers feedback ingestion, AI processing, sentiment analysis, dashboard data, and user interaction workflows, enabling businesses to analyze feedback and take real-time decisions effectively."},{"name":"title","value":"Klyvora AI API | Voice Feedback to Actionable Insights (Complete Backend Documentation)"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/ac480dab-7748-4a4b-961d-a7b42feb4f71/cmVhbF9sb2dvX2JnLnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/02975a48-c182-4c9f-82db-4dcaad131b65/cmVhbF9sb2dvLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2026-05-02T15:40:11.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Klyvora AI API | Voice Feedback to Actionable Insights (Complete Backend Documentation)","description":"Klyvora AI APIs convert voice and text feedback into actionable business insights. This collection covers feedback ingestion, AI processing, sentiment analysis, dashboard data, and user interaction workflows, enabling businesses to analyze feedback and take real-time decisions effectively."},"logos":{"logoLight":"https://content.pstmn.io/02975a48-c182-4c9f-82db-4dcaad131b65/cmVhbF9sb2dvLnBuZw==","logoDark":"https://content.pstmn.io/ac480dab-7748-4a4b-961d-a7b42feb4f71/cmVhbF9sb2dvX2JnLnBuZw=="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/5f774443bd1b4adf7d6d710e4b298e8683ab50df09ea0531668688790812664d","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBXqKofJq"}