Skip to main content
Build and maintain knowledge bases from your own code, without going through the Dify console: create a knowledge base, load documents and chunks into it, and query it directly for search or RAG.
A single Knowledge Base API key has access to every knowledge base visible to the workspace owner — dataset API requests execute with owner-level access, regardless of who created the key. Handle your keys carefully to avoid unintended data exposure.

Get Your API Endpoint and Key

In Knowledge, open the API Access tab. From here:
  • Copy the API Server address, the base URL for every Knowledge API request.
  • Click API Key to create and manage keys.
Store your API key securely on the server side. Never expose it in client-side code or public repositories.

Create and Manage Knowledge Bases

Add and Update Documents

Document creation is asynchronous. Create the document, then poll until indexing finishes:
1

Create a knowledge base

Call Create an Empty Knowledge Base, or use an existing knowledge base.
2

Add a document

Call Create Document by Text or Create Document by File; both return a batch ID.If you didn’t set indexing_technique (how content is indexed for search) when creating the knowledge base, set it on this first document; later documents inherit it automatically.
3

Poll the indexing status

Poll Get Document Indexing Status with the batch ID until indexing_status reaches completed or error; it progresses through waiting, parsing, cleaning, splitting, and indexing along the way.
  • List Documents: a paginated list, filterable by keyword.
  • Update Document by Text: update a document’s text content, name, or processing configuration inline; re-triggers indexing when the content changes.
  • Update Document by File: replace a document’s content by uploading a new file, re-triggering indexing.
  • Delete Document: permanently remove a document and every chunk inside it.

Manage Chunks

  • Create Chunks: add chunks to a document by hand—indexing already chunks uploaded content automatically. Each chunk requires content; documents in Q&A mode also require answer.
  • List Chunks: a list, filterable by keyword or status.
  • Update Chunk: change a chunk’s content, keywords, or answer; re-triggers indexing for that chunk.
  • Delete Chunk: permanently remove a chunk.