Resync a website or sheet
curl --request POST \
--url https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>'const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"source": {
"id": "<string>",
"name": "<string>",
"kind": "text",
"status": "processing",
"char_count": 123,
"source_url": "<string>",
"file_name": "<string>",
"error": "<string>",
"progress": 123,
"warnings": [
{
"code": "<string>",
"message": "<string>",
"pages": [
123
]
}
],
"chunks": 123,
"indexed_at": "<string>",
"refresh_interval_hours": 123,
"last_refreshed_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"used_by": [
{
"id": "<string>",
"name": "<string>"
}
],
"used_elsewhere": 123
},
"truncated": false
}{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/not_found",
"title": "Not found (or not visible to this key)",
"status": 404,
"code": "not_found",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/precondition_required",
"title": "A required header is missing (Idempotency-Key or If-Match)",
"status": 428,
"code": "precondition_required",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"retryable": true
}{
"type": "https://docs.kallabot.com/errors/internal_error",
"title": "Something went wrong on our side",
"status": 500,
"code": "internal_error",
"retryable": true
}Knowledge
Resync a website or sheet
Reads a website or Google Sheet source again now and indexes the new text. The old text stays when the read fails. Pasted text and files can’t be resynced.
Scopes: knowledge:write
POST
/
v1
/
knowledge
/
sources
/
{source_id}
/
resync
Resync a website or sheet
curl --request POST \
--url https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>'const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kallabot.com/v1/knowledge/sources/{source_id}/resync"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"source": {
"id": "<string>",
"name": "<string>",
"kind": "text",
"status": "processing",
"char_count": 123,
"source_url": "<string>",
"file_name": "<string>",
"error": "<string>",
"progress": 123,
"warnings": [
{
"code": "<string>",
"message": "<string>",
"pages": [
123
]
}
],
"chunks": 123,
"indexed_at": "<string>",
"refresh_interval_hours": 123,
"last_refreshed_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"used_by": [
{
"id": "<string>",
"name": "<string>"
}
],
"used_elsewhere": 123
},
"truncated": false
}{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/not_found",
"title": "Not found (or not visible to this key)",
"status": 404,
"code": "not_found",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/precondition_required",
"title": "A required header is missing (Idempotency-Key or If-Match)",
"status": 428,
"code": "precondition_required",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"retryable": true
}{
"type": "https://docs.kallabot.com/errors/internal_error",
"title": "Something went wrong on our side",
"status": 500,
"code": "internal_error",
"retryable": true
}Authorizations
An API key from Settings → API keys, sent as Authorization: Bearer kb_live_…. A workspace key starts kb_; a personal key starts kbp_ and acts as its owner.
Headers
A unique key (a UUID works) for this request. Retrying with the same key returns the first answer instead of running twice.
Maximum string length:
255The API version to answer as, a date (YYYY-MM-DD). Leave it out for the current version (2026-11-07). An unknown version is refused with 400 unsupported_api_version.
Available options:
2026-11-07 Example:
"2026-11-07"