Knowledge explained
What your workers know. Push sources, we chunk, embed and index them.
Knowledge lives in collections. A collection is assigned to one or more workers. A source is one document inside a collection: a product page, a price list, a policy, a car listing. You push the text, we do the rest.
| Do this | Endpoint |
|---|---|
| Push or update one source | POST /v1/kb/sources |
| Push up to 50 at once | POST /v1/kb/sources/batch |
| See what's indexed | GET /v1/kb/sources |
| Remove sources | DELETE /v1/kb/sources |
Create the collection in the dashboard first (Knowledge, New collection) and grab its id from the URL.
How sync works
You give every source an externalId, your id for it. Same externalId in the same collection means update. We hash the content, so re-posting identical text is a no-op and costs nothing.
POST same externalId, same content → 200 unchanged
POST same externalId, new content → 200 processing (reindex)
POST new externalId → 201 processingProcessing is async. Status goes pending → processing → completed | failed. Usually seconds, sometimes a minute for big documents. Poll the list with status=failed after a sync if you want to be sure.
externalId is unique per collection, not per org. The same upstream id can live in two collections.
Validity windows
Sources can carry validFrom and validUntil. A worker won't use a source outside its window. Good for seasonal pricing, campaign terms, listings that expire. Mark superseded content as contentRole: "historical" if you want the worker to know it existed but not quote it as current.
Limits
| Content per source | 500 000 characters |
| Title | 500 characters |
| externalId | 255 characters |
| Batch size | 50 sources |
| Delete batch | 100 externalIds |
