https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}/toggleEnable or disable a source
Turns a source on or off in retrieval without deleting it, so its chunks survive for re-enabling later. A missing `enabled` flag returns 422. Re-enabling a disabled source is plan-cap-checked (402 over the knowledge-source cap). **Changed September 2026:** the source body is now exactly the fields listed here — `storageKey`, `rawText`, `metadata` and other internal columns no longer ship. Read a source's text from `GET …/content`.
Requires scope knowledge:write
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 |
|---|---|---|---|
| enabled | boolean | Required | Whether the source participates in retrieval. |
Request
curl -X POST "https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}/toggle" \
-H "x-api-key: $EVORIQA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }'const res = await fetch("https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}/toggle", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"enabled": false
}),
});
const responseBody = await res.json();import os
import requests
res = requests.post(
"https://app.evoriqa.com/api/v1/chatbots/{chatbotId}/sources/{sourceId}/toggle",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
json={
"enabled": False
},
)
body = res.json()Response
{
"success": true,
"data": {
"id": "0d9c2f11-6a8e-4d02-9f7b-1c3e5a7d9b20",
"chatbotId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"type": "url",
"title": "Pricing page",
"status": "processed",
"sourceUrl": "https://example.com/pricing",
"fileName": null,
"fileSizeBytes": null,
"mimeType": 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",
"updatedAt": "2026-08-01T10:14:32.000Z"
}
}