POST
https://app.evoriqa.com/api/v1/analytics/topicsCluster top questions into topics
Clusters up to 50 already-loaded top questions into semantic groups. Spends a metered LLM call, so it is rate-limited to 10 per minute and gated through the workspace's AI budget — out of budget returns `{ topics: [] }` rather than an error. POST only because it carries a body; the read scope applies.
Requires scope analytics:read
Warning:
Access is gated — enable it before your first call
The API is off by default. A request succeeds only when all three switches are on: the platform master switch (off by default), your organisation’s API toggle, and your plan or client entitlement. Any one off returns 403 API access is not enabled for this workspace.
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| questions | array up to 50 items | Required | The questions to cluster. |
Request
curl
curl -X POST "https://app.evoriqa.com/api/v1/analytics/topics" \
-H "x-api-key: $EVORIQA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "questions": [ { "content": "How do refunds work?", "count": 14 }, { "content": "Can I get my money back?", "count": 9 } ] }'Node.js
const res = await fetch("https://app.evoriqa.com/api/v1/analytics/topics", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"questions": [
{
"content": "How do refunds work?",
"count": 14
},
{
"content": "Can I get my money back?",
"count": 9
}
]
}),
});
const responseBody = await res.json();Python
import os
import requests
res = requests.post(
"https://app.evoriqa.com/api/v1/analytics/topics",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
json={
"questions": [
{
"content": "How do refunds work?",
"count": 14
},
{
"content": "Can I get my money back?",
"count": 9
}
]
},
)
body = res.json()Response
200 OK
{
"success": true,
"data": {
"topics": [
{
"label": "Refunds",
"count": 23,
"questions": [
"How do refunds work?",
"Can I get my money back?"
]
}
]
}
}