REST Resource: projects.locations.knowledgeBases.documents

Resource: Document

A knowledge document to be used by a KnowledgeBase.

For more information, see the knowledge base guide.

Note: The projects.agent.knowledgeBases.documents resource is deprecated; only use projects.knowledgeBases.documents.

JSON representation
  "name": string,
  "displayName": string,
  "mimeType": string,
  "knowledgeTypes": [
    enum (KnowledgeType)
  "enableAutoReload": boolean,
  "latestReloadStatus": {
    object (ReloadStatus)
  "metadata": {
    string: string,
  "state": enum (State),

  // Union field source can be only one of the following:
  "contentUri": string,
  "content": string,
  "rawContent": string
  // End of list of possible types for union field source.


Optional. The document resource name. The name must be empty when creating a document. Format: projects/<Project ID>/locations/<Location ID>/knowledgeBases/<Knowledge Base ID>/documents/<Document ID>.



Required. The display name of the document. The name must be 1024 bytes or less; otherwise, the creation request fails.



Required. The MIME type of this document.


enum (KnowledgeType)

Required. The knowledge type of document content.



Optional. If true, we try to automatically reload the document every day (at a time picked by the system). If false or unspecified, we don't try to automatically reload the document.

Currently you can only enable automatic reload for documents sourced from a public url, see source field for the source types.

Reload status can be tracked in latestReloadStatus. If a reload fails, we will keep the document unchanged.

If a reload fails with internal errors, the system will try to reload the document on the next day. If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the system will not try to reload the document anymore. You need to manually reload the document successfully by calling documents.reload and clear the errors.


object (ReloadStatus)

Output only. The time and status of the latest reload. This reload may have been triggered automatically or manually and may not have succeeded.


map (key: string, value: string)

Optional. Metadata for the document. The metadata supports arbitrary key-value pairs. Suggested use cases include storing a document's title, an external URL distinct from the document's contentUri, etc. The max size of a key or a value of the metadata is 1024 bytes.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.


enum (State)

Output only. The current state of the document.

Union field source. The source of this document. source can be only one of the following:


The URI where the file content is located.

For documents stored in Google Cloud Storage, these URIs must have the form gs://<bucket-name>/<object-name>.

NOTE: External URLs must correspond to public webpages, i.e., they must be indexed by Google Search. In particular, URLs for showing documents in Google Cloud Storage (i.e. the URL in your browser) are not supported. Instead use the gs:// format URI described above.



The raw content of the document. This field is only permitted for EXTRACTIVE_QA and FAQ knowledge types. Note: This field is in the process of being deprecated, please use rawContent instead.


string (bytes format)

The raw content of the document. This field is only permitted for EXTRACTIVE_QA and FAQ knowledge types.

A base64-encoded string.



Creates a new document.


Deletes the specified document.


Retrieves the specified document.


Create documents by importing data from external sources.


Returns the list of all documents of the knowledge base.


Updates the specified document.


Reloads the specified document from its specified source, content_uri or content.