curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"page": {
"id": "68a1fc209c41d20014b3f301",
"title": "Pricing",
"content": "## Plans\\n\\nStarter is 49 GBP per month per employer.",
"origin": "generated",
"updatedAt": "2026-08-25T16:52:11.004Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Rebuild a page from the hub's sources
Rebuilds a generated page from the hub’s cached sources — the crawled website text and the notes it was written from — discarding any manual edits, and re-indexes it. The work finishes before the response: the content you get back is already the regenerated page and its origin is reset to generated, so there is nothing to poll. Pages you authored have no sources and answer 409 KNOWLEDGE_PAGE_NOT_REGENERABLE; so does a generated page whose sources have since been removed. Only the hub’s owner can regenerate, at most 10 times per minute and 200 per day on top of the shared rate bucket.
Errors:
404KNOWLEDGE_HUB_NOT_FOUND— No hub with that id, it was deleted, or it belongs to another team.404KNOWLEDGE_PAGE_NOT_FOUND— No page with that id on this hub.409KNOWLEDGE_PAGE_NOT_REGENERABLE— The page has no cached sources to rebuild from (you authored it, or its sources were removed).409KNOWLEDGE_HUB_NOT_READY— The hub is still building, or its build never finished.409KNOWLEDGE_HUB_PAGES_UNAVAILABLE— The hub predates knowledge pages.403KNOWLEDGE_HUB_OWNER_ONLY— You can read this teammate’s hub but only its owner can regenerate pages.422VALIDATION_FAILED— hubId or pageId is not a 24-character hex id.500UNEXPECTED_ERROR— The synthesis model failed, or the regenerated page could not be re-indexed — retry.429RATE_LIMITED— The shared campaigns bucket was exceeded, or more than 10 regenerations in a minute / 200 in a day.
Requires one of the following token scopes: campaigns.
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.tryfuse.ai/api/v1/business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"page": {
"id": "68a1fc209c41d20014b3f301",
"title": "Pricing",
"content": "## Plans\\n\\nStarter is 49 GBP per month per employer.",
"origin": "generated",
"updatedAt": "2026-08-25T16:52:11.004Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Path Parameters
24-character hex id of the knowledge hub (from GET /business/knowledge-hubs).
24-character hex id of the knowledge page (from GET /business/knowledge-hubs/{hubId}/pages).
Response
Success
The fields the update reports. Read the page back with GET /business/knowledge-hubs/{hubId}/pages for its category and createdAt.
Show child attributes
Show child attributes