curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"claim": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId}"
payload = { "claim": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({claim: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"fact": {
"id": "68a1fb0a9c41d20014b3f201",
"claim": "A SOC 2 Type II report is available on request before a trial.",
"category": "faq-insight"
}
}{
"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>"
}
}Correct a learned fact
Corrects a learned fact’s claim text and/or category. Any member of the owning teammate’s team may edit. A new claim must stay anonymized — no person or customer names, no contract-level details — or the call answers 422 LEARNED_FACT_NOT_ANONYMIZED. The correction reaches the hubs’ pages on the next daily learning run. The response carries only the fields this call changes; read the fact back from GET /business/knowledge-hubs/learned-facts for its confidence, channels and dates. Retired facts cannot be edited (404).
Errors:
404LEARNED_FACT_NOT_FOUND— No active fact with that id, it was already retired, or it belongs to another team (existence is never confirmed).422LEARNED_FACT_NOT_ANONYMIZED— The new claim names a person or customer, or carries a contract-level detail.422VALIDATION_FAILED— Neither claim nor category given, or a value outside its limits or enum.429RATE_LIMITED— More than 30 knowledge-hub/campaign requests in a minute (or 1000 in a day). Knowledge hubs share the campaigns bucket.
Requires one of the following token scopes: campaigns.
curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"claim": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId}"
payload = { "claim": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({claim: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/knowledge-hubs/learned-facts/{factId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"fact": {
"id": "68a1fb0a9c41d20014b3f201",
"claim": "A SOC 2 Type II report is available on request before a trial.",
"category": "faq-insight"
}
}{
"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 learned fact (from GET /business/knowledge-hubs/learned-facts).
Body
At least one of claim or category is required.
Corrected claim text (1-1000 characters). Free text — there is no vocabulary — but it must stay anonymized: a deterministic gate answers 422 LEARNED_FACT_NOT_ANONYMIZED when the claim contains an email address, a run of 9 or more phone-like digits, a currency amount in the same claim as deal language (discount, quote, contract, renewal, proposal, negotiated, agreed), or contract vocabulary (renewal date, contract term, termination clause, auto-renew, payment terms, net 30/60/90, master service agreement, MSA, SOW, non-disclosure, NDA). Person and customer names are NOT checked, so keep them out yourself. The edit reaches the hub's pages on the next daily learning run, not immediately.
1 - 1000Fact category, one of overview (company summary), products, pricing, icp-use-cases (ideal customers and use cases), differentiators, competitors, faq, source-digest (digest of one source), custom (user-authored), objection (a buyer objection) or faq-insight (a recurring question).
overview, products, pricing, icp-use-cases, differentiators, competitors, faq, source-digest, custom, objection, faq-insight Response
Success
The fields the update reports. Read the fact back from the list endpoint for the rest.
Show child attributes
Show child attributes