POST
https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/faqAdd an FAQ source
Adds one question/answer pair as a source, indexed immediately. Counts against the plan's source cap — over it returns 402 USAGE_LIMIT_REACHED.
Requires scope knowledge:write
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.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
| chatbotId | path | string uuid | Required | — | The chatbot the source belongs to. |
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| question | string 1–500 chars | Required | The question. |
| answer | string 1–10000 chars | Required | The grounded answer. |
| category | string up to 120 chars | Optional | Optional grouping label. |
Request
curl
curl -X POST "https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/faq" \
-H "x-api-key: $EVORIQA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "question": "Do you offer refunds?", "answer": "Yes, within 30 days." }'Node.js
const res = await fetch("https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/faq", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"question": "Do you offer refunds?",
"answer": "Yes, within 30 days."
}),
});
const responseBody = await res.json();Python
import os
import requests
res = requests.post(
"https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/faq",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
json={
"question": "Do you offer refunds?",
"answer": "Yes, within 30 days."
},
)
body = res.json()Response
200 OK
{
"success": true,
"data": {
"id": "0d9c2f11-6a8e-4d02-9f7b-1c3e5a7d9b20",
"chatbotId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"type": "faq",
"title": "Do you offer refunds?",
"status": "completed",
"sourceUrl": null,
"errorMessage": null,
"processedAt": "2026-08-01T10:15:00.000Z",
"lastCrawledAt": "2026-08-01T10:14:40.000Z",
"recrawlIntervalHours": 168,
"createdAt": "2026-08-01T10:14:32.000Z"
}
}