{
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "servicePath": "",
  "version_module": true,
  "revision": "20260830",
  "baseUrl": "https://developerknowledge.googleapis.com/",
  "kind": "discovery#restDescription",
  "rootUrl": "https://developerknowledge.googleapis.com/",
  "title": "Developer Knowledge API",
  "version": "v1",
  "mtlsRootUrl": "https://developerknowledge.mtls.googleapis.com/",
  "id": "developerknowledge:v1",
  "fullyEncodeReservedExpansion": true,
  "protocol": "rest",
  "schemas": {
    "Document": {
      "type": "object",
      "description": "A Document represents a page of documentation in the Developer Knowledge corpus, like the page at https://docs.cloud.google.com/storage/docs/creating-buckets.",
      "id": "Document",
      "properties": {
        "uri": {
          "description": "Output only. Provides the URI of the content, such as `https://docs.cloud.google.com/storage/docs/creating-buckets`.",
          "readOnly": true,
          "type": "string"
        },
        "dataSource": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Specifies the data source of the document. Example data source: `firebase.google.com`"
        },
        "updateTime": {
          "description": "Output only. Represents the timestamp when the content or metadata of the document was last updated.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "title": {
          "description": "Output only. Provides the title of the document.",
          "type": "string",
          "readOnly": true
        },
        "content": {
          "type": "string",
          "description": "Output only. Contains the full content of the document in Markdown format.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Identifier. Contains the resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`"
        },
        "contentLengthBytes": {
          "type": "integer",
          "description": "Output only. The length of the `content` field in bytes.",
          "readOnly": true,
          "format": "int32"
        },
        "description": {
          "type": "string",
          "description": "Output only. Provides a description of the document.",
          "readOnly": true
        },
        "view": {
          "enumDescriptions": [
            "The default / unset value. See each API method for its default value if DocumentView is not specified.",
            "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` - `content_length_bytes` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.",
            "Includes all Document fields.",
            "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments."
          ],
          "description": "Output only. Specifies the DocumentView of the document.",
          "type": "string",
          "enum": [
            "DOCUMENT_VIEW_UNSPECIFIED",
            "DOCUMENT_VIEW_BASIC",
            "DOCUMENT_VIEW_FULL",
            "DOCUMENT_VIEW_CONTENT"
          ],
          "readOnly": true
        }
      }
    },
    "Answer": {
      "description": "An answer to a query.",
      "properties": {
        "citations": {
          "readOnly": true,
          "description": "Output only. Contains citations for the answer.",
          "items": {
            "$ref": "AnswerCitation"
          },
          "type": "array"
        },
        "answerText": {
          "description": "Contains the text of the answer.",
          "type": "string"
        },
        "references": {
          "type": "array",
          "description": "Output only. Contains references for the answer.",
          "items": {
            "$ref": "AnswerReference"
          },
          "readOnly": true
        }
      },
      "type": "object",
      "id": "Answer"
    },
    "DocumentChunk": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Contains the content of the document chunk."
        },
        "relevanceScore": {
          "type": "number",
          "description": "Output only. Represents the relevance score of the chunk to the search query. Higher score indicates higher chunk relevance. The score is in range [0.0, 1.0].",
          "format": "double",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. Specifies the ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.",
          "readOnly": true
        },
        "parent": {
          "description": "Output only. Contains the resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`",
          "type": "string",
          "readOnly": true
        },
        "document": {
          "readOnly": true,
          "$ref": "Document",
          "description": "Output only. Represents metadata about the Document this chunk is from. The DocumentView of this Document message will be set to `DOCUMENT_VIEW_BASIC`. It is included here for convenience so that clients do not need to call DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments if they only need the metadata fields. Otherwise, clients should use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments to fetch the full document content."
        }
      },
      "id": "DocumentChunk",
      "description": "A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments."
    },
    "AnswerCitation": {
      "properties": {
        "endIndex": {
          "format": "int32",
          "description": "Output only. Indicates the end of the segment, measured in bytes (UTF-8 unicode), exclusive. If there are multi-byte characters, such as non-ASCII characters, the index measurement is longer than the string length.",
          "type": "integer",
          "readOnly": true
        },
        "sources": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "CitationSource"
          },
          "description": "Output only. Contains citation sources for the attributed segment."
        },
        "startIndex": {
          "type": "integer",
          "description": "Output only. Indicates the start of the segment, measured in bytes (UTF-8 unicode), inclusive. If there are multi-byte characters, such as non-ASCII characters, the index measurement is longer than the string length.",
          "format": "int32",
          "readOnly": true
        }
      },
      "description": "Citation info for a segment.",
      "id": "AnswerCitation",
      "type": "object"
    },
    "AnswerQueryRequest": {
      "description": "Request message for DeveloperKnowledge.AnswerQuery.",
      "type": "object",
      "properties": {
        "filter": {
          "type": "string",
          "description": "Optional. Applies a strict filter to the search results used to ground the answer. The expression supports a subset of the syntax described at https://google.aip.dev/160. Supported fields for filtering: * `content_length_bytes` (INTEGER): The length of the `Document.content` field in bytes. * `data_source` (STRING): The source of the document, e.g. `docs.cloud.google.com`. See https://developers.google.com/knowledge/reference/corpus-reference for the complete list of data sources in the corpus. * `update_time` (TIMESTAMP): The timestamp of when the document was last meaningfully updated. A meaningful update is one that changes document's markdown content or metadata. * `uri` (STRING): The document URI, e.g. `https://docs.cloud.google.com/bigquery/docs/tables`. INTEGER fields support `=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` operators. STRING fields support `=` (equals) and `!=` (not equals) operators for **exact match** on the whole string. Partial match, prefix match, and regexp match are not supported. TIMESTAMP fields support `=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` operators. Timestamps must be in RFC-3339 format, e.g., `\"2025-01-01T00:00:00Z\"`. You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical operators. `OR` has higher precedence than `AND`. Use parentheses for explicit precedence grouping. Examples: * Filter by `Document.content_length_bytes`: `content_length_bytes \u003c 50000` * `data_source = \"docs.cloud.google.com\" OR data_source = \"firebase.google.com\"` * `data_source != \"firebase.google.com\"` * `update_time \u003c \"2024-01-01T00:00:00Z\"` * `update_time \u003e= \"2025-01-22T00:00:00Z\" AND (data_source = \"developer.chrome.com\" OR data_source = \"web.dev\")` * `uri = \"https://docs.cloud.google.com/release-notes\"` The `filter` string must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error."
        },
        "query": {
          "type": "string",
          "description": "Required. The query to answer."
        }
      },
      "id": "AnswerQueryRequest"
    },
    "DocumentReference": {
      "description": "Represents a reference to a document.",
      "id": "DocumentReference",
      "properties": {
        "documentChunk": {
          "description": "Output only. Contains the document chunk. The `document_chunk.id` field is not set and will be empty.",
          "readOnly": true,
          "$ref": "DocumentChunk"
        }
      },
      "type": "object"
    },
    "BatchGetDocumentsResponse": {
      "properties": {
        "documents": {
          "type": "array",
          "description": "Contains the documents requested.",
          "items": {
            "$ref": "Document"
          }
        }
      },
      "type": "object",
      "id": "BatchGetDocumentsResponse",
      "description": "Response message for DeveloperKnowledge.BatchGetDocuments."
    },
    "AnswerQueryResponse": {
      "type": "object",
      "properties": {
        "answer": {
          "$ref": "Answer",
          "description": "The answer to the query."
        }
      },
      "id": "AnswerQueryResponse",
      "description": "Response message for DeveloperKnowledge.AnswerQuery."
    },
    "CitationSource": {
      "id": "CitationSource",
      "type": "object",
      "properties": {
        "referenceIndex": {
          "format": "int32",
          "type": "integer",
          "readOnly": true,
          "description": "Output only. Contains the index of the Answer.AnswerReference in the `references` repeated field."
        }
      },
      "description": "Citation source."
    },
    "AnswerReference": {
      "properties": {
        "documentReference": {
          "readOnly": true,
          "description": "Output only. The reference document.",
          "$ref": "DocumentReference"
        }
      },
      "description": "Represents a reference to a source.",
      "id": "AnswerReference",
      "type": "object"
    },
    "SearchDocumentChunksResponse": {
      "description": "Response message for DeveloperKnowledge.SearchDocumentChunks.",
      "id": "SearchDocumentChunksResponse",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "DocumentChunk"
          },
          "description": "Contains the search results for the given query. Each DocumentChunk in this list contains a snippet of content relevant to the search query. Use the DocumentChunk.parent field of each result with DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments to retrieve the full document content."
        },
        "nextPageToken": {
          "type": "string",
          "description": "Provides a token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        }
      },
      "type": "object"
    }
  },
  "canonicalName": "Developer Knowledge",
  "basePath": "",
  "ownerName": "Google",
  "ownerDomain": "google.com",
  "discoveryVersion": "v1",
  "description": "The Developer Knowledge API provides access to Google's developer knowledge.",
  "resources": {
    "v1": {
      "methods": {
        "answerQuery": {
          "parameterOrder": [],
          "parameters": {},
          "path": "v1:answerQuery",
          "httpMethod": "POST",
          "id": "developerknowledge.answerQuery",
          "response": {
            "$ref": "AnswerQueryResponse"
          },
          "description": "Answers a query using grounded generation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "flatPath": "v1:answerQuery",
          "request": {
            "$ref": "AnswerQueryRequest"
          }
        }
      }
    },
    "documents": {
      "methods": {
        "batchGet": {
          "path": "v1/documents:batchGet",
          "description": "Retrieves multiple documents, each with its full Markdown content.",
          "httpMethod": "GET",
          "flatPath": "v1/documents:batchGet",
          "response": {
            "$ref": "BatchGetDocumentsResponse"
          },
          "parameterOrder": [],
          "id": "developerknowledge.documents.batchGet",
          "parameters": {
            "names": {
              "type": "string",
              "repeated": true,
              "description": "Required. Specifies the names of the documents to retrieve. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets` Each name must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error. ",
              "location": "query"
            },
            "view": {
              "description": "Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.BatchGetDocuments defaults to `DOCUMENT_VIEW_CONTENT`.",
              "location": "query",
              "type": "string",
              "enumDescriptions": [
                "The default / unset value. See each API method for its default value if DocumentView is not specified.",
                "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` - `content_length_bytes` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.",
                "Includes all Document fields.",
                "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments."
              ],
              "enum": [
                "DOCUMENT_VIEW_UNSPECIFIED",
                "DOCUMENT_VIEW_BASIC",
                "DOCUMENT_VIEW_FULL",
                "DOCUMENT_VIEW_CONTENT"
              ]
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "searchDocumentChunks": {
          "parameters": {
            "query": {
              "type": "string",
              "location": "query",
              "description": "Required. Provides the raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\". The query must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Optional. Contains a page token, received from a previous `SearchDocumentChunks` call. Provide this to retrieve the subsequent page."
            },
            "filter": {
              "type": "string",
              "description": "Optional. Applies a strict filter to the search results. The expression supports a subset of the syntax described at https://google.aip.dev/160. While `SearchDocumentChunks` returns DocumentChunks, the filter is applied to `DocumentChunk.document` fields. Supported fields for filtering: * `content_length_bytes` (INTEGER): The length of the `Document.content` field in bytes. * `data_source` (STRING): The source of the document, e.g. `docs.cloud.google.com`. See https://developers.google.com/knowledge/reference/corpus-reference for the complete list of data sources in the corpus. * `update_time` (TIMESTAMP): The timestamp of when the document was last meaningfully updated. A meaningful update is one that changes document's markdown content or metadata. * `uri` (STRING): The document URI, e.g. `https://docs.cloud.google.com/bigquery/docs/tables`. INTEGER fields support `=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` operators. STRING fields support `=` (equals) and `!=` (not equals) operators for **exact match** on the whole string. Partial match, prefix match, and regexp match are not supported. TIMESTAMP fields support `=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` operators. Timestamps must be in RFC-3339 format, e.g., `\"2025-01-01T00:00:00Z\"`. Note: Field names must be in `snake_case` (e.g., `data_source`). Values on the right-hand side of filtering expressions must be string literals enclosed in double quotes (e.g., `\"docs.cloud.google.com\"`). You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical operators. `OR` has higher precedence than `AND`. Use parentheses for explicit precedence grouping. Examples: * Filter by `Document.content_length_bytes`: `content_length_bytes \u003c 50000` * `data_source = \"docs.cloud.google.com\" OR data_source = \"firebase.google.com\"` * `data_source != \"firebase.google.com\"` * `update_time \u003c \"2024-01-01T00:00:00Z\"` * `update_time \u003e= \"2025-01-22T00:00:00Z\" AND (data_source = \"developer.chrome.com\" OR data_source = \"web.dev\")` * `uri = \"https://docs.cloud.google.com/release-notes\"` The `filter` string must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error.",
              "location": "query"
            },
            "pageSize": {
              "location": "query",
              "type": "integer",
              "format": "int32",
              "description": "Optional. Specifies the maximum number of results to return. The service may return fewer than this value. If unspecified, at most 5 results will be returned. The maximum value is 100; values above 100 will be coerced to 100."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "flatPath": "v1/documents:searchDocumentChunks",
          "response": {
            "$ref": "SearchDocumentChunksResponse"
          },
          "id": "developerknowledge.documents.searchDocumentChunks",
          "path": "v1/documents:searchDocumentChunks",
          "description": "Searches for developer knowledge across Google's developer documentation. Returns DocumentChunks based on the user's query. There may be many chunks from the same Document. To retrieve full documents, use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent returned in the SearchDocumentChunksResponse.results.",
          "httpMethod": "GET",
          "parameterOrder": []
        },
        "get": {
          "id": "developerknowledge.documents.get",
          "parameters": {
            "view": {
              "description": "Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.GetDocument defaults to `DOCUMENT_VIEW_CONTENT`.",
              "location": "query",
              "type": "string",
              "enumDescriptions": [
                "The default / unset value. See each API method for its default value if DocumentView is not specified.",
                "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` - `content_length_bytes` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.",
                "Includes all Document fields.",
                "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments."
              ],
              "enum": [
                "DOCUMENT_VIEW_UNSPECIFIED",
                "DOCUMENT_VIEW_BASIC",
                "DOCUMENT_VIEW_FULL",
                "DOCUMENT_VIEW_CONTENT"
              ]
            },
            "name": {
              "description": "Required. Specifies the name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets` The name must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error.",
              "pattern": "^documents/.*$",
              "required": true,
              "type": "string",
              "location": "path"
            }
          },
          "flatPath": "v1/documents/{documentsId}",
          "response": {
            "$ref": "Document"
          },
          "parameterOrder": [
            "name"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Retrieves a single document with its full Markdown content.",
          "httpMethod": "GET",
          "path": "v1/{+name}"
        }
      }
    }
  },
  "name": "developerknowledge",
  "parameters": {
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "access_token": {
      "location": "query",
      "description": "OAuth access token.",
      "type": "string"
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "callback": {
      "location": "query",
      "type": "string",
      "description": "JSONP"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "$.xgafv": {
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ]
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "type": "string",
      "description": "Data format for response.",
      "default": "json"
    }
  },
  "documentationLink": "https://developers.google.com/knowledge",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "batchPath": "batch"
}
