PATCH
https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}Update a knowledge source
Edits a source's content fields (whichever apply to its type) and re-ingests it. A field the type does not accept returns 422; a foreign id 404.
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. |
| sourceId | path | string uuid | Required | — | The knowledge source's id. |
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| title | string 1–200 chars | Optional | Source title (manual/file sources). |
| content | string 1–100000 chars | Optional | Text content (manual sources). |
| question | string 1–500 chars | Optional | FAQ question. |
| answer | string 1–10000 chars | Optional | FAQ answer. |
| category | string up to 120 chars | Optional | FAQ category. |
Request
curl
curl -X PATCH "https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}" \
-H "x-api-key: $EVORIQA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Shipping policy (2026)" }'Node.js
const res = await fetch("https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"title": "Shipping policy (2026)"
}),
});
const responseBody = await res.json();Python
import os
import requests
res = requests.patch(
"https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
json={
"title": "Shipping policy (2026)"
},
)
body = res.json()Response
200 OK
{
"success": true,
"data": {
"id": "0d9c2f11-6a8e-4d02-9f7b-1c3e5a7d9b20",
"chatbotId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"type": "url",
"title": "Pricing page",
"status": "pending",
"sourceUrl": "https://example.com/pricing",
"errorMessage": null,
"processedAt": null,
"lastCrawledAt": "2026-08-01T10:14:40.000Z",
"recrawlIntervalHours": 168,
"createdAt": "2026-08-01T10:14:32.000Z"
}
}