Adds a source to a knowledge base, linking one or having one built.
Management mode chooses the route, not kind — both routes can produce conversations, and what differs is who owns the implementation afterwards. Linked (the default) records an implementation the user already runs: every typed target is revalidated in the current tenant, and the source and its resource links are stored atomically as user-owned, to be inspected but never updated or deleted. Managed asks Fruxon to materialize one from the stock conversation recipe — agents, automation and ledger, each stamped as managed as it is created, with the customer's connector configuration referenced rather than owned. A built source lands paused: preview it, then resume it when you are satisfied with what it will read.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The knowledge base id.
uuidThe tenant identifier
Source metadata and policy, plus either existing resources or recipe configuration.
The evidence origin represented by a Fruxon.Model.KnowledgeBases.KnowledgeSource.
"UNSPECIFIED" | "PROVIDER_CONVERSATIONS" | "FRUXON_CONVERSATIONS" | "FILES" | "SAAS_DOCUMENTS" | "STRUCTURED_RECORDS" | "CUSTOM_AUTOMATION"Whether the user supplies the implementation or Fruxon materializes one.
"UNSPECIFIED" | "MANAGED" | "LINKED"Linked sources only: product-level configuration to record against the source. Free-form, because what is worth recording about an implementation Knowledge did not build is the user's to decide. A managed source's configuration is Fruxon.Model.KnowledgeBases.CreateKnowledgeSourceRequest.Conversations, which the recipe reads.
How generated or materially changed knowledge is accepted into the authoring corpus.
"UNSPECIFIED" | "MANUAL" | "SAMPLED" | "AUTOMATIC"Percentage of otherwise eligible Sampled outputs that stay in Draft for quality review. Risk-flagged, low-confidence and rewrite outputs always stay in Draft regardless of this value.
int320 <= value <= 100When accepted authoring changes are published to the KB's retrieval index.
"UNSPECIFIED" | "MANUAL" | "AUTOMATIC_AFTER_APPROVAL"Linked sources only: the existing resources that implement this source.
Managed PROVIDER_CONVERSATIONS sources only: what the stock recipe needs to build one — which
connector and query to read, what the conversations are about and in what language, which models run
the two stages, and when it should scan.
The recipe's own input type rather than a parallel copy of it. A second shape here would have to be kept in step with the recipe by hand, and the thing it would be protecting against — platform Agent and Trigger payloads reaching the product API — is already prevented: this carries a door, a language and two model choices, and the agents and automation are composed behind it.
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/knowledgeBases/497f6eca-6276-4993-bfeb-53cbbbba6f08/sources" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"knowledgeBaseId": "619a59ff-6d34-4e0c-9a58-4d2cf062eac9",
"displayName": "string",
"kind": "UNSPECIFIED",
"status": "UNSPECIFIED",
"managementMode": "UNSPECIFIED",
"recipeKey": "string",
"recipeVersion": 0,
"config": null,
"approvalPolicy": "UNSPECIFIED",
"approvalSamplePercent": 0,
"publishPolicy": "UNSPECIFIED",
"settingsEditable": true,
"settingsNotEditableReason": "string",
"resources": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"resourceKind": "UNSPECIFIED",
"resourceId": "string",
"role": "UNSPECIFIED",
"ownership": "UNSPECIFIED"
}
],
"createdAt": 0,
"modifiedAt": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}