openapi: 3.0.0 info: version: 0.9.0 title: Glean Client API x-source-commit-sha: f7901d44d45ee81a4b6eeaab7f6771425f26a965 description: | # Introduction These are the public APIs to enable implementing a custom client interface to the Glean system. # Usage guidelines This API is evolving fast. Glean will provide advance notice of any planned backwards incompatible changes along with a 6-month sunset period for anything that requires developers to adopt the new versions. # SDK Client bindings for the API can be generated for most popular languages (Python, Java, NodeJS, etc). To do so: Download the OpenAPI specification for the API, by clicking on one of the following options: 1. [Download JSON specification](https://api.redocly.com/registry/bundle/glean/Glean%20Client%20API%20SDK%20source/v1/openapi.json?branch=main&download=true) 2. [Download YAML specification](https://api.redocly.com/registry/bundle/glean/Glean%20Client%20API%20SDK%20source/v1/openapi.yaml?branch=main&download=true) Use [openapi-generator-cli](https://github.com/OpenAPITools/openapi-generator-cli) to generate bindings for your language of choice, for example: ```bash shell $ npx @openapitools/openapi-generator-cli@latest generate -i client_api.yaml -g go ``` To see available languages: ```bash shell $ npx @openapitools/openapi-generator-cli@latest list ``` Determine the host you need to connect to. This will be the URL of the backend for your Glean deployment, for example, customer-be.glean.com x-logo: url: https://app.glean.com/images/glean-text2.svg x-open-api-commit-sha: 79e9891cc4c0dc8c2c833f34e85e8a9aa722d103 servers: - url: https://{instance}-be.glean.com variables: instance: default: instance-name description: The instance name (typically the email domain without the TLD) that determines the deployment backend. security: - APIToken: [] paths: /rest/api/v1/activity: post: tags: - Activity summary: Report document activity description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. operationId: activity x-visibility: Public x-codegen-request-body-name: payload requestBody: content: application/json: schema: $ref: "#/components/schemas/Activity" required: true x-exportParamName: Activity responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/feedback: post: tags: - Activity summary: Report client activity description: Report events that happen to results within a Glean client UI, such as search result views and clicks. This signal improves search quality. operationId: feedback x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - name: feedback in: query description: A URL encoded versions of Feedback. This is useful for requests. required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/Feedback" x-exportParamName: Feedback responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/createannouncement: post: tags: - Announcements summary: Create Announcement description: Create a textual announcement visible to some set of users based on department and location. operationId: createannouncement x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateAnnouncementRequest" description: Announcement content required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Announcement" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/deleteannouncement: post: tags: - Announcements summary: Delete Announcement description: Delete an existing user-generated announcement. operationId: deleteannouncement x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteAnnouncementRequest" description: Delete announcement request required: true x-exportParamName: Request responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/updateannouncement: post: tags: - Announcements summary: Update Announcement description: Update a textual announcement visible to some set of users based on department and location. operationId: updateannouncement x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAnnouncementRequest" description: Announcement content. Id need to be specified for the announcement. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Announcement" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/createanswer: post: tags: - Answers summary: Create Answer description: Create a user-generated Answer that contains a question and answer. operationId: createanswer x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateAnswerRequest" description: CreateAnswer request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Answer" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/deleteanswer: post: tags: - Answers summary: Delete Answer description: Delete an existing user-generated Answer. operationId: deleteanswer x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteAnswerRequest" description: DeleteAnswer request required: true x-exportParamName: Request responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/editanswer: post: tags: - Answers summary: Update Answer description: Update an existing user-generated Answer. operationId: editanswer x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/EditAnswerRequest" description: EditAnswer request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Answer" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/getanswer: post: tags: - Answers summary: Read Answer description: Read the details of a particular Answer given its ID. operationId: getanswer x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetAnswerRequest" description: GetAnswer request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetAnswerResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/listanswers: post: tags: - Answers summary: List Answers description: List Answers created by the current user. operationId: listanswers deprecated: true x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/ListAnswersRequest" description: ListAnswers request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListAnswersResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests x-glean-deprecated: id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 introduced: "2026-01-21" message: Answer boards have been removed and this endpoint no longer serves a purpose removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" /rest/api/v1/checkdatasourceauth: post: tags: - Authentication summary: Check datasource authorization description: | Returns all datasource instances that require per-user OAuth authorization for the authenticated user, along with a transient auth token that can be appended to auth URLs to complete OAuth flows. Clients construct the full OAuth URL by combining the backend base URL, the `authUrlRelativePath` from each instance, and the transient auth token: `/?transient_auth_token=`. operationId: checkdatasourceauth x-visibility: Public parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CheckDatasourceAuthResponse" "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/createauthtoken: post: tags: - Authentication summary: Create authentication token description: | Creates an authentication token for the authenticated user. These are specifically intended to be used with the [Web SDK](https://developers.glean.com/web). Note: The tokens generated from this endpoint are **not** valid tokens for use with the Client API (e.g. `/rest/api/v1/*`). operationId: createauthtoken x-visibility: Public parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CreateAuthTokenResponse" "400": description: Invalid Request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/chat: post: tags: - Chat summary: Chat description: Have a conversation with Glean AI. operationId: chat x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: $ref: "#/components/schemas/ChatRequest" examples: defaultExample: value: messages: - author: USER messageType: CONTENT fragments: - text: What are the company holidays this year? gptAgentExample: value: agentConfig: agent: GPT messages: - author: USER messageType: CONTENT fragments: - text: Who was the first person to land on the moon? description: Includes chat history for Glean AI to respond to. required: true x-exportParamName: Request responses: "200": description: OK content: text/plain: schema: $ref: "#/components/schemas/ChatResponse" examples: defaultExample: value: messages: - author: GLEAN_AI messageType: CONTENT hasMoreFragments: false agentConfig: agent: DEFAULT mode: DEFAULT fragments: - text: There are no holidays! streamingExample: value: messages: - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT hasMoreFragments: true fragments: null - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT hasMoreFragments: true fragments: null - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT hasMoreFragments: true fragments: - text: e are - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT hasMoreFragments: true fragments: - text: no hol - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT hasMoreFragments: false fragments: - text: idays! updateResponse: value: messages: - author: GLEAN_AI messageType: UPDATE agentConfig: agent: DEFAULT mode: DEFAULT fragments: - text: "**Reading:**" - structuredResults: - document: id: "123" title: Company Handbook citationResponse: value: messages: - author: GLEAN_AI messageType: CONTENT agentConfig: agent: DEFAULT mode: DEFAULT citations: - sourceDocument: id: "123" title: Company Handbook referenceRanges: - textRange: startIndex: 0 endIndex: 12 type: CITATION "202": description: | Request accepted but not yet processed. Returned when another in-flight request is already running for the same chat session; the body's `queuedRequestId` identifies the deferred run and output will be persisted to the chat session referenced by `chatId`. content: application/json: schema: $ref: "#/components/schemas/ChatResponse" examples: queuedExample: value: chatId: abc123 queuedRequestId: qr-xyz isSavedToChatHistory: true "400": description: Invalid request "401": description: Not Authorized "408": description: Request Timeout "429": description: Too Many Requests /rest/api/v1/deleteallchats: post: tags: - Chat summary: Deletes all saved Chats owned by a user description: Deletes all saved Chats a user has had and all their contained conversational content. operationId: deleteallchats x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden /rest/api/v1/deletechats: post: tags: - Chat summary: Deletes saved Chats description: Deletes saved Chats and all their contained conversational content. operationId: deletechats x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteChatsRequest" required: true x-exportParamName: Request responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/getchat: post: tags: - Chat summary: Retrieves a Chat description: Retrieves the chat history between Glean Assistant and the user for a given Chat. operationId: getchat x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetChatRequest" required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetChatResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/AccessRequestPermissionDeniedResponse" "429": description: Too Many Requests /rest/api/v1/listchats: post: tags: - Chat summary: Retrieves all saved Chats description: Retrieves all the saved Chats between Glean Assistant and the user. The returned Chats contain only metadata and no conversational content. operationId: listchats x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListChatsResponse" "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/getchatapplication: post: tags: - Chat summary: Gets the metadata for a custom Chat application description: Gets the Chat application details for the specified application ID. operationId: getchatapplication x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetChatApplicationRequest" required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetChatApplicationResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden /rest/api/v1/uploadchatfiles: post: tags: - Chat summary: Upload files for Chat description: Upload files for Chat. operationId: uploadchatfiles x-visibility: Public parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: required: true content: multipart/form-data: schema: $ref: "#/components/schemas/UploadChatFilesRequest" x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/UploadChatFilesResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/getchatfiles: post: tags: - Chat summary: Get files uploaded by a user for Chat description: Get files uploaded by a user for Chat. operationId: getchatfiles x-visibility: Public parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GetChatFilesRequest" x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetChatFilesResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/deletechatfiles: post: tags: - Chat summary: Delete files uploaded by a user for chat description: Delete files uploaded by a user for Chat. operationId: deletechatfiles x-visibility: Public parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DeleteChatFilesRequest" responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/chat-files/{fileId}: get: tags: - Chat summary: Download a chat file description: | Download the raw content of a file generated or uploaded during a chat session (for example, an image produced by the assistant). Returns the file bytes with a Content-Type header matching the file's MIME type. operationId: getChatFile x-visibility: Public parameters: - name: fileId in: path required: true description: Identifier of the chat file to download. schema: type: string - name: preview in: query required: false description: | When true and the file is a PDF, the response is served inline (Content-Disposition: inline) instead of as an attachment. schema: type: boolean responses: "200": description: File content. content: application/octet-stream: schema: type: string format: binary "400": description: File ID missing from path. "401": description: Missing or invalid API token. "403": description: Caller does not have access to the file. "404": description: File not found. "500": description: Internal server error. /rest/api/v1/agents: post: tags: - Agents summary: Create an agent description: Create an agent. operationId: createAgent x-visibility: Preview parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateWorkflowRequest" responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/CreateWorkflowResponse" "400": description: Bad request "401": description: Not Authorized "403": description: Forbidden "500": description: Internal server error /rest/api/v1/agents/{agent_id}: get: tags: - Agents summary: Retrieve an agent description: Returns details of an [agent](https://developers.glean.com/agents/agents-api) created in the Agent Builder. operationId: getAgent x-visibility: Preview parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" - description: The ID of the agent. required: true schema: type: string title: Agent ID description: The ID of the agent. name: agent_id in: path responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/Agent" "400": description: Bad request "403": description: Forbidden "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error post: tags: - Agents summary: Edit an agent description: Creates a draft or publishes an [agent](https://developers.glean.com/agents/agents-api). Use `isDraft=true` to save a draft, or `isDraft=false` (or omit) to publish immediately. Only draft and publish modes are supported. operationId: editAgent x-visibility: Preview parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" - description: The ID of the agent. required: true schema: type: string title: Agent ID description: The ID of the agent. name: agent_id in: path requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/EditWorkflowRequest" responses: "200": description: Success "400": description: Bad request "401": description: Not Authorized "403": description: Forbidden "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error /rest/api/v1/agents/{agent_id}/schemas: get: tags: - Agents summary: List an agent's schemas description: Return [agent](https://developers.glean.com/agents/agents-api)'s input and output schemas. You can use these schemas to detect changes to an agent's input or output structure. operationId: getAgentSchemas x-visibility: Preview parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" - $ref: "#/components/parameters/timezoneOffset" - description: The ID of the agent. required: true schema: type: string title: Agent Id description: The ID of the agent. name: agent_id in: path responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/AgentSchemas" "400": description: Bad request "403": description: Forbidden "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error /rest/api/v1/agents/search: post: tags: - Agents summary: Search agents description: Search for [agents](https://developers.glean.com/agents/agents-api) by agent name. operationId: searchAgents x-visibility: Preview requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SearchAgentsRequest" responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/SearchAgentsResponse" "400": description: Bad request "403": description: Forbidden "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error /rest/api/v1/agents/runs/stream: post: tags: - Agents summary: Create an agent run and stream the response description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the result as a stream of server-sent events (SSE). **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." operationId: createAndStreamRun x-visibility: Preview requestBody: content: application/json: schema: $ref: "#/components/schemas/AgentRunCreate" required: true responses: "200": description: Success content: text/event-stream: schema: type: string description: The server will send a stream of events in server-sent events (SSE) format. If execution fails after the stream has started, the stream may terminate with an error message in a normal `message` event. example: | id: 1 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":"Hello","type":"text"}]}]} id: 2 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":",","type":"text"}]}]} id: 3 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" I'm","type":"text"}]}]} id: 4 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":" your","type":"text"}]}]} "400": description: Bad request "403": description: Forbidden "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "422": description: Validation Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal server error /rest/api/v1/agents/runs/wait: post: tags: - Agents summary: Create an agent run and wait for the response description: "Executes an [agent](https://developers.glean.com/agents/agents-api) run and returns the final response. **Note**: If the agent uses an input form trigger, all form fields (including optional fields) must be included in the `input` object." operationId: createAndWaitRun x-visibility: Preview requestBody: content: application/json: schema: $ref: "#/components/schemas/AgentRunCreate" required: true responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/AgentRunWaitResponse" "400": description: Bad request "403": description: Forbidden "404": description: Not Found "409": description: Conflict "422": description: Validation Error "500": description: Internal server error /rest/api/v1/addcollectionitems: post: tags: - Collections summary: Add Collection item description: Add items to a Collection. operationId: addcollectionitems x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/AddCollectionItemsRequest" description: Data describing the add operation. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AddCollectionItemsResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/createcollection: post: tags: - Collections summary: Create Collection description: Create a publicly visible (empty) Collection of documents. operationId: createcollection x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateCollectionRequest" description: Collection content plus any additional metadata for the request. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CreateCollectionResponse" "400": description: Invalid request "401": description: Not Authorized "422": description: Semantic error content: application/json: schema: $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests /rest/api/v1/deletecollection: post: tags: - Collections summary: Delete Collection description: Delete a Collection given the Collection's ID. operationId: deletecollection x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteCollectionRequest" description: DeleteCollection request required: true x-exportParamName: Request responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "422": description: Semantic error content: application/json: schema: $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests /rest/api/v1/deletecollectionitem: post: tags: - Collections summary: Delete Collection item description: Delete a single item from a Collection. operationId: deletecollectionitem x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteCollectionItemRequest" description: Data describing the delete operation. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DeleteCollectionItemResponse" "400": description: Invalid request "401": description: Not Authorized "422": description: Failed to save deletion "429": description: Too Many Requests /rest/api/v1/editcollection: post: tags: - Collections summary: Update Collection description: Update the properties of an existing Collection. operationId: editcollection x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/EditCollectionRequest" description: Collection content plus any additional metadata for the request. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EditCollectionResponse" "400": description: Invalid request "401": description: Not Authorized "422": description: Semantic error content: application/json: schema: $ref: "#/components/schemas/CollectionError" "429": description: Too Many Requests /rest/api/v1/editcollectionitem: post: tags: - Collections summary: Update Collection item description: Update the URL, Glean Document ID, description of an item within a Collection given its ID. operationId: editcollectionitem x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/EditCollectionItemRequest" description: Edit Collection Items request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EditCollectionItemResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/getcollection: post: tags: - Collections summary: Read Collection description: Read the details of a Collection given its ID. Does not fetch items in this Collection. operationId: getcollection x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetCollectionRequest" description: GetCollection request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetCollectionResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/listcollections: post: tags: - Collections summary: List Collections description: List all existing Collections. operationId: listcollections x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/ListCollectionsRequest" description: ListCollections request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListCollectionsResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/getdocpermissions: post: tags: - Documents summary: Read document permissions description: Read the emails of all users who have access to the given document. operationId: getdocpermissions x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDocPermissionsRequest" description: Document permissions request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetDocPermissionsResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden "429": description: Too Many Requests /rest/api/v1/getdocuments: post: tags: - Documents summary: Read documents description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) for the given list of Glean Document IDs or URLs specified in the request. operationId: getdocuments x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDocumentsRequest" description: Information about documents requested. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetDocumentsResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Documents does not exist, or user cannot access documents. "429": description: Too Many Requests /rest/api/v1/getdocumentsbyfacets: post: tags: - Documents summary: Read documents by facets description: Read the documents including metadata (does not include enhanced metadata via `/documentmetadata`) macthing the given facet conditions. operationId: getdocumentsbyfacets x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetDocumentsByFacetsRequest" description: Information about facet conditions for documents to be retrieved. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetDocumentsByFacetsResponse" "400": description: Invalid request "401": description: Not Authorized "404": description: Not Found "429": description: Too Many Requests /rest/api/v1/insights: post: tags: - Insights summary: Get insights description: Gets the aggregate usage insights data displayed in the Insights Dashboards. operationId: insights x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/InsightsRequest" description: Includes request parameters for insights requests. required: true x-exportParamName: InsightsRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/InsightsResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/messages: post: tags: - Messages summary: Read messages description: Retrieves list of messages from messaging/chat datasources (e.g. Slack, Teams). operationId: messages x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/MessagesRequest" description: Includes request params such as the id for channel/message and direction. required: true x-exportParamName: MessagesRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MessagesResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/editpin: post: tags: - Pins summary: Update pin description: Update an existing user-generated pin. operationId: editpin x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/EditPinRequest" description: Edit pins request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PinDocument" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/getpin: post: tags: - Pins summary: Read pin description: Read pin details given its ID. operationId: getpin x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetPinRequest" description: Get pin request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetPinResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/listpins: post: tags: - Pins summary: List pins description: Lists all pins. operationId: listpins x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: type: object description: List pins request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListPinsResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/pin: post: tags: - Pins summary: Create pin description: Pin a document as a result for a given search query.Pin results that are known to be a good match. operationId: pin x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/PinRequest" description: Details about the document and query for the pin. required: true x-exportParamName: PinDocument responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PinDocument" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/unpin: post: tags: - Pins summary: Delete pin description: Unpin a previously pinned result. operationId: unpin x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/Unpin" description: Details about the pin being unpinned. required: true x-exportParamName: Unpin responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden from unpinning someone else's pin "429": description: Too Many Requests /rest/api/v1/adminsearch: post: tags: - Search summary: Search the index (admin) description: Retrieves results for search query without respect for permissions. This is available only to privileged users. operationId: adminsearch x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/SearchRequest" description: Admin search request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "422": description: Invalid Query content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "429": description: Too Many Requests /rest/api/v1/autocomplete: post: tags: - Search summary: Autocomplete description: Retrieve query suggestions, operators and documents for the given partially typed query. operationId: autocomplete x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/AutocompleteRequest" description: Autocomplete request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AutocompleteResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/feed: post: tags: - Search summary: Feed of documents and events description: The personalized feed/home includes different types of contents including suggestions, recents, calendar events and many more. operationId: feed x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/FeedRequest" description: Includes request params, client data and more for making user's feed. required: true x-exportParamName: FeedRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/FeedResponse" "400": description: Invalid request "401": description: Not Authorized "408": description: Request Timeout "429": description: Too Many Requests /rest/api/v1/recommendations: post: tags: - Search summary: Recommend documents description: Retrieve recommended documents for the given URL or Glean Document ID. operationId: recommendations x-visibility: Preview x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/RecommendationsRequest" description: Recommendations request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RecommendationsResponse" "202": description: Accepted. The Retry-After header has a hint about when the response will be available "204": description: There are no recommendations for this URL "400": description: Invalid request "401": description: Not Authorized "403": description: Document does not exist or user cannot access document "429": description: Too Many Requests /rest/api/v1/search: post: tags: - Search summary: Search description: Retrieve results from the index for the given query and filters. operationId: search x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/SearchRequest" description: Search request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "400": description: Invalid request "401": description: Not Authorized "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "408": description: Request Timeout "422": description: Invalid Query content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "429": description: Too Many Requests /rest/api/v1/listentities: post: tags: - Entities summary: List entities description: List some set of details for all entities that fit the given criteria and return in the requested order. Does not support negation in filters, assumes relation type EQUALS. There is a limit of 10000 entities that can be retrieved via this endpoint, except when using FULL_DIRECTORY request type for people entities. operationId: listentities x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/ListEntitiesRequest" description: List people request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListEntitiesResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/people: post: tags: - Entities summary: Read people description: Read people details for the given IDs. operationId: people x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/PeopleRequest" description: People request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PeopleResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/people/{person_id}/photo: get: tags: - Entities summary: Get person photo description: | Returns the profile photo bytes for a person whose photo is stored in Glean (crawled from an identity source or user-uploaded via admin console). Photos hosted externally (e.g. Slack CDN) are not served by this endpoint; callers should follow the photoUrl from /people or /listentities directly. Responses include a Cache-Control header (max-age=3600) to reduce redundant fetches. operationId: getPersonPhoto x-visibility: Public parameters: - name: person_id in: path required: true description: The obfuscated ID of the person whose photo to retrieve. schema: type: string - name: ds in: query required: false description: | Optional datasource override for crawled photos (e.g. AZURE, GDRIVE, OKTA). When omitted, the datasource is derived from the person's stored photo URL or the deployment's primary person datasource. schema: type: string - $ref: "#/components/parameters/xGleanAuthTypeHeader" responses: "200": description: Photo bytes returned successfully. headers: Cache-Control: description: Caching directive for the photo response. schema: type: string example: public, max-age=3600 content: image/png: schema: type: string format: binary image/jpeg: schema: type: string format: binary "400": description: Missing person_id parameter. "401": description: Not Authorized. "404": description: | Person not found, person has no photo, or photo is not hosted by Glean (follow photoUrl from /people or /listentities directly). "429": description: Too Many Requests. /rest/api/v1/createshortcut: post: tags: - Shortcuts summary: Create shortcut description: Create a user-generated shortcut that contains an alias and destination URL. operationId: createshortcut x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateShortcutRequest" description: CreateShortcut request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CreateShortcutResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/deleteshortcut: post: tags: - Shortcuts summary: Delete shortcut description: Delete an existing user-generated shortcut. operationId: deleteshortcut x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/DeleteShortcutRequest" description: DeleteShortcut request required: true x-exportParamName: Request responses: "200": description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/getshortcut: post: tags: - Shortcuts summary: Read shortcut description: Read a particular shortcut's details given its ID. operationId: getshortcut x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/GetShortcutRequest" description: GetShortcut request required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GetShortcutResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/listshortcuts: post: tags: - Shortcuts summary: List shortcuts description: List shortcuts editable/owned by the currently authenticated user. operationId: listshortcuts x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/ListShortcutsPaginatedRequest" description: Filters, sorters, paging params required for pagination required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListShortcutsPaginatedResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/updateshortcut: post: tags: - Shortcuts summary: Update shortcut description: Updates the shortcut with the given ID. operationId: updateshortcut x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateShortcutRequest" description: Shortcut content. Id need to be specified for the shortcut. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/UpdateShortcutResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/summarize: post: tags: - Summarize summary: Summarize documents description: Generate an AI summary of the requested documents. operationId: summarize x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/SummarizeRequest" description: Includes request params such as the query and specs of the documents to summarize. required: true x-exportParamName: Request responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/SummarizeResponse" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/addverificationreminder: post: tags: - Verification summary: Create verification description: Creates a verification reminder for the document. Users can create verification reminders from different product surfaces. operationId: addverificationreminder x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/ReminderRequest" description: Details about the reminder. required: true x-exportParamName: ReminderRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Verification" "400": description: Invalid request "401": description: Not Authorized "403": description: Document does not exist, does not support verification or user cannot access document "429": description: Too Many Requests /rest/api/v1/listverifications: post: tags: - Verification summary: List verifications description: Returns the information to be rendered in verification dashboard. Includes information for each document owned by user regarding their verifications. operationId: listverifications x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - in: query name: count description: Maximum number of documents to return required: false schema: type: integer - $ref: "#/components/parameters/locale" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/VerificationFeed" "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests /rest/api/v1/verify: post: tags: - Verification summary: Update verification description: Verify documents to keep the knowledge up to date within customer corpus. operationId: verify x-visibility: Public x-codegen-request-body-name: payload parameters: - $ref: "#/components/parameters/xGleanActAsHeader" - $ref: "#/components/parameters/xGleanAuthTypeHeader" - $ref: "#/components/parameters/locale" requestBody: content: application/json: schema: $ref: "#/components/schemas/VerifyRequest" description: Details about the verification request. required: true x-exportParamName: VerifyRequest responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Verification" "400": description: Invalid request "401": description: Not Authorized "403": description: Document does not exist, does not support verification or user cannot access document "429": description: Too Many Requests /rest/api/v1/tools/list: get: tags: - Tools summary: List available tools description: Returns a filtered set of available tools based on optional tool name parameters. If no filters are provided, all available tools are returned. x-visibility: Preview parameters: - in: query name: toolNames description: Optional array of tool names to filter by required: false schema: type: array items: type: string style: form explode: false responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ToolsListResponse" "400": description: Bad Request "401": description: Unauthorized "404": description: Not Found "429": description: Too Many Requests /rest/api/v1/tools/call: post: tags: - Tools summary: Execute the specified tool description: Execute the specified tool with provided parameters x-visibility: Preview requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ToolsCallRequest" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ToolsCallResponse" "400": description: Bad Request "401": description: Unauthorized "404": description: Not Found "429": description: Too Many Requests /rest/api/v1/actions/actionpack/{actionPackId}/auth: parameters: - in: path name: actionPackId required: true description: ID of the action pack to query or authorize. schema: type: string get: tags: - Tools summary: Get end-user authentication status for an action pack. description: | Reports whether the calling user is already authenticated against the third-party tool backing the specified action pack. Intended for headless / server-driven clients that render an "Authorize" prompt when the user has not yet consented to the tool. operationId: getActionPackAuthStatus x-visibility: Preview responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ActionPackAuthStatusResponse" "400": description: Bad Request "401": description: Unauthorized "404": description: Action pack not found "429": description: Too Many Requests post: tags: - Tools summary: Start the OAuth authorization flow for an action pack. description: | Starts the third-party OAuth flow for the specified action pack and returns the redirect URL that the client should navigate the end user to. After the OAuth callback completes, the user's browser is redirected back to `returnUrl` with a status query parameter (`?glean_action_auth=success|error&actionPackId=...`). `returnUrl` must match the tenant's configured return URL allowlist; otherwise the request is rejected with 400. operationId: authorizeActionPack x-visibility: Preview requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AuthorizeActionPackRequest" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/AuthorizeActionPackResponse" "400": description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) "401": description: Unauthorized "403": description: User not entitled to the action pack "404": description: Action pack not found "429": description: Too Many Requests /rest/api/v1/tool-servers/{serverId}/auth: parameters: - in: path name: serverId required: true description: Unique identifier of the tool server. schema: type: string get: tags: - Tools summary: Get end-user authentication status for a tool server. description: | Returns display information and the calling user's current authentication status for the specified tool server. operationId: getToolServerAuthStatus x-visibility: Preview x-glean-experimental: id: 52fde6ec-c18b-4de6-b761-f82008542ae7 introduced: "2026-07-02" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ToolServerAuthStatusResponse" "400": description: Bad Request "401": description: Unauthorized "404": description: Tool server not found "429": description: Too Many Requests post: tags: - Tools summary: Start the OAuth authorization flow for a tool server. description: | Initiates the third-party OAuth flow for the specified tool server and returns the authorization URL that the client should navigate the end user to. After the OAuth callback completes, the user's browser is redirected back to `returnUrl` with query parameters indicating the result. `returnUrl` must match the tenant's configured return URL allowlist; otherwise the request is rejected with 400. operationId: authorizeToolServer x-visibility: Preview x-glean-experimental: id: 1935476e-ecaf-4c1f-a9fd-1e768cf68f30 introduced: "2026-07-02" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AuthorizeToolServerRequest" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/AuthorizeToolServerResponse" "400": description: Invalid request (e.g. returnUrl not in allowlist, unsupported auth type) "401": description: Unauthorized "403": description: User not entitled to the tool server "404": description: Tool server not found "429": description: Too Many Requests components: securitySchemes: APIToken: scheme: bearer type: http schemas: ActivityEventParams: properties: bodyContent: description: The HTML content of the page body. type: string datasourceInstance: type: string description: The full datasource instance name inferred from the URL of the event datasource: type: string description: The datasource without the instance inferred from the URL of the event instanceOnlyName: type: string description: The instance only name of the datasource instance, e.g. 1 for jira_1, inferred from the URL of the event duration: description: Length in seconds of the activity. For VIEWS, this represents the amount the page was visible in the foreground. type: integer query: description: The user's search query associated with a SEARCH. type: string referrer: description: The referring URL of the VIEW or SEARCH. type: string title: description: The page title associated with the URL of the event type: string truncated: description: Indicates that the parameters are incomplete and more parameters may be sent with the same action+timestamp+URL in the future. This is used for sending the duration when a `VIEW` is finished. type: boolean ActivityEvent: required: - action - source - timestamp - url properties: id: type: string description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. action: type: string description: The type of activity this represents. x-enumDescriptions: VIEW: Represents a visit to the given `url`. EDIT: Represents an edit of the document represented by the `url`. SEARCH: Represents a search performed at the given `url`. COMMENT: Represents a comment on the document represented by the `url`. CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. enum: - VIEW - EDIT - SEARCH - COMMENT - CRAWL - HISTORICAL_SEARCH - HISTORICAL_VIEW x-speakeasy-enum-descriptions: VIEW: Represents a visit to the given `url`. EDIT: Represents an edit of the document represented by the `url`. SEARCH: Represents a search performed at the given `url`. COMMENT: Represents a comment on the document represented by the `url`. CRAWL: Represents an explicit request to index the given `url` along with associated attributes in this payload. HISTORICAL_SEARCH: Represents a search performed at the given `url` as indicated by the user's history. HISTORICAL_VIEW: Represents a visit to the given `url` as indicated by the user's history. params: $ref: "#/components/schemas/ActivityEventParams" timestamp: type: string description: The ISO 8601 timestamp when the activity began. format: date-time url: description: The URL of the activity. type: string Activity: required: - events properties: events: type: array items: $ref: "#/components/schemas/ActivityEvent" example: events: - url: https://example.com/ action: HISTORICAL_VIEW timestamp: "2000-01-23T04:56:07.000Z" - url: https://example.com/search?q=query action: SEARCH timestamp: "2000-01-23T04:56:07.000Z" params: query: query - url: https://example.com/ action: VIEW timestamp: "2000-01-23T04:56:07.000Z" params: duration: 20 referrer: https://example.com/document SessionInfo: properties: sessionTrackingToken: type: string description: A unique token for this session. A new session (and token) is created when the user issues a request from a new tab or when our server hasn't seen activity for more than 10 minutes from a tab. tabId: type: string description: A unique id for all requests a user makes from a given tab, no matter how far apart. A new tab id is only generated when a user issues a request from a new tab. lastSeen: type: string format: date-time description: The last time the server saw this token. lastQuery: type: string description: The last query seen by the server. User: properties: userID: description: An opaque user ID for the claimed authority (i.e., the actas param, or the origid if actas is not specified). type: string origID: description: An opaque user ID for the authenticated user (ignores actas). type: string FeedbackChatExchange: properties: timestamp: type: integer format: int64 description: Unix timestamp in millis for the chat request. agent: type: string description: Either DEFAULT (company knowledge) or GPT (world knowledge). userQuery: type: string description: Initial query entered by the user. searchQuery: type: string description: Search query performed by the agent. resultDocuments: type: array description: List of documents read by the agent. items: properties: title: type: string url: type: string response: type: string ManualFeedbackInfo: properties: email: type: string description: The email address of the user who submitted the Feedback.event.MANUAL_FEEDBACK event. deprecated: true source: type: string description: The source associated with the Feedback.event.MANUAL_FEEDBACK event. enum: - AUTOCOMPLETE - CALENDAR - CHAT - CHAT_GENERAL - CONCEPT_CARD - DESKTOP_APP - DISAMBIGUATION_CARD - EXPERT_DETECTION - FEED - GENERATED_Q_AND_A - INLINE_MENU - NATIVE_RESULT - PRISM - Q_AND_A - RELATED_QUESTIONS - REPORT_ISSUE - SCIOBOT - SEARCH - SIDEBAR - SUMMARY - TASKS - TASK_EXECUTION issue: type: string description: The issue the user indicated in the feedback. deprecated: true issues: type: array description: The issue(s) the user indicated in the feedback. items: type: string enum: - AGENT_CANVAS_FAILED - AGENT_CLARIFYING_QUESTIONS - AGENT_INTERMEDIATE_STEPS_FAILED - AGENT_TOOL_CALL_FAILED - INACCURATE_RESPONSE - INCOMPLETE_OR_NO_ANSWER - INCORRECT_CITATION - MISSING_CITATION - OTHER - OUTDATED_RESPONSE - RESULT_MISSING - RESULT_SHOULD_NOT_APPEAR - RESULTS_HELPFUL - RESULTS_POOR_ORDER - TOO_MUCH_ONE_KIND imageUrls: type: array items: type: string description: URLs of images uploaded by user when providing feedback query: type: string description: The query associated with the Feedback.event.MANUAL_FEEDBACK event. obscuredQuery: type: string description: The query associated with the Feedback.event.MANUAL_FEEDBACK event, but obscured such that the vowels are replaced with special characters. For search feedback events only. activeTab: type: string description: Which tabs the user had chosen at the time of the Feedback.event.MANUAL_FEEDBACK event. For search feedback events only. comments: type: string description: The comments users can optionally add to the Feedback.event.MANUAL_FEEDBACK events. searchResults: type: array items: type: string description: The array of search result Glean Document IDs, ordered by top to bottom result. previousMessages: type: array items: type: string description: The array of previous messages in a chat session, ordered by oldest to newest. chatTranscript: type: array items: $ref: "#/components/schemas/FeedbackChatExchange" description: Array of previous request/response exchanges, ordered by oldest to newest. numQueriesFromFirstRun: type: integer description: How many times this query has been run in the past. vote: type: string description: The vote associated with the Feedback.event.MANUAL_FEEDBACK event. enum: - UPVOTE - DOWNVOTE rating: type: integer description: A rating associated with the user feedback. The value will be between one and the maximum given by ratingScale, inclusive. ratingKey: type: string description: A description of the rating that contextualizes how it appeared to the user, e.g. "satisfied". ratingScale: type: integer description: The scale of comparison for a rating associated with the feedback. Rating values start from one and go up to the maximum specified by ratingScale. For example, a five-option satisfaction rating will have a ratingScale of 5 and a thumbs-up/thumbs-down rating will have a ratingScale of 2. SideBySideImplementation: properties: implementationId: type: string description: Unique identifier for this implementation variant. implementationName: type: string description: Human-readable name for this implementation (e.g., "Variant A", "GPT-4", "Claude"). searchParams: type: object description: The search/chat parameters used for this implementation. additionalProperties: type: string response: type: string description: The full response generated by this implementation. responseMetadata: type: object description: Metadata about the response (e.g., latency, token count). properties: latencyMs: type: integer description: Time taken to generate the response in milliseconds. tokenCount: type: integer description: Number of tokens in the response. modelUsed: type: string description: The specific model version used. ManualFeedbackSideBySideInfo: properties: email: type: string description: The email address of the user who submitted the side-by-side feedback. source: type: string description: The source associated with the side-by-side feedback event. enum: - LIVE_EVAL - CHAT - SEARCH query: type: string description: The query or prompt that was evaluated across multiple implementations. implementations: type: array description: Array of implementations that were compared side-by-side. items: $ref: "#/components/schemas/SideBySideImplementation" evaluationSessionId: type: string description: Unique identifier for this evaluation session to group related feedback events. implementationId: type: string description: The ID of the implementation this specific feedback event is for. vote: type: string description: The vote for this specific implementation. enum: - UPVOTE - DOWNVOTE - NEUTRAL comments: type: string description: Specific feedback comments for this implementation. SeenFeedbackInfo: properties: isExplicit: type: boolean description: The confidence of the user seeing the object is high because they explicitly interacted with it e.g. answer impression in SERP with additional user interaction. UserViewInfo: properties: docId: type: string description: Unique Glean Document ID of the associated document. docTitle: type: string description: Title of associated document. docUrl: type: string description: URL of associated document. WorkflowFeedbackInfo: properties: source: type: string enum: - ZERO_STATE - LIBRARY - HOMEPAGE description: Where the feedback of the workflow originated from Feedback: required: - event - trackingTokens properties: id: type: string description: Universally unique identifier of the event. To allow for reliable retransmission, only the earliest received event of a given UUID is considered valid by the server and subsequent are ignored. category: type: string description: The feature category to which the feedback applies. These should be broad product areas such as Announcements, Answers, Search, etc. rather than specific components or UI treatments within those areas. enum: - ANNOUNCEMENT - ANSWERS - ARTIFACTS - AUTOCOMPLETE - COLLECTIONS - FEED - SEARCH - CHAT - NTP - WORKFLOWS - SUMMARY - GENERAL - PRISM - PROMPTS trackingTokens: type: array description: A list of server-generated trackingTokens to which this event applies. items: type: string event: type: string description: The action the user took within a Glean client with respect to the object referred to by the given `trackingToken`. x-enumDescriptions: CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. COPY_LINK: The user copied a link to the primary link. CREATE: The user creates a document. DISMISS: The user dismissed the object such that it was hidden from view. DOWNVOTE: The user gave feedback that the object was not useful. EMAIL: The user attempted to send an email. EXECUTE: The user executed the object (e.g. ran a workflow). FILTER: The user applied a filter. FIRST_TOKEN: The first token of a streaming response is received. FOCUS_IN: The user clicked into an interactive element, e.g. the search box. LAST_TOKEN: The final token of a streaming response is received. MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. MARK_AS_READ: The user explicitly marked the content as read. MESSAGE: The user attempted to send a message using their default messaing app. MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. PAGE_BLUR: The user puts a page out of focus but keeps it in the background. PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). PREVIEW: The user clicked the object's inline preview affordance. RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. SECTION_CLICK: The user clicked a link to a subsection of the primary object. SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). SELECT: The user explicitly selected something, eg. a chat response variant they prefer. SHARE: The user shared the object with another user. SHOW_MORE: The user clicked the object's show more affordance. UPVOTE: The user gave feedback that the object was useful. VIEW: The object was visible within the user's viewport. VISIBLE: The object was visible within the user's viewport. enum: - CLICK - CONTAINER_CLICK - COPY_LINK - CREATE - DISMISS - DOWNVOTE - EMAIL - EXECUTE - FILTER - FIRST_TOKEN - FOCUS_IN - LAST_TOKEN - MANUAL_FEEDBACK - MANUAL_FEEDBACK_SIDE_BY_SIDE - FEEDBACK_TIME_SAVED - MARK_AS_READ - MESSAGE - MIDDLE_CLICK - PAGE_BLUR - PAGE_FOCUS - PAGE_LEAVE - PREVIEW - RELATED_CLICK - RIGHT_CLICK - SECTION_CLICK - SEEN - SELECT - SHARE - SHOW_MORE - UPVOTE - VIEW - VISIBLE x-speakeasy-enum-descriptions: CLICK: The object's primary link was clicked with the intent to view its full representation. Depending on the object type, this may imply an external navigation or navigating to a new page or view within the Glean app. CONTAINER_CLICK: A link to the object's parent container (e.g. the folder in which it's located) was clicked. COPY_LINK: The user copied a link to the primary link. CREATE: The user creates a document. DISMISS: The user dismissed the object such that it was hidden from view. DOWNVOTE: The user gave feedback that the object was not useful. EMAIL: The user attempted to send an email. EXECUTE: The user executed the object (e.g. ran a workflow). FILTER: The user applied a filter. FIRST_TOKEN: The first token of a streaming response is received. FOCUS_IN: The user clicked into an interactive element, e.g. the search box. LAST_TOKEN: The final token of a streaming response is received. MANUAL_FEEDBACK: The user submitted textual manual feedback regarding the object. MANUAL_FEEDBACK_SIDE_BY_SIDE: The user submitted comparative feedback for multiple side-by-side implementations. FEEDBACK_TIME_SAVED: The user submitted feedback about time saved by an agent or workflow. MARK_AS_READ: The user explicitly marked the content as read. MESSAGE: The user attempted to send a message using their default messaing app. MIDDLE_CLICK: The user middle clicked the object's primary link with the intent to open its full representation in a new tab. PAGE_BLUR: The user puts a page out of focus but keeps it in the background. PAGE_FOCUS: The user puts a page in focus, meaning it is the first to receive keyboard events. PAGE_LEAVE: The user leaves a page and it is unloaded (by clicking a link, closing the tab/window, etc). PREVIEW: The user clicked the object's inline preview affordance. RIGHT_CLICK: The user right clicked the object's primary link. This may indicate an intent to open it in a new tab or copy it. SECTION_CLICK: The user clicked a link to a subsection of the primary object. SEEN: The user has likely seen the object (e.g. took action to make the object visible within the user's viewport). SELECT: The user explicitly selected something, eg. a chat response variant they prefer. SHARE: The user shared the object with another user. SHOW_MORE: The user clicked the object's show more affordance. UPVOTE: The user gave feedback that the object was useful. VIEW: The object was visible within the user's viewport. VISIBLE: The object was visible within the user's viewport. position: type: integer description: Position of the element in the case that the client controls order (such as feed and autocomplete). payload: type: string description: For type MANUAL_FEEDBACK, contains string of user feedback. For autocomplete, partial query string. For feed, string of user feedback in addition to manual feedback signals extracted from all suggested content. sessionInfo: $ref: "#/components/schemas/SessionInfo" timestamp: type: string description: The ISO 8601 timestamp when the event occured. format: date-time user: $ref: "#/components/schemas/User" pathname: type: string description: The path the client was at when the feedback event triggered. channels: type: array description: Where the feedback will be sent, e.g. to Glean, the user's company, or both. If no channels are specified, feedback will go only to Glean. items: type: string enum: - COMPANY - GLEAN url: type: string description: The URL the client was at when the feedback event triggered. uiTree: description: The UI element tree associated with the event, if any. items: type: string type: array uiElement: type: string description: The UI element associated with the event, if any. manualFeedbackInfo: $ref: "#/components/schemas/ManualFeedbackInfo" manualFeedbackSideBySideInfo: $ref: "#/components/schemas/ManualFeedbackSideBySideInfo" seenFeedbackInfo: $ref: "#/components/schemas/SeenFeedbackInfo" userViewInfo: $ref: "#/components/schemas/UserViewInfo" workflowFeedbackInfo: $ref: "#/components/schemas/WorkflowFeedbackInfo" applicationId: type: string description: The application ID of the client that sent the feedback event. agentId: type: string description: The agent ID of the client that sent the feedback event. example: trackingTokens: - trackingTokens event: VIEW StructuredTextMutableProperties: required: - text properties: text: type: string example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. ConnectorType: type: string description: The source from which document content was pulled, e.g. an API crawl or browser history enum: - API_CRAWL - BROWSER_CRAWL - BROWSER_HISTORY - BUILTIN - FEDERATED_SEARCH - PUSH_API - WEB_CRAWL - NATIVE_HISTORY DocumentContent: properties: fullTextList: type: array items: type: string description: The plaintext content of the document. Document: properties: id: type: string description: The Glean Document ID. datasource: type: string description: The app or other repository type from which the document was extracted connectorType: $ref: "#/components/schemas/ConnectorType" docType: type: string description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). content: $ref: "#/components/schemas/DocumentContent" containerDocument: $ref: "#/components/schemas/Document" parentDocument: $ref: "#/components/schemas/Document" title: type: string description: The title of the document. url: type: string description: A permalink for the document. metadata: $ref: "#/components/schemas/DocumentMetadata" sections: type: array description: A list of content sub-sections in the document, e.g. text blocks with different headings in a Drive doc or Confluence page. items: $ref: "#/components/schemas/DocumentSection" SearchProviderInfo: properties: name: type: string description: Name of the search provider. logoUrl: type: string description: URL to the provider's logo. searchLinkUrlTemplate: type: string description: URL template that can be used to perform the suggested search by replacing the {query} placeholder with the query suggestion. example: name: Google logo: https://app.glean.com/images/feather/globe.svg searchLinkUrlTemplate: https://www.google.com/search?q={query}&hl=en ResultTab: properties: id: type: string description: The unique ID of the tab. Can be passed in a search request to get results for that tab. count: type: integer description: The number of results in this tab for the current query. datasource: type: string description: The datasource associated with the tab, if any. datasourceInstance: type: string description: The datasource instance associated with the tab, if any. FacetFilterValue: properties: value: type: string example: Spreadsheet relationType: type: string enum: - EQUALS - ID_EQUALS - LT - GT - NOT_EQUALS x-enumDescriptions: EQUALS: The value is equal to the specified value. ID_EQUALS: The value is equal to the specified ID. LT: The value is less than the specified value. GT: The value is greater than the specified value. NOT_EQUALS: The value is not equal to the specified value. example: EQUALS x-speakeasy-enum-descriptions: EQUALS: The value is equal to the specified value. ID_EQUALS: The value is equal to the specified ID. LT: The value is less than the specified value. GT: The value is greater than the specified value. NOT_EQUALS: The value is not equal to the specified value. isNegated: type: boolean deprecated: true description: DEPRECATED - please use relationType instead x-glean-deprecated: id: 75a48c79-b36a-4171-a0a0-4af7189da66e introduced: "2026-02-05" message: Use relationType instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use relationType instead" FacetFilter: properties: fieldName: type: string example: owner values: type: array items: $ref: "#/components/schemas/FacetFilterValue" description: Within a single FacetFilter, the values are to be treated like an OR. For example, fieldName type with values [EQUALS Presentation, EQUALS Spreadsheet] means we want to show a document if it's a Presentation OR a Spreadsheet. groupName: type: string example: Spreadsheet description: Indicates the value of a facet, if any, that the given facet is grouped under. This is only used for nested facets, for example, fieldName could be owner and groupName would be Spreadsheet if showing all owners for spreadsheets as a nested facet. example: fieldName: type values: - value: Spreadsheet relationType: EQUALS - value: Presentation relationType: EQUALS FacetFilterSet: properties: filters: type: array items: $ref: "#/components/schemas/FacetFilter" description: Within a single FacetFilterSet, the filters are treated as AND. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. FacetBucketFilter: properties: facet: type: string description: The facet whose buckets should be filtered. prefix: type: string description: The per-term prefix that facet buckets should be filtered on. AuthToken: required: - accessToken - datasource properties: accessToken: type: string datasource: type: string scope: type: string tokenType: type: string authUser: description: Used by Google to indicate the index of the logged in user. Useful for generating hyperlinks that support multilogin. type: string expiration: description: Unix timestamp when this token expires (in seconds since epoch UTC). type: integer format: int64 example: accessToken: 123abc datasource: gmail scope: email profile https://www.googleapis.com/auth/gmail.readonly tokenType: Bearer authUser: "1" DocumentSpec: x-multiple-discriminators: true oneOf: - type: object required: - url properties: url: type: string x-discriminator: true description: The URL of the document. - type: object required: - id properties: id: type: string x-discriminator: true description: The ID of the document. - type: object required: - contentId - ugcType properties: ugcType: type: string enum: - ANNOUNCEMENTS - ANSWERS - COLLECTIONS - SHORTCUTS - CHATS description: The type of the user generated content (UGC datasource). contentId: type: integer x-discriminator: true description: The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. docType: type: string description: The specific type of the user generated content type. - type: object required: - ugcType - ugcId properties: ugcType: type: string enum: - ANNOUNCEMENTS - ANSWERS - ARTIFACTS - COLLECTIONS - SHORTCUTS - CHATS description: The type of the user generated content (UGC datasource). ugcId: type: string x-discriminator: true description: The string id for user generated content. Used for CHATS. docType: type: string description: The specific type of the user generated content type. RestrictionFilters: properties: containerSpecs: description: "Specifications for containers that should be used as part of the restriction (include/exclude). Memberships are recursively defined for a subset of datasources (currently: SharePoint, OneDrive, Google Drive, and Confluence). Please contact the Glean team to enable this for more datasources. Recursive memberships do not apply for Collections." type: array items: $ref: "#/components/schemas/DocumentSpec" SearchRequestOptions: required: - facetBucketSize properties: datasourceFilter: type: string description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. datasourcesFilter: type: array items: type: string description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. queryOverridesFacetFilters: type: boolean description: If true, the operators in the query are taken to override any operators in facetFilters in the case of conflict. This is used to correctly set rewrittenFacetFilters and rewrittenQuery. facetFilters: type: array items: $ref: "#/components/schemas/FacetFilter" description: A list of filters for the query. An AND is assumed between different facetFilters. For example, owner Sumeet and type Spreadsheet shows documents that are by Sumeet AND are Spreadsheets. facetFilterSets: type: array items: $ref: "#/components/schemas/FacetFilterSet" description: A list of facet filter sets that will be OR'ed together. SearchRequestOptions where both facetFilterSets and facetFilters set are considered as bad request. Callers should set only one of these fields. facetBucketFilter: $ref: "#/components/schemas/FacetBucketFilter" facetBucketSize: type: integer description: The maximum number of FacetBuckets to return in each FacetResult. defaultFacets: type: array items: type: string description: Facets for which FacetResults should be fetched and that don't apply to a particular datasource. If specified, these values will replace the standard default facets (last_updated_at, from, etc.). The requested facets will be returned alongside datasource-specific facets if searching a single datasource. authTokens: type: array description: Auth tokens which may be used for non-indexed, federated results (e.g. Gmail). items: $ref: "#/components/schemas/AuthToken" fetchAllDatasourceCounts: type: boolean description: Hints that the QE should return result counts (via the datasource facet result) for all supported datasources, rather than just those specified in the datasource[s]Filter responseHints: type: array description: Array of hints containing which fields should be populated in the response. items: type: string description: Hints for the response content. x-enumDescriptions: ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. FACET_RESULTS: Return only facet results. QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. RESULTS: Return search result documents. SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. enum: - ALL_RESULT_COUNTS - FACET_RESULTS - QUERY_METADATA - RESULTS - SPELLCHECK_METADATA x-speakeasy-enum-descriptions: ALL_RESULT_COUNTS: Return result counts for each result set which has non-zero results, even when the request itself is limited to a subset. FACET_RESULTS: Return only facet results. QUERY_METADATA: Returns result counts for each result set which has non-zero results, as well as other information about the search such as suggested spelling corrections. RESULTS: Return search result documents. SPELLCHECK_METADATA: Return metadata pertaining to spellcheck results. timezoneOffset: type: integer description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. disableSpellcheck: type: boolean description: Whether or not to disable spellcheck. disableQueryAutocorrect: type: boolean description: Disables automatic adjustment of the input query for spelling corrections or other reasons. returnLlmContentOverSnippets: type: boolean description: Enables expanded content to be returned for LLM usage. The size of content per result returned should be modified using maxSnippetSize. Server may return less or more than what is specified in maxSnippetSize. For more details, see https://developers.glean.com/guides/search/llm-content. inclusions: $ref: "#/components/schemas/RestrictionFilters" description: A list of filters which restrict the search results to only the specified content. exclusions: $ref: "#/components/schemas/RestrictionFilters" description: A list of filters specifying content to avoid getting search results from. Exclusions take precendence over inclusions and other query parameters, such as search operators and search facets. example: datasourceFilter: JIRA datasourcesFilter: - JIRA queryOverridesFacetFilters: true facetFilters: - fieldName: fieldName values: - fieldValues - fieldValues - fieldName: fieldName values: - fieldValues - fieldValues TextRange: required: - startIndex description: A subsection of a given string to which some special formatting should be applied. properties: startIndex: type: integer description: The inclusive start index of the range. endIndex: type: integer description: The exclusive end index of the range. type: type: string enum: - BOLD - CITATION - HIGHLIGHT - LINK url: type: string description: The URL associated with the range, if applicable. For example, the linked URL for a LINK range. document: $ref: "#/components/schemas/Document" description: A document corresponding to the range, if applicable. For example, the cited document for a CITATION range. SearchRequestInputDetails: properties: hasCopyPaste: type: boolean description: Whether the associated query was at least partially copy-pasted. If subsequent requests are issued after a copy-pasted query is constructed (e.g. with facet modifications), this bit should continue to be set for those requests. example: hasCopyPaste: true QuerySuggestion: required: - query properties: missingTerm: type: string description: A query term missing from the original query on which this suggestion is based. query: type: string description: The query being suggested (e.g. enforcing the missing term from the original query). searchProviderInfo: $ref: "#/components/schemas/SearchProviderInfo" description: Information about the search provider that generated this suggestion. label: type: string description: A user-facing description to display for the suggestion. datasource: type: string description: The datasource associated with the suggestion. resultTab: $ref: "#/components/schemas/ResultTab" description: The result tab associated with the suggestion. requestOptions: $ref: "#/components/schemas/SearchRequestOptions" ranges: type: array items: $ref: "#/components/schemas/TextRange" description: The bolded ranges within the query of the QuerySuggestion. inputDetails: $ref: "#/components/schemas/SearchRequestInputDetails" example: query: app:github type:pull author:mortimer label: Mortimer's PRs datasource: github Person: required: - name - obfuscatedId properties: name: type: string description: The display name. obfuscatedId: type: string description: An opaque identifier that can be used to request metadata for a Person. relatedDocuments: type: array items: $ref: "#/components/schemas/RelatedDocuments" description: A list of documents related to this person. metadata: $ref: "#/components/schemas/PersonMetadata" example: name: George Clooney obfuscatedId: abc123 Company: required: - name properties: name: type: string description: User-friendly display name. profileUrl: type: string description: Link to internal company company profile. websiteUrls: type: array description: Link to company's associated websites. items: type: string logoUrl: type: string description: The URL of the company's logo. Public, Glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). location: type: string description: User facing string representing the company's location. example: New York City phone: type: string description: Phone number as a number string. fax: type: string description: Fax number as a number string. industry: type: string description: User facing string representing the company's industry. example: Finances annualRevenue: type: number format: double description: Average company's annual revenue for reference. numberOfEmployees: type: integer format: int64 description: Average company's number of employees for reference. stockSymbol: type: string description: Company's stock symbol if company is public. foundedDate: type: string format: date description: The date when the company was founded. about: type: string description: User facing description of company. example: Financial, software, data, and media company headquartered in Midtown Manhattan, New York City DocumentCounts: type: object description: A map of {string, int} pairs representing counts of each document type associated with this customer. additionalProperties: type: integer CustomDataValue: properties: displayLabel: type: string stringValue: type: string stringListValue: type: array description: list of strings for multi-value properties items: type: string numberValue: type: number booleanValue: type: boolean CustomData: type: object description: Custom fields specific to individual datasources additionalProperties: $ref: "#/components/schemas/CustomDataValue" CustomerMetadata: properties: datasourceId: type: string description: The user visible id of the salesforce customer account. customData: $ref: "#/components/schemas/CustomData" Customer: required: - id - company properties: id: type: string description: Unique identifier. domains: type: array description: Link to company's associated website domains. items: type: string company: $ref: "#/components/schemas/Company" documentCounts: $ref: "#/components/schemas/DocumentCounts" poc: type: array description: A list of POC for company. items: $ref: "#/components/schemas/Person" metadata: $ref: "#/components/schemas/CustomerMetadata" mergedCustomers: type: array description: A list of Customers. items: $ref: "#/components/schemas/Customer" startDate: type: string format: date description: The date when the interaction with customer started. contractAnnualRevenue: type: number format: double description: Average contract annual revenue with that customer. notes: type: string description: User facing (potentially generated) notes about company. example: CIO is interested in trying out the product. RelatedObject: required: - id properties: id: type: string description: The ID of the related object metadata: type: object description: Some metadata of the object which can be displayed, while not having the actual object. properties: name: type: string description: Placeholder name of the object, not the relationship. RelatedObjectEdge: properties: objects: type: array items: $ref: "#/components/schemas/RelatedObject" RelatedObjects: properties: relatedObjects: type: object description: A list of objects related to a source object. additionalProperties: $ref: "#/components/schemas/RelatedObjectEdge" ScopeType: type: string description: Describes the scope for a ReadPermission, WritePermission, or GrantPermission object enum: - GLOBAL - OWN WritePermission: description: Describes the write permissions levels that a user has for a specific feature properties: scopeType: $ref: "#/components/schemas/ScopeType" create: type: boolean description: True if user has create permission for this feature and scope update: type: boolean description: True if user has update permission for this feature and scope delete: type: boolean description: True if user has delete permission for this feature and scope ObjectPermissions: properties: write: $ref: "#/components/schemas/WritePermission" PermissionedObject: properties: permissions: $ref: "#/components/schemas/ObjectPermissions" description: The permissions the current viewer has with respect to a particular object. PersonToTeamRelationship: required: - person type: object description: Metadata about the relationship of a person to a team. properties: person: $ref: "#/components/schemas/Person" relationship: type: string description: The team member's relationship to the team. This defaults to MEMBER if not set. default: MEMBER enum: - MEMBER - MANAGER - LEAD - POINT_OF_CONTACT - OTHER customRelationshipStr: type: string description: Displayed name for the relationship if relationship is set to `OTHER`. joinDate: type: string format: date-time description: The team member's start date TeamEmail: properties: email: type: string format: email description: An email address type: type: string enum: - PRIMARY - SECONDARY - ONCALL - OTHER default: OTHER isUserGenerated: type: boolean description: true iff the email was manually added by a user from within Glean (aka not from the original data source) CustomFieldValueStr: properties: strText: type: string description: Text field for string value. CustomFieldValueHyperlink: properties: urlAnchor: type: string description: Anchor text for hyperlink. urlLink: type: string description: Link for this URL. CustomFieldValuePerson: properties: person: $ref: "#/components/schemas/Person" CustomFieldValue: oneOf: - $ref: "#/components/schemas/CustomFieldValueStr" - $ref: "#/components/schemas/CustomFieldValueHyperlink" - $ref: "#/components/schemas/CustomFieldValuePerson" CustomFieldData: required: - label - values - displayable properties: label: type: string description: A user-facing label for this field. values: type: array items: $ref: "#/components/schemas/CustomFieldValue" displayable: type: boolean description: Determines whether the client should display this custom field default: true DatasourceProfile: required: - datasource - handle properties: datasource: type: string example: github description: The datasource the profile is of. handle: type: string description: The display name of the entity in the given datasource. url: type: string description: URL to view the entity's profile. nativeAppUrl: type: string description: A deep link, if available, into the datasource's native application for the entity's platform (i.e. slack://...). isUserGenerated: type: boolean description: For internal use only. True iff the data source profile was manually added by a user from within Glean (aka not from the original data source) Team: allOf: - $ref: "#/components/schemas/RelatedObjects" - $ref: "#/components/schemas/PermissionedObject" - type: object required: - id - name properties: id: type: string description: Unique identifier name: type: string description: Team name description: type: string description: A description of the team businessUnit: type: string description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. department: type: string description: An organizational unit where everyone has a similar task, e.g. `Engineering`. photoUrl: type: string format: url description: A link to the team's photo. bannerUrl: type: string format: url description: A link to the team's banner photo. externalLink: type: string format: uri description: Link to a team page on the internet or your company's intranet members: type: array description: The members on this team items: $ref: "#/components/schemas/PersonToTeamRelationship" memberCount: type: integer description: Number of members on this team (recursive; includes all individuals that belong to this team, and all individuals that belong to a subteam within this team) emails: type: array description: The emails for this team items: $ref: "#/components/schemas/TeamEmail" customFields: type: array description: Customizable fields for additional team information. items: $ref: "#/components/schemas/CustomFieldData" datasourceProfiles: type: array description: The datasource profiles of the team items: $ref: "#/components/schemas/DatasourceProfile" datasource: type: string description: the data source of the team, e.g. GDRIVE createdFrom: type: string description: For teams created from docs, the doc title. Otherwise empty. lastUpdatedAt: type: string format: date-time description: when this team was last updated. status: type: string description: whether this team is fully processed or there are still unprocessed operations that'll affect it default: PROCESSED enum: - PROCESSED - QUEUED_FOR_CREATION - QUEUED_FOR_DELETION canBeDeleted: type: boolean description: can this team be deleted. Some manually ingested teams like GCS_CSV or PUSH_API cannot default: true loggingId: type: string description: The logging id of the team used in scrubbed logs, client analytics, and metrics. CustomEntityMetadata: properties: customData: $ref: "#/components/schemas/CustomData" GroupType: type: string description: The type of user group x-enumDescriptions: COLLECTION_AUDIENCE: Refers to any viewers of the Collection. enum: - DEPARTMENT - ALL - TEAM - JOB_TITLE - ROLE_TYPE - LOCATION - REGION - EXTERNAL_GROUP - COLLECTION_AUDIENCE x-speakeasy-enum-descriptions: COLLECTION_AUDIENCE: Refers to any viewers of the Collection. Group: required: - type - id properties: type: $ref: "#/components/schemas/GroupType" id: type: string description: A unique identifier for the group. May be the same as name. name: type: string description: Name of the group. datasourceInstance: type: string description: Datasource instance if the group belongs to one e.g. external groups. provisioningId: type: string description: identifier for greenlist provisioning, aka sciokey UserRole: type: string description: A user's role with respect to a specific document. enum: - OWNER - VIEWER - ANSWER_MODERATOR - EDITOR - VERIFIER UserRoleSpecification: required: - role properties: sourceDocumentSpec: $ref: "#/components/schemas/DocumentSpec" description: The document spec of the object this role originates from. The object this role is included with will usually have the same information as this document spec, but if the role is inherited, then the document spec refers to the parent document that the role came from. person: $ref: "#/components/schemas/Person" group: $ref: "#/components/schemas/Group" role: $ref: "#/components/schemas/UserRole" CustomEntity: allOf: - $ref: "#/components/schemas/PermissionedObject" - type: object properties: id: type: string description: Unique identifier. title: type: string description: Title or name of the custom entity. datasource: type: string description: The datasource the custom entity is from. objectType: type: string description: The type of the entity. Interpretation is specific to each datasource metadata: $ref: "#/components/schemas/CustomEntityMetadata" roles: type: array description: A list of user roles for the custom entity explicitly granted by the owner. items: $ref: "#/components/schemas/UserRoleSpecification" AnswerId: properties: id: type: integer description: The opaque ID of the Answer. example: 3 AnswerDocId: properties: docId: type: string description: Glean Document ID of the Answer. The Glean Document ID is supported for cases where the Answer ID isn't available. If both are available, using the Answer ID is preferred. example: ANSWERS_answer_3 AnswerMutableProperties: properties: question: type: string example: Why is the sky blue? questionVariations: type: array description: Additional ways of phrasing this question. items: type: string bodyText: type: string description: The plain text answer to the question. example: From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light. boardId: type: integer description: The parent board ID of this Answer, or 0 if it's a floating Answer. Adding Answers to Answer Boards is no longer permitted. deprecated: true x-glean-deprecated: id: 3729bc64-8859-4159-b93c-ce2d5f0e7304 introduced: "2026-02-05" message: Answer Boards no longer supported removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Answer Boards no longer supported" audienceFilters: type: array description: Filters which restrict who should see the answer. Values are taken from the corresponding filters in people search. items: $ref: "#/components/schemas/FacetFilter" addedRoles: type: array description: A list of user roles for the answer added by the owner. items: $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array description: A list of user roles for the answer removed by the owner. items: $ref: "#/components/schemas/UserRoleSpecification" roles: type: array description: A list of roles for this answer explicitly granted by an owner, editor, or admin. items: $ref: "#/components/schemas/UserRoleSpecification" sourceDocumentSpec: $ref: "#/components/schemas/DocumentSpec" sourceType: type: string enum: - DOCUMENT - ASSISTANT UgcTrackingSignals: type: object properties: trackingToken: type: string description: An opaque token that represents this particular UGC. To be used for `/feedback` reporting. StructuredText: allOf: - $ref: "#/components/schemas/StructuredTextMutableProperties" - type: object properties: structuredList: type: array items: $ref: "#/components/schemas/StructuredTextItem" description: An array of objects each of which contains either a string or a link which optionally corresponds to a document. AnswerLike: properties: user: $ref: "#/components/schemas/Person" createTime: type: string format: date-time description: The time the user liked the answer in ISO format (ISO 8601). AnswerLikes: required: - likedBy - likedByUser - numLikes properties: likedBy: type: array items: $ref: "#/components/schemas/AnswerLike" likedByUser: type: boolean description: Whether the user in context liked the answer. numLikes: type: integer description: The total number of likes for the answer. Reminder: required: - assignee - remindAt properties: assignee: $ref: "#/components/schemas/Person" requestor: $ref: "#/components/schemas/Person" remindAt: type: integer description: Unix timestamp for when the reminder should trigger (in seconds since epoch UTC). createdAt: type: integer description: Unix timestamp for when the reminder was first created (in seconds since epoch UTC). reason: type: string description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). TimePoint: properties: epochSeconds: type: integer description: Epoch seconds. Has precedence over daysFromNow. daysFromNow: type: integer description: Number of days in the past, relative to the current date. Period: properties: minDaysFromNow: type: integer description: DEPRECATED - The number of days from now in the past to define upper boundary of time period. deprecated: true maxDaysFromNow: type: integer description: DEPRECATED - The number of days from now in the past to define lower boundary of time period. deprecated: true start: $ref: "#/components/schemas/TimePoint" end: $ref: "#/components/schemas/TimePoint" CountInfo: required: - count properties: count: type: integer description: The counter value period: $ref: "#/components/schemas/Period" org: type: string description: The unit of organization over which we did the count aggregation, e.g. org (department) or company VerificationMetadata: required: - documentId properties: lastVerifier: $ref: "#/components/schemas/Person" lastVerificationTs: type: integer description: The unix timestamp of the verification (in seconds since epoch UTC). expirationTs: type: integer description: The unix timestamp of the verification expiration if applicable (in seconds since epoch UTC). document: $ref: "#/components/schemas/Document" reminders: type: array items: $ref: "#/components/schemas/Reminder" description: Info about all outstanding verification reminders for the document if exists. lastReminder: $ref: "#/components/schemas/Reminder" visitorCount: type: array items: $ref: "#/components/schemas/CountInfo" description: Number of visitors to the document during included time periods. candidateVerifiers: type: array items: $ref: "#/components/schemas/Person" description: List of potential verifiers for the document e.g. old verifiers and/or users with view/edit permissions. Verification: required: - state properties: state: type: string enum: - UNVERIFIED - VERIFIED - DEPRECATED description: The verification state for the document. metadata: $ref: "#/components/schemas/VerificationMetadata" CollectionBaseMutableProperties: required: - name properties: name: type: string description: The unique name of the Collection. description: type: string description: A brief summary of the Collection's contents. addedRoles: type: array description: A list of added user roles for the Collection. items: $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array description: A list of removed user roles for the Collection. items: $ref: "#/components/schemas/UserRoleSpecification" audienceFilters: type: array items: $ref: "#/components/schemas/FacetFilter" description: Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search. Thumbnail: properties: photoId: type: string description: Photo id if the thumbnail is from splash. url: type: string description: Thumbnail URL. This can be user provided image and/or from downloaded images hosted by Glean. CollectionMutableProperties: allOf: - $ref: "#/components/schemas/CollectionBaseMutableProperties" - type: object required: - name properties: icon: type: string description: The emoji icon of this Collection. adminLocked: type: boolean description: Indicates whether edits are allowed for everyone or only admins. parentId: type: integer description: The parent of this Collection, or 0 if it's a top-level Collection. thumbnail: $ref: "#/components/schemas/Thumbnail" allowedDatasource: type: string description: The datasource type this Collection can hold. CollectionItemMutableProperties: properties: name: type: string description: The optional name of the Collection item. description: type: string description: A helpful description of why this CollectionItem is in the Collection that it's in. icon: type: string description: The emoji icon for this CollectionItem. Only used for Text type items. UserGeneratedContentId: properties: id: type: integer description: The opaque id of the user generated content. ShortcutMutableProperties: properties: inputAlias: type: string description: Link text following go/ prefix as entered by the user. destinationUrl: type: string description: Destination URL for the shortcut. destinationDocumentId: type: string description: Glean Document ID for the URL, if known. description: type: string description: A short, plain text blurb to help people understand the intent of the shortcut. unlisted: type: boolean description: Whether this shortcut is unlisted or not. Unlisted shortcuts are visible to author + admins only. urlTemplate: type: string description: For variable shortcuts, contains the URL template; note, `destinationUrl` contains default URL. addedRoles: type: array description: A list of user roles added for the Shortcut. items: $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array description: A list of user roles removed for the Shortcut. items: $ref: "#/components/schemas/UserRoleSpecification" ShortcutMetadata: properties: createdBy: $ref: "#/components/schemas/Person" createTime: type: string format: date-time description: The time the shortcut was created in ISO format (ISO 8601). updatedBy: $ref: "#/components/schemas/Person" updateTime: type: string format: date-time description: The time the shortcut was updated in ISO format (ISO 8601). destinationDocument: $ref: "#/components/schemas/Document" description: Document that corresponds to the destination URL, if applicable. intermediateUrl: type: string description: The URL from which the user is then redirected to the destination URL. Full replacement for https://go/. viewPrefix: type: string description: The part of the shortcut preceding the input alias when used for showing shortcuts to users. Should end with "/". e.g. "go/" for native shortcuts. isExternal: type: boolean description: Indicates whether a shortcut is native or external. editUrl: type: string description: The URL using which the user can access the edit page of the shortcut. UgcType: enum: - AGENT_TYPE - ANNOUNCEMENTS_TYPE - ANSWERS_TYPE - CHATS_TYPE - COLLECTIONS_TYPE - EMAIL_TYPE - HTML_CODE_TYPE - IMAGE_TYPE - MESSAGE_TYPE - PAPER_TYPE - PRISM_VIEWS_TYPE - PROMPT_TEMPLATES_TYPE - PINS_TYPE - SCRIBES_TYPE - SHORTCUTS_TYPE - SLIDE_TYPE - SPREADSHEET_TYPE - INLINE_HTML_TYPE - PODCAST_TYPE - WORKFLOWS_TYPE FavoriteInfo: type: object properties: ugcType: $ref: "#/components/schemas/UgcType" id: type: string description: Opaque id of the UGC. count: type: integer x-includeEmpty: true description: Number of users this object has been favorited by. favoritedByUser: type: boolean x-includeEmpty: true description: If the requesting user has favorited this object. Shortcut: allOf: - $ref: "#/components/schemas/UserGeneratedContentId" - $ref: "#/components/schemas/ShortcutMutableProperties" - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/ShortcutMetadata" - type: object required: - inputAlias properties: alias: type: string description: canonical link text following go/ prefix where hyphen/underscore is removed. title: type: string description: Title for the Go Link roles: type: array description: A list of user roles for the Go Link. items: $ref: "#/components/schemas/UserRoleSpecification" favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" Collection: allOf: - $ref: "#/components/schemas/CollectionMutableProperties" - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/UgcTrackingSignals" - type: object required: - id - description properties: id: type: integer description: The unique ID of the Collection. createTime: type: string format: date-time updateTime: type: string format: date-time creator: $ref: "#/components/schemas/Person" updatedBy: $ref: "#/components/schemas/Person" itemCount: type: integer description: The number of items currently in the Collection. Separated from the actual items so we can grab the count without items. childCount: type: integer description: The number of children Collections. Separated from the actual children so we can grab the count without children. items: type: array items: $ref: "#/components/schemas/CollectionItem" description: The items in this Collection. pinMetadata: $ref: "#/components/schemas/CollectionPinnedMetadata" description: Metadata having what categories this Collection is pinned to and the eligible categories to pin to shortcuts: type: array items: type: string description: The names of the shortcuts (Go Links) that point to this Collection. children: type: array items: $ref: "#/components/schemas/Collection" description: The children Collections of this Collection. roles: type: array description: A list of user roles for the Collection. items: $ref: "#/components/schemas/UserRoleSpecification" favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" CollectionItem: allOf: - $ref: "#/components/schemas/CollectionItemMutableProperties" - type: object required: - collectionId - itemType properties: collectionId: type: integer description: The Collection ID of the Collection that this CollectionItem belongs in. documentId: type: string description: If this CollectionItem is indexed, the Glean Document ID of that document. url: type: string description: The URL of this CollectionItem. itemId: type: string description: Unique identifier for the item within the Collection it belongs to. createdBy: $ref: "#/components/schemas/Person" description: The person who added this Collection item. createdAt: type: string format: date-time description: Unix timestamp for when the item was first added (in seconds since epoch UTC). document: $ref: "#/components/schemas/Document" description: The Document this CollectionItem corresponds to (omitted if item is a non-indexed URL). shortcut: $ref: "#/components/schemas/Shortcut" description: The Shortcut this CollectionItem corresponds to (only included if item URL is for a Go Link). collection: $ref: "#/components/schemas/Collection" description: The Collection this CollectionItem corresponds to (only included if item type is COLLECTION). itemType: type: string enum: - DOCUMENT - TEXT - URL - COLLECTION CollectionPinnableCategories: type: string description: Categories a Collection can be pinned to. enum: - COMPANY_RESOURCE - DEPARTMENT_RESOURCE - TEAM_RESOURCE CollectionPinnableTargets: type: string description: What targets can a Collection be pinned to. enum: - RESOURCE_CARD - TEAM_PROFILE_PAGE CollectionPinTarget: required: - category properties: category: $ref: "#/components/schemas/CollectionPinnableCategories" value: type: string description: Optional. If category supports values, then the additional value for the category e.g. department name for DEPARTMENT_RESOURCE, team name/id for TEAM_RESOURCE and so on. target: $ref: "#/components/schemas/CollectionPinnableTargets" CollectionPinMetadata: required: - id - target properties: id: type: integer description: The ID of the Collection. target: $ref: "#/components/schemas/CollectionPinTarget" CollectionPinnedMetadata: properties: existingPins: type: array items: $ref: "#/components/schemas/CollectionPinTarget" description: List of targets this Collection is pinned to. eligiblePins: type: array items: $ref: "#/components/schemas/CollectionPinMetadata" description: List of targets this Collection can be pinned to, excluding the targets this Collection is already pinned to. We also include Collection ID already is pinned to each eligible target, which will be 0 if the target has no pinned Collection. Answer: allOf: - $ref: "#/components/schemas/AnswerId" - $ref: "#/components/schemas/AnswerDocId" - $ref: "#/components/schemas/AnswerMutableProperties" - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/UgcTrackingSignals" - type: object required: - id properties: combinedAnswerText: $ref: "#/components/schemas/StructuredText" likes: $ref: "#/components/schemas/AnswerLikes" author: $ref: "#/components/schemas/Person" createTime: type: string format: date-time description: The time the answer was created in ISO format (ISO 8601). updateTime: type: string format: date-time description: The time the answer was last updated in ISO format (ISO 8601). updatedBy: $ref: "#/components/schemas/Person" verification: $ref: "#/components/schemas/Verification" collections: type: array description: The collections to which the answer belongs. items: $ref: "#/components/schemas/Collection" documentCategory: type: string description: The document's document_category(.proto). sourceDocument: $ref: "#/components/schemas/Document" FollowupAction: description: A follow-up action that can be invoked by the user after a response. The action parameters are not included and need to be predicted/filled separately. properties: actionRunId: type: string description: Unique identifier for this actionRun recommendation event. actionInstanceId: type: string description: The ID of the action instance that will be invoked. actionId: type: string description: The ID of the associated action. parameters: type: object description: Map of assistant predicted parameters and their corresponding values. additionalProperties: type: string recommendationText: type: string description: Text to be displayed to the user when recommending the action instance. actionLabel: type: string description: The label to be used when displaying a button to execute this action instance. userConfirmationRequired: type: boolean description: Whether user confirmation is needed before executing this action instance. GeneratedQna: properties: question: type: string description: Search query rephrased into a question. answer: type: string description: Answer generated for the given query or the generated question. followUpPrompts: type: array items: type: string description: List of all follow-up prompts generated for the given query or the generated question. followupActions: description: List of follow-up actions generated for the given query or the generated question. type: array items: $ref: "#/components/schemas/FollowupAction" ranges: type: array items: $ref: "#/components/schemas/TextRange" description: Answer subsections to mark with special formatting (citations, bolding etc) status: type: string enum: - COMPUTING - DISABLED - FAILED - NO_ANSWER - SKIPPED - STREAMING - SUCCEEDED - TIMEOUT description: Status of backend generating the answer cursor: type: string description: An opaque cursor representing the search request trackingToken: type: string description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. SearchResult: required: - url allOf: - $ref: "#/components/schemas/Result" - type: object properties: document: $ref: "#/components/schemas/Document" title: type: string url: type: string nativeAppUrl: type: string description: A deep link, if available, into the datasource's native application for the user's platform (e.g. slack://...). snippets: type: array items: $ref: "#/components/schemas/SearchResultSnippet" description: Text content from the result document which contains search query terms, if available. fullText: type: string description: The full body text of the result if not already contained in the snippets. Only populated for conversation results (e.g. results from a messaging app such as Slack). fullTextList: type: array description: The full body text of the result if not already contained in the snippets; each item in the array represents a separate line in the original text. Only populated for conversation results (e.g. results from a messaging app such as Slack). items: type: string relatedResults: type: array items: $ref: "#/components/schemas/RelatedDocuments" description: A list of results related to this search result. Eg. for conversation results it contains individual messages from the conversation document which will be shown on SERP. clusteredResults: type: array description: A list of results that should be displayed as associated with this result. items: $ref: "#/components/schemas/SearchResult" allClusteredResults: type: array description: A list of results that should be displayed as associated with this result. items: $ref: "#/components/schemas/ClusterGroup" attachmentCount: type: integer description: The total number of attachments. attachments: type: array description: A (potentially partial) list of results representing documents attached to the main result document. items: $ref: "#/components/schemas/SearchResult" backlinkResults: type: array description: A list of results that should be displayed as backlinks of this result in reverse chronological order. items: $ref: "#/components/schemas/SearchResult" clusterType: $ref: "#/components/schemas/ClusterTypeEnum" mustIncludeSuggestions: $ref: "#/components/schemas/QuerySuggestionList" querySuggestion: $ref: "#/components/schemas/QuerySuggestion" prominence: $ref: "#/components/schemas/SearchResultProminenceEnum" attachmentContext: type: string description: Additional context for the relationship between the result and the document it's attached to. pins: type: array description: A list of pins associated with this search result. items: $ref: "#/components/schemas/PinDocument" example: snippets: - snippet: snippet mimeType: mimeType metadata: container: container createTime: "2000-01-23T04:56:07.000Z" datasource: datasource author: name: name documentId: documentId updateTime: "2000-01-23T04:56:07.000Z" mimeType: mimeType objectType: objectType title: title url: https://example.com/foo/bar nativeAppUrl: slack://foo/bar mustIncludeSuggestions: - missingTerm: container query: container ExtractedQnA: properties: heading: type: string description: Heading text that was matched to produce this result. question: type: string description: Question text that was matched to produce this result. questionResult: $ref: "#/components/schemas/SearchResult" CalendarAttendee: required: - person properties: isOrganizer: type: boolean description: Whether or not this attendee is an organizer. isInGroup: type: boolean description: Whether or not this attendee is in a group. Needed temporarily at least to support both flat attendees and tree for compatibility. person: $ref: "#/components/schemas/Person" groupAttendees: type: array description: If this attendee is a group, represents the list of individual attendees in the group. items: $ref: "#/components/schemas/CalendarAttendee" responseStatus: type: string enum: - ACCEPTED - DECLINED - NO_RESPONSE - TENTATIVE CalendarAttendees: properties: people: type: array items: $ref: "#/components/schemas/CalendarAttendee" description: Full details of some of the attendees of this event isLimit: type: boolean description: Whether the total count of the people returned is at the retrieval limit. total: type: integer description: Total number of attendees in this event. numAccepted: type: integer description: Total number of attendees who have accepted this event. numDeclined: type: integer description: Total number of attendees who have declined this event. numNoResponse: type: integer description: Total number of attendees who have not responded to this event. numTentative: type: integer description: Total number of attendees who have responded tentatively (i.e. responded maybe) to this event. Meeting: properties: id: type: string title: type: string description: type: string url: type: string startTime: type: string format: date-time endTime: type: string format: date-time attendees: $ref: "#/components/schemas/CalendarAttendees" description: The attendee list, including their response status isCancelled: type: boolean description: Whether the meeting has been cancelled location: type: string description: The location/venue of the meeting responseStatus: type: string description: The current user's response status (accepted, declined, tentativelyAccepted, none) conferenceUri: type: string description: The meeting join link (Teams, Zoom, etc.) conferenceProvider: type: string description: The conference provider (e.g., "Microsoft Teams", "Zoom") AppResult: required: - datasource properties: datasource: type: string description: The app or other repository type this represents docType: type: string description: The datasource-specific type of the document (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). mimeType: type: string description: Mimetype is used to differentiate between sub applications from a datasource (e.g. Sheets, Docs from Gdrive) iconUrl: type: string description: If there is available icon URL. CodeLine: properties: lineNumber: type: integer content: type: string ranges: type: array items: $ref: "#/components/schemas/TextRange" description: Index ranges depicting matched sections of the line Code: properties: repoName: type: string fileName: type: string fileUrl: type: string lines: type: array items: $ref: "#/components/schemas/CodeLine" isLastMatch: type: boolean description: Last file match for a repo example: repoName: scio fileName: README.md matches: - lineNumber: 1 content: Welcome to the beginning ranges: [] - lineNumber: 2 content: Second line of the file ranges: [] - lineNumber: 3 content: hello world hello world ranges: - startindex: 0 endIndex: 5 - startIndex: 12 endIndex: 17 QuerySuggestionList: properties: suggestions: type: array items: $ref: "#/components/schemas/QuerySuggestion" person: $ref: "#/components/schemas/Person" IconConfig: description: Defines how to render an icon properties: generatedBackgroundColorKey: type: string backgroundColor: type: string color: type: string key: type: string iconType: enum: - COLLECTION - CUSTOM - DATASOURCE - DATASOURCE_INSTANCE - FAVICON - FILE_TYPE - GENERATED_BACKGROUND - GLYPH - MIME_TYPE - NO_ICON - PERSON - REACTIONS - URL masked: type: boolean description: Whether the icon should be masked based on current theme. name: type: string description: The name of the icon if applicable, e.g. the glyph name for `IconType.GLYPH` icons. url: type: string description: The URL to an image to be displayed if applicable, e.g. the URL for `iconType.URL` icons. example: color: "#343CED" key: person_icon iconType: GLYPH name: user ChatMetadata: description: Metadata of a Chat a user had with Glean Assistant. This contains no actual conversational content. properties: id: type: string description: The opaque id of the Chat. createTime: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). createdBy: $ref: "#/components/schemas/Person" description: The user who created this Chat. updateTime: type: integer description: Server Unix timestamp of the update time (in seconds since epoch UTC). name: type: string description: The name of the Chat. applicationId: type: string description: The ID of the AI App that this Chat is associated to. applicationName: type: string description: The display name of the AI App that this Chat is associated to. icon: $ref: "#/components/schemas/IconConfig" RelatedDocuments: properties: relation: type: string description: How this document relates to the including entity. enum: - ATTACHMENT - CANONICAL - CASE - contact - CONTACT - CONVERSATION_MESSAGES - EXPERT - FROM - HIGHLIGHT - opportunity - OPPORTUNITY - RECENT - SOURCE - TICKET - TRANSCRIPT - WITH x-enum-varnames: - ATTACHMENT - CANONICAL - CASE - CONTACT_LOWERCASE - CONTACT - CONVERSATION_MESSAGES - EXPERT - FROM - HIGHLIGHT - OPPORTUNITY_LOWERCASE - OPPORTUNITY - RECENT - SOURCE - TICKET - TRANSCRIPT - WITH x-enumDescriptions: CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. x-speakeasy-enum-descriptions: CANONICAL: Canonical documents for the entity, such as overview docs, architecture docs elastic. associatedEntityId: type: string description: Which entity in the response that this entity relates to. Relevant when there are multiple entities associated with the response (such as merged customers) querySuggestion: $ref: "#/components/schemas/QuerySuggestion" documents: type: array items: $ref: "#/components/schemas/Document" description: A truncated list of documents with this relation. TO BE DEPRECATED. deprecated: true x-glean-deprecated: id: 68de0429-b0cc-4b40-8061-f848788079a2 introduced: "2026-02-05" message: Field is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" results: type: array items: $ref: "#/components/schemas/SearchResult" description: A truncated list of documents associated with this relation. To be used in favor of `documents` because it contains a trackingToken. RelatedQuestion: properties: question: type: string description: The text of the related question answer: type: string description: The answer for the related question ranges: type: array items: $ref: "#/components/schemas/TextRange" description: Subsections of the answer string to which some special formatting should be applied (eg. bold) EntityType: type: string description: The type of entity. x-include-enum-class-prefix: true enum: - PERSON - PROJECT - CUSTOMER Disambiguation: type: object description: A disambiguation between multiple entities with the same name properties: name: type: string description: Name of the ambiguous entity id: type: string description: The unique id of the entity in the knowledge graph type: $ref: "#/components/schemas/EntityType" SearchResultSnippet: properties: mimeType: type: string description: The mime type of the snippets, currently either text/plain or text/html. text: type: string description: A matching snippet from the document with no highlights. snippetTextOrdering: type: integer description: Used for sorting based off the snippet's location within all_snippetable_text ranges: type: array items: $ref: "#/components/schemas/TextRange" description: The bolded ranges within text. url: type: string description: A URL, generated based on availability, that links to the position of the snippet text or to the nearest header above the snippet text. snippet: type: string deprecated: true description: A matching snippet from the document. Query term matches are marked by the unicode characters uE006 and uE007. Use 'text' field instead. x-glean-deprecated: id: e55ddf30-7c47-43a5-b775-d78f8b29411a introduced: "2026-02-05" message: Use 'text' field instead removal: "2026-10-15" x-includeEmpty: true x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use 'text' field instead" example: snippet: snippet mimeType: mimeType StructuredResult: description: A single object that can support any object in the work graph. Only a single object will be populated. properties: document: $ref: "#/components/schemas/Document" person: $ref: "#/components/schemas/Person" customer: $ref: "#/components/schemas/Customer" team: $ref: "#/components/schemas/Team" customEntity: $ref: "#/components/schemas/CustomEntity" answer: $ref: "#/components/schemas/Answer" generatedQna: $ref: "#/components/schemas/GeneratedQna" extractedQnA: $ref: "#/components/schemas/ExtractedQnA" meeting: $ref: "#/components/schemas/Meeting" app: $ref: "#/components/schemas/AppResult" collection: $ref: "#/components/schemas/Collection" code: $ref: "#/components/schemas/Code" shortcut: $ref: "#/components/schemas/Shortcut" querySuggestions: $ref: "#/components/schemas/QuerySuggestionList" chat: $ref: "#/components/schemas/ChatMetadata" relatedDocuments: type: array items: $ref: "#/components/schemas/RelatedDocuments" description: A list of documents related to this structured result. relatedQuestion: $ref: "#/components/schemas/RelatedQuestion" disambiguation: $ref: "#/components/schemas/Disambiguation" snippets: description: Any snippets associated to the populated object. type: array items: $ref: "#/components/schemas/SearchResultSnippet" trackingToken: type: string description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. prominence: type: string description: The level of visual distinction that should be given to a result. x-enumDescriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. enum: - HERO - PROMOTED - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. source: type: string description: Source context for this result. Possible values depend on the result type. enum: - EXPERT_DETECTION - ENTITY_NLQ - CALENDAR_EVENT - AGENT Result: properties: structuredResults: type: array description: An array of entities in the work graph retrieved via a data request. items: $ref: "#/components/schemas/StructuredResult" trackingToken: type: string description: An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. ClusterTypeEnum: type: string description: The reason for inclusion of clusteredResults. enum: - SIMILAR - FRESHNESS - TITLE - CONTENT - NONE - THREAD_REPLY - THREAD_ROOT - PREFIX - SUFFIX - AUTHOR_PREFIX - AUTHOR_SUFFIX ClusterGroup: required: - visibleCountHint properties: clusteredResults: type: array description: A list of results that should be displayed as associated with this result. items: $ref: "#/components/schemas/SearchResult" clusterType: $ref: "#/components/schemas/ClusterTypeEnum" visibleCountHint: type: integer description: The default number of results to display before truncating and showing a "see more" link SearchResultProminenceEnum: type: string description: | The level of visual distinction that should be given to a result. x-enumDescriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. enum: - HERO - PROMOTED - STANDARD x-speakeasy-enum-descriptions: HERO: A high-confidence result that should feature prominently on the page. PROMOTED: May not be the best result but should be given additional visual distinction. STANDARD: Should not be distinct from any other results. PinDocumentMutableProperties: properties: queries: type: array description: The query strings for which the pinned result will show. items: type: string audienceFilters: type: array description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. items: $ref: "#/components/schemas/FacetFilter" PinDocument: allOf: - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object required: - documentId properties: id: type: string description: The opaque id of the pin. documentId: type: string description: The document which should be a pinned result. audienceFilters: type: array description: Filters which restrict who should see the pinned document. Values are taken from the corresponding filters in people search. items: $ref: "#/components/schemas/FacetFilter" attribution: $ref: "#/components/schemas/Person" updatedBy: $ref: "#/components/schemas/Person" createTime: type: string format: date-time updateTime: type: string format: date-time favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" PersonTeam: description: Use `id` if you index teams via Glean, and use `name` and `externalLink` if you want to use your own team pages properties: id: type: string description: Unique identifier name: type: string description: Team name externalLink: type: string format: uri description: Link to a team page on the internet or your company's intranet relationship: type: string description: The team member's relationship to the team. This defaults to MEMBER if not set. default: MEMBER enum: - MEMBER - MANAGER - LEAD - POINT_OF_CONTACT - OTHER joinDate: type: string format: date-time description: The team member's start date StructuredLocation: type: object description: Detailed location with information about country, state, city etc. properties: deskLocation: type: string description: Desk number. timezone: type: string description: Location's timezone, e.g. UTC, PST. address: type: string description: Office address or name. city: type: string description: Name of the city. state: type: string description: State code. region: type: string description: Region information, e.g. NORAM, APAC. zipCode: type: string description: ZIP Code for the address. country: type: string description: Country name. countryCode: type: string description: Alpha-2 or Alpha-3 ISO 3166 country code, e.g. US or USA. SocialNetwork: required: - name - profileUrl properties: name: type: string description: Possible values are "twitter", "linkedin". profileName: type: string description: Human-readable profile name. profileUrl: type: string format: url description: Link to profile. PersonDistance: required: - name - obfuscatedId - distance properties: name: type: string description: The display name. obfuscatedId: type: string description: An opaque identifier that can be used to request metadata for a Person. distance: type: number format: float description: Distance to person, refer to PeopleDistance pipeline on interpretation of the value. CommunicationChannel: type: string enum: - COMMUNICATION_CHANNEL_EMAIL - COMMUNICATION_CHANNEL_SLACK ChannelInviteInfo: description: Information regarding the invite status of a person for a particular channel. properties: channel: description: Channel through which the invite was sent $ref: "#/components/schemas/CommunicationChannel" isAutoInvite: description: Bit that tracks if this invite was automatically sent or user-sent type: boolean inviter: description: The person that invited this person. $ref: "#/components/schemas/Person" inviteTime: type: string format: date-time description: The time this person was invited in ISO format (ISO 8601). reminderTime: type: string format: date-time description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. InviteInfo: description: Information regarding the invite status of a person. properties: signUpTime: type: string format: date-time description: The time this person signed up in ISO format (ISO 8601). invites: type: array items: $ref: "#/components/schemas/ChannelInviteInfo" description: Latest invites received by the user for each channel inviter: deprecated: true description: The person that invited this person. $ref: "#/components/schemas/Person" x-glean-deprecated: id: 1d3cd23f-9085-4378-b466-9bdc2e344a71 introduced: "2026-02-05" message: Use ChannelInviteInfo instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" inviteTime: deprecated: true type: string format: date-time description: The time this person was invited in ISO format (ISO 8601). x-glean-deprecated: id: 2dc3f572-cded-483d-af07-fc9fc7fd0ae4 introduced: "2026-02-05" message: Use ChannelInviteInfo instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" reminderTime: deprecated: true type: string format: date-time description: The time this person was reminded in ISO format (ISO 8601) if a reminder was sent. x-glean-deprecated: id: d02d58cf-eb90-45d0-ab90-f7a9d707ae3c introduced: "2026-02-05" message: Use ChannelInviteInfo instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use ChannelInviteInfo instead" ReadPermission: description: Describes the read permission level that a user has for a specific feature properties: scopeType: $ref: "#/components/schemas/ScopeType" ReadPermissions: description: Describes the read permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject additionalProperties: type: array description: List of read permissions (for different scopes but same feature) items: $ref: "#/components/schemas/ReadPermission" WritePermissions: description: Describes the write permissions levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject additionalProperties: type: array description: List of write permissions (for different scopes but same feature) items: $ref: "#/components/schemas/WritePermission" GrantPermission: description: Describes the grant permission level that a user has for a specific feature properties: scopeType: $ref: "#/components/schemas/ScopeType" GrantPermissions: description: Describes the grant permission levels that a user has for permissioned features. Key must be PermissionedFeatureOrObject additionalProperties: type: array description: List of grant permissions (for different scopes but same feature) items: $ref: "#/components/schemas/GrantPermission" Permissions: description: |- Describes the permissions levels that a user has for permissioned features. When the client sends this, Permissions.read and Permissions.write are the additional permissions granted to a user on top of what they have via their roles. When the server sends this, Permissions.read and Permissions.write are the complete (merged) set of permissions the user has, and Permissions.roles is just for display purposes. properties: canAdminSearch: type: boolean description: TODO--deprecate in favor of the read and write properties. True if the user has access to /adminsearch canAdminClientApiGlobalTokens: type: boolean description: TODO--deprecate in favor of the read and write properties. True if the user can administrate client API tokens with global scope canDlp: type: boolean description: TODO--deprecate in favor of the read and write properties. True if the user has access to data loss prevention (DLP) features read: $ref: "#/components/schemas/ReadPermissions" write: $ref: "#/components/schemas/WritePermissions" grant: $ref: "#/components/schemas/GrantPermissions" role: type: string description: The roleId of the canonical role a user has. The displayName is equal to the roleId. roles: type: array description: The roleIds of the roles a user has. items: type: string TimeInterval: required: - start - end properties: start: type: string description: The RFC3339 timestamp formatted start time of this event. end: type: string description: The RFC3339 timestamp formatted end time of this event. AnonymousEvent: description: A generic, light-weight calendar event. type: object properties: time: $ref: "#/components/schemas/TimeInterval" eventType: description: The nature of the event, for example "out of office". type: string enum: - DEFAULT - OUT_OF_OFFICE Badge: type: object description: Displays a user's accomplishment or milestone properties: key: type: string description: An auto generated unique identifier. displayName: type: string description: The badge name displayed to users iconConfig: $ref: "#/components/schemas/IconConfig" pinned: type: boolean description: The badge should be shown on the PersonAttribution example: key: deployment_name_new_hire displayName: New hire iconConfig: color: "#343CED" key: person_icon iconType: GLYPH name: user PersonMetadata: properties: type: type: string x-enumDescriptions: FULL_TIME: The person is a current full-time employee of the company. CONTRACTOR: The person is a current contractor of the company. NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. FORMER_EMPLOYEE: The person is a previous employee of the company. enum: - FULL_TIME - CONTRACTOR - NON_EMPLOYEE - FORMER_EMPLOYEE example: FULL_TIME x-speakeasy-enum-descriptions: FULL_TIME: The person is a current full-time employee of the company. CONTRACTOR: The person is a current contractor of the company. NON_EMPLOYEE: The person object represents a non-human actor such as a service or admin account. FORMER_EMPLOYEE: The person is a previous employee of the company. firstName: type: string description: The first name of the person lastName: type: string description: The last name of the person title: type: string description: Job title. businessUnit: type: string description: Typically the highest level organizational unit; generally applies to bigger companies with multiple distinct businesses. department: type: string description: An organizational unit where everyone has a similar task, e.g. `Engineering`. teams: description: Info about the employee's team(s). type: array items: $ref: "#/components/schemas/PersonTeam" departmentCount: type: integer description: The number of people in this person's department. email: type: string description: The user's primary email address aliasEmails: type: array description: Additional email addresses of this user beyond the primary, if any. items: type: string location: type: string description: User facing string representing the person's location. structuredLocation: $ref: "#/components/schemas/StructuredLocation" externalProfileLink: type: string description: Link to a customer's internal profile page. This is set to '#' when no link is desired. manager: $ref: "#/components/schemas/Person" managementChain: description: The chain of reporting in the company as far up as it goes. The last entry is this person's direct manager. type: array items: $ref: "#/components/schemas/Person" phone: type: string description: Phone number as a number string. timezone: type: string description: The timezone of the person. E.g. "Pacific Daylight Time". timezoneOffset: type: integer format: int64 description: The offset of the person's timezone in seconds from UTC. timezoneIANA: type: string description: The IANA timezone identifier, e.g. "America/Los_Angeles". photoUrl: type: string format: url description: The URL of the person's avatar. Public, glean-authenticated and Base64 encoded data URLs are all valid (but not third-party-authenticated URLs). uneditedPhotoUrl: type: string format: url description: The original photo URL of the person's avatar before any edits they made are applied bannerUrl: type: string format: url description: The URL of the person's banner photo. reports: type: array items: $ref: "#/components/schemas/Person" startDate: type: string description: The date when the employee started. format: date endDate: type: string format: date description: If a former employee, the last date of employment. bio: type: string description: Short biography or mission statement of the employee. pronoun: type: string description: She/her, He/his or other pronoun. orgSizeCount: type: integer description: The total recursive size of the people reporting to this person, or 1 directReportsCount: type: integer description: The total number of people who directly report to this person, or 0 preferredName: type: string description: The preferred name of the person, or a nickname. socialNetwork: description: List of social network profiles. type: array items: $ref: "#/components/schemas/SocialNetwork" datasourceProfile: type: array description: List of profiles this user has in different datasources / tools that they use. items: $ref: "#/components/schemas/DatasourceProfile" querySuggestions: $ref: "#/components/schemas/QuerySuggestionList" peopleDistance: type: array items: $ref: "#/components/schemas/PersonDistance" description: List of people and distances to those people from this person. Optionally with metadata. inviteInfo: $ref: "#/components/schemas/InviteInfo" isSignedUp: type: boolean description: Whether the user has signed into Glean at least once. lastExtensionUse: type: string format: date-time description: The last time the user has used the Glean extension in ISO 8601 format. permissions: $ref: "#/components/schemas/Permissions" customFields: type: array description: User customizable fields for additional people information. items: $ref: "#/components/schemas/CustomFieldData" loggingId: type: string description: The logging id of the person used in scrubbed logs, tracking GA metrics. startDatePercentile: type: number format: float description: Percentage of the company that started strictly after this person. Between [0,100). busyEvents: type: array items: $ref: "#/components/schemas/AnonymousEvent" description: Intervals of busy time for this person, along with the type of event they're busy with. profileBoolSettings: type: object additionalProperties: type: boolean description: flag settings to indicate user profile settings for certain items badges: type: array items: $ref: "#/components/schemas/Badge" description: The badges that a user has earned over their lifetime. isOrgRoot: type: boolean description: Whether this person is a "root" node in their organization's hierarchy. example: department: Movies email: george@example.com location: Hollywood, CA phone: 6505551234 photoUrl: https://example.com/george.jpg startDate: "2000-01-23" title: Actor DocumentVisibility: type: string description: The level of visibility of the document as understood by our system. x-enumDescriptions: PRIVATE: Only one person is able to see the document. SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. DOMAIN_LINK: Anyone in the domain with the link can see the document. DOMAIN_VISIBLE: Anyone in the domain can search for the document. PUBLIC_LINK: Anyone with the link can see the document. PUBLIC_VISIBLE: Anyone on the internet can search for the document. enum: - PRIVATE - SPECIFIC_PEOPLE_AND_GROUPS - DOMAIN_LINK - DOMAIN_VISIBLE - PUBLIC_LINK - PUBLIC_VISIBLE x-speakeasy-enum-descriptions: PRIVATE: Only one person is able to see the document. SPECIFIC_PEOPLE_AND_GROUPS: Only specific people and/or groups can see the document. DOMAIN_LINK: Anyone in the domain with the link can see the document. DOMAIN_VISIBLE: Anyone in the domain can search for the document. PUBLIC_LINK: Anyone with the link can see the document. PUBLIC_VISIBLE: Anyone on the internet can search for the document. Reaction: properties: type: type: string count: type: integer description: The count of the reaction type on the document. reactors: type: array items: $ref: "#/components/schemas/Person" reactedByViewer: type: boolean description: Whether the user in context reacted with this type to the document. Share: description: Search endpoint will only fill out numDays ago since that's all we need to display shared badge; docmetadata endpoint will fill out all the fields so that we can display shared badge tooltip required: - numDaysAgo properties: numDaysAgo: type: integer description: The number of days that has passed since the share happened sharer: $ref: "#/components/schemas/Person" sharingDocument: $ref: "#/components/schemas/Document" DocumentInteractions: properties: numComments: type: integer description: The count of comments (thread replies in the case of slack). numReactions: type: integer description: The count of reactions on the document. reactions: type: array description: To be deprecated in favor of reacts. A (potentially non-exhaustive) list of reactions for the document. deprecated: true items: type: string x-glean-deprecated: id: cd754845-6eec-480f-b395-c93478aff563 introduced: "2026-02-05" message: Use reacts instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use reacts instead" reacts: type: array items: $ref: "#/components/schemas/Reaction" shares: type: array items: $ref: "#/components/schemas/Share" description: Describes instances of someone posting a link to this document in one of our indexed datasources. visitorCount: $ref: "#/components/schemas/CountInfo" ViewerInfo: properties: role: type: string enum: - ANSWER_MODERATOR - OWNER - VIEWER description: DEPRECATED - use permissions instead. Viewer's role on the specific document. deprecated: true x-glean-deprecated: - id: fbc55efe-3e6c-485c-8b60-bab574c3813b introduced: "2026-02-05" kind: property message: Use permissions instead removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Use permissions instead" lastViewedTime: type: string format: date-time IndexStatus: properties: lastCrawledTime: description: When the document was last crawled type: string format: date-time lastIndexedTime: description: When the document was last indexed type: string format: date-time DocumentMetadata: properties: datasource: type: string datasourceInstance: type: string description: The datasource instance from which the document was extracted. objectType: type: string description: The type of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue type such as Bug or Feature Request). container: type: string description: The name of the container (higher level parent, not direct parent) of the result. Interpretation is specific to each datasource (e.g. Channels for Slack, Project for Jira). cf. parentId containerId: type: string description: The Glean Document ID of the container. Uniquely identifies the container. superContainerId: type: string description: The Glean Document ID of the super container. Super container represents a broader abstraction that contains many containers. For example, whereas container might refer to a folder, super container would refer to a drive. parentId: type: string description: The id of the direct parent of the result. Interpretation is specific to each datasource (e.g. parent issue for Jira). cf. container mimeType: type: string documentId: type: string description: The index-wide unique identifier. loggingId: type: string description: A unique identifier used to represent the document in any logging or feedback requests in place of documentId. documentIdHash: type: string description: Hash of the Glean Document ID. createTime: type: string format: date-time updateTime: type: string format: date-time author: $ref: "#/components/schemas/Person" owner: $ref: "#/components/schemas/Person" mentionedPeople: type: array items: $ref: "#/components/schemas/Person" description: A list of people mentioned in the document. visibility: $ref: "#/components/schemas/DocumentVisibility" components: type: array description: A list of components this result is associated with. Interpretation is specific to each datasource. (e.g. for Jira issues, these are [components](https://confluence.atlassian.com/jirasoftwarecloud/organizing-work-with-components-764478279.html).) items: type: string status: type: string description: The status or disposition of the result. Interpretation is specific to each datasource. (e.g. for Jira issues, this is the issue status such as Done, In Progress or Will Not Fix). statusCategory: type: string description: The status category of the result. Meant to be more general than status. Interpretation is specific to each datasource. pins: type: array description: A list of stars associated with this result. "Pin" is an older name. items: $ref: "#/components/schemas/PinDocument" priority: type: string description: The document priority. Interpretation is datasource specific. assignedTo: $ref: "#/components/schemas/Person" updatedBy: $ref: "#/components/schemas/Person" labels: type: array description: A list of tags for the document. Interpretation is datasource specific. items: type: string collections: type: array description: A list of collections that the document belongs to. items: $ref: "#/components/schemas/Collection" datasourceId: type: string description: The user-visible datasource specific id (e.g. Salesforce case number for example, GitHub PR number). interactions: $ref: "#/components/schemas/DocumentInteractions" verification: $ref: "#/components/schemas/Verification" viewerInfo: $ref: "#/components/schemas/ViewerInfo" permissions: $ref: "#/components/schemas/ObjectPermissions" visitCount: $ref: "#/components/schemas/CountInfo" shortcuts: type: array description: A list of shortcuts of which destination URL is for the document. items: $ref: "#/components/schemas/Shortcut" path: type: string description: For file datasources like onedrive/github etc this has the path to the file customData: $ref: "#/components/schemas/CustomData" documentCategory: type: string description: The document's document_category(.proto). contactPerson: $ref: "#/components/schemas/Person" thumbnail: $ref: "#/components/schemas/Thumbnail" description: A thumbnail image representing this document. indexStatus: $ref: "#/components/schemas/IndexStatus" ancestors: type: array description: A list of documents that are ancestors of this document in the hierarchy of the document's datasource, for example parent folders or containers. Ancestors can be of different types and some may not be indexed. Higher level ancestors appear earlier in the list. items: $ref: "#/components/schemas/Document" example: container: container parentId: JIRA_EN-1337 createTime: "2000-01-23T04:56:07.000Z" datasource: datasource author: name: name documentId: documentId updateTime: "2000-01-23T04:56:07.000Z" mimeType: mimeType objectType: Feature Request components: - Backend - Networking status: - Done customData: someCustomField: someCustomValue DocumentSection: type: object properties: title: type: string description: The title of the document section (e.g. the section header). url: type: string description: The permalink of the document section. StructuredTextItem: properties: link: type: string example: https://en.wikipedia.org/wiki/Diffuse_sky_radiation document: deprecated: true description: Deprecated. To be gradually migrated to structuredResult. $ref: "#/components/schemas/Document" text: type: string example: Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue. structuredResult: $ref: "#/components/schemas/StructuredResult" AnnouncementMutableProperties: properties: startTime: type: string format: date-time description: The date and time at which the announcement becomes active. endTime: type: string format: date-time description: The date and time at which the announcement expires. title: type: string description: The headline of the announcement. body: $ref: "#/components/schemas/StructuredText" emoji: type: string description: An emoji used to indicate the nature of the announcement. thumbnail: $ref: "#/components/schemas/Thumbnail" banner: $ref: "#/components/schemas/Thumbnail" description: Optional variant of thumbnail cropped for header background. audienceFilters: type: array description: Filters which restrict who should see the announcement. Values are taken from the corresponding filters in people search. items: $ref: "#/components/schemas/FacetFilter" sourceDocumentId: type: string description: The Glean Document ID of the source document this Announcement was created from (e.g. Slack thread). hideAttribution: type: boolean description: Whether or not to hide an author attribution. channel: type: string enum: - MAIN - SOCIAL_FEED description: This determines whether this is a Social Feed post or a regular announcement. postType: type: string enum: - TEXT - LINK description: This determines whether this is an external-link post or a regular announcement post. TEXT - Regular announcement that can contain rich text. LINK - Announcement that is linked to an external site. isPrioritized: type: boolean description: Used by the Social Feed to pin posts to the front of the feed. viewUrl: type: string description: URL for viewing the announcement. It will be set to document URL for announcements from other datasources e.g. simpplr. Can only be written when channel="SOCIAL_FEED". CreateAnnouncementRequest: allOf: - $ref: "#/components/schemas/AnnouncementMutableProperties" - type: object required: - title - startTime - endTime DraftProperties: properties: draftId: type: integer description: The opaque id of the associated draft. example: draftId: 342 Announcement: allOf: - $ref: "#/components/schemas/AnnouncementMutableProperties" - $ref: "#/components/schemas/DraftProperties" - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/UgcTrackingSignals" - type: object properties: id: type: integer description: The opaque id of the announcement. author: $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time (in seconds since epoch UTC). lastUpdateTimestamp: type: integer description: Server Unix timestamp of the last update time (in seconds since epoch UTC). updatedBy: $ref: "#/components/schemas/Person" viewerInfo: type: object properties: isDismissed: type: boolean description: Whether the viewer has dismissed the announcement. isRead: type: boolean description: Whether the viewer has read the announcement. sourceDocument: $ref: "#/components/schemas/Document" description: The source document if the announcement is created from one. isPublished: type: boolean description: Whether or not the announcement is published. favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" DeleteAnnouncementRequest: required: - id properties: id: type: integer description: The opaque id of the announcement to be deleted. UpdateAnnouncementRequest: allOf: - $ref: "#/components/schemas/AnnouncementMutableProperties" - type: object required: - id - title - startTime - endTime properties: id: type: integer description: The opaque id of the announcement. AddedCollections: properties: addedCollections: type: array items: type: integer description: IDs of Collections to which a document is added. AnswerCreationData: allOf: - $ref: "#/components/schemas/AnswerMutableProperties" - $ref: "#/components/schemas/AddedCollections" - type: object properties: combinedAnswerText: $ref: "#/components/schemas/StructuredTextMutableProperties" CreateAnswerRequest: required: - data properties: data: $ref: "#/components/schemas/AnswerCreationData" DeleteAnswerRequest: allOf: - $ref: "#/components/schemas/AnswerId" - $ref: "#/components/schemas/AnswerDocId" - type: object required: - id RemovedCollections: properties: removedCollections: type: array items: type: integer description: IDs of Collections from which a document is removed. EditAnswerRequest: allOf: - $ref: "#/components/schemas/AnswerId" - $ref: "#/components/schemas/AnswerDocId" - $ref: "#/components/schemas/AnswerMutableProperties" - $ref: "#/components/schemas/AddedCollections" - $ref: "#/components/schemas/RemovedCollections" - type: object required: - id properties: combinedAnswerText: $ref: "#/components/schemas/StructuredTextMutableProperties" GetAnswerRequest: allOf: - $ref: "#/components/schemas/AnswerId" - $ref: "#/components/schemas/AnswerDocId" AnswerResult: required: - answer properties: answer: $ref: "#/components/schemas/Answer" trackingToken: type: string description: Use `answer.trackingToken` instead. deprecated: true x-glean-deprecated: id: 62de643b-f182-4d4d-a2fc-5e2cbfee7320 introduced: "2026-05-07" message: Use `answer.trackingToken` instead. removal: "2027-01-15" x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `answer.trackingToken` instead." favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" GetAnswerError: properties: errorType: type: string enum: - NO_PERMISSION - INVALID_ID answerAuthor: $ref: "#/components/schemas/Person" GetAnswerResponse: properties: answerResult: $ref: "#/components/schemas/AnswerResult" error: $ref: "#/components/schemas/GetAnswerError" ListAnswersRequest: properties: boardId: type: integer description: The Answer Board Id to list answers on. ListAnswersResponse: required: - answers - answerResults properties: answerResults: type: array items: $ref: "#/components/schemas/AnswerResult" description: List of answers with tracking tokens. AuthStatus: type: string description: The per-user authorization status for a datasource. enum: - DISABLED - AWAITING_AUTH - AUTHORIZED - STALE_OAUTH - SEG_MIGRATION x-enum-varnames: - AUTH_STATUS_DISABLED - AUTH_STATUS_AWAITING_AUTH - AUTH_STATUS_AUTHORIZED - AUTH_STATUS_STALE_OAUTH - AUTH_STATUS_SEG_MIGRATION UnauthorizedDatasourceInstance: description: | A datasource instance that could not return results for this request because the user has not completed or has expired per-user OAuth. properties: datasourceInstance: type: string description: | The instance identifier (e.g. "github", "github_enterprise_0", "slack_0"). Matches the instance names used in datasource configuration. example: slack_0 displayName: type: string description: Human-readable name of the datasource instance for display. example: Slack authStatus: $ref: "#/components/schemas/AuthStatus" authUrlRelativePath: type: string description: | Relative path to initiate or resume OAuth for the current user and instance, including a one-time authentication token as a query parameter. Clients should prepend their configured Glean backend base URL. CheckDatasourceAuthResponse: required: - unauthorizedDatasourceInstances properties: unauthorizedDatasourceInstances: type: array description: | Datasource instances that require per-user OAuth authorization. Empty when all datasources are authorized. items: $ref: "#/components/schemas/UnauthorizedDatasourceInstance" CreateAuthTokenResponse: required: - token - expirationTime properties: token: type: string description: An authentication token that can be passed to any endpoint via Bearer Authentication expirationTime: description: Unix timestamp for when this token expires (in seconds since epoch UTC). type: integer format: int64 ToolSets: type: object description: The types of tools that the agent is allowed to use. Only works with FAST and ADVANCED `agent` values properties: enableWebSearch: type: boolean description: "Whether the agent is allowed to use web search (default: true)." enableCompanyTools: type: boolean description: "Whether the agent is allowed to search internal company resources (default: true)." AgentConfig: description: Describes the agent that executes the request. properties: agent: type: string description: Name of the agent. x-enumDescriptions: DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. enum: - DEFAULT - GPT - UNIVERSAL - FAST - ADVANCED - AUTO x-speakeasy-enum-descriptions: DEFAULT: Integrates with your company's knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values GPT: Communicates directly with the LLM. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values UNIVERSAL: Uses both company and web knowledge. This will soon be deprecated in favor of the FAST and ADVANCED `agent` values FAST: Uses an agent powered by the agentic engine that responds faster but may have lower quality results. Requires the agentic engine to be enabled in the deployment. ADVANCED: Uses an agent powered by the agentic engine that thinks for longer and potentially makes more LLM calls to return higher quality results. Requires the agentic engine to be enabled in the deployment. AUTO: Uses an agent powered by the agentic engine that routes between reasoning efforts based on the question and context. toolSets: $ref: "#/components/schemas/ToolSets" mode: type: string description: Top level modes to run GleanChat in. x-enumDescriptions: DEFAULT: Used if no mode supplied. QUICK: Deprecated. enum: - DEFAULT - QUICK x-speakeasy-enum-descriptions: DEFAULT: Used if no mode supplied. QUICK: Deprecated. useImageGeneration: type: boolean description: Whether the agent should create an image. ChatFileStatus: type: string description: Current status of the file. x-include-enum-class-prefix: true enum: - PROCESSING - PROCESSED - PARTIALLY_PROCESSED - FAILED - DELETED ChatFileFailureReason: type: string description: Reason for failed status. x-include-enum-class-prefix: true enum: - PARSE_FAILED - AV_SCAN_FAILED - FILE_TOO_SMALL - FILE_TOO_LARGE - FILE_EXTENSION_UNSUPPORTED - FILE_METADATA_VALIDATION_FAIL - FILE_PROCESSING_TIMED_OUT - OAUTH_NEEDED - URL_FETCH_FAILED - EMPTY_CONTENT - AUTH_REQUIRED ChatFileMetadata: type: object description: Metadata of a file uploaded by a user for Chat. properties: status: $ref: "#/components/schemas/ChatFileStatus" uploadTime: type: integer format: int64 description: Upload time, in epoch seconds. processedSize: type: integer format: int64 description: Size of the processed file in bytes. failureReason: $ref: "#/components/schemas/ChatFileFailureReason" mimeType: description: MIME type of the file. type: string ChatFile: type: object description: Structure for file uploaded by a user for Chat. properties: id: type: string description: Unique identifier of the file. example: FILE_1234 url: type: string description: Url of the file. example: www.google.com name: type: string description: Name of the uploaded file. example: sample.pdf metadata: $ref: "#/components/schemas/ChatFileMetadata" ReferenceRange: description: Each text range from the response can correspond to an array of snippets from the citation source. properties: textRange: $ref: "#/components/schemas/TextRange" snippets: type: array items: $ref: "#/components/schemas/SearchResultSnippet" ChatMessageCitation: description: Information about the source for a ChatMessage. properties: trackingToken: type: string description: An opaque token that represents this particular result in this particular ChatMessage. To be used for /feedback reporting. sourceDocument: $ref: "#/components/schemas/Document" sourceFile: $ref: "#/components/schemas/ChatFile" sourcePerson: $ref: "#/components/schemas/Person" sourceCustomEntity: $ref: "#/components/schemas/CustomEntity" referenceRanges: description: Each reference range and its corresponding snippets type: array items: $ref: "#/components/schemas/ReferenceRange" displayName: description: Human understandable name of the tool. Max 50 characters. type: string logoUrl: type: string description: URL used to fetch the logo. objectName: type: string description: Name of the generated object. This will be used to indicate to the end user what the generated object contains. example: - HR ticket - Email - Chat message PersonObject: required: - name - obfuscatedId properties: name: type: string description: The display name. obfuscatedId: type: string description: An opaque identifier that can be used to request metadata for a Person. AuthConfig: description: Config for tool's authentication method. type: object properties: isOnPrem: type: boolean description: Whether or not this tool is hosted on-premise. usesCentralAuth: type: boolean description: Whether or not this uses central auth. type: type: string enum: - NONE - OAUTH_USER - OAUTH_ADMIN - API_KEY - BASIC_AUTH - DWD description: | The type of authentication being used. Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. 'OAUTH_USER' uses individual user tokens for external API calls. 'DWD' refers to domain wide delegation. grantType: type: string enum: - AUTH_CODE - CLIENT_CREDENTIALS description: The type of grant type being used. status: type: string description: Auth status of the tool. enum: - AWAITING_AUTH - AUTHORIZED - AUTH_DISABLED client_url: type: string format: url description: The URL where users will be directed to start the OAuth flow. scopes: type: array items: type: string description: A list of strings denoting the different scopes or access levels required by the tool. audiences: type: array items: type: string description: A list of strings denoting the different audience which can access the tool. authorization_url: type: string format: url description: The OAuth provider's endpoint, where access tokens are requested. resource: type: string format: url description: The OAuth 2.0 Resource Indicator (RFC 8707) for the protected resource. Discovered from Protected Resource Metadata (RFC 9728) during DCR. Included in authorization and token exchange requests when present. token_endpoint_auth_method: type: string enum: - client_secret_post - client_secret_basic - none - private_key_jwt description: The OAuth 2.0 token endpoint authentication method (RFC 7591). Determines how the client authenticates when exchanging an authorization code for a token. client_secret_post sends credentials as form fields, client_secret_basic sends them via Authorization header, none omits client secret and relies on PKCE only, and private_key_jwt authenticates with a JWT client assertion signed by the client's private key (RFC 7523 Section 2.2 / OIDC Core Section 9). Values use lowercase to match the OAuth 2.0 wire format (RFC 7591 Section 2). lastAuthorizedAt: type: string format: date-time description: The time the tool was last authorized in ISO format (ISO 8601). ToolMetadata: description: The manifest for a tool that can be used to augment Glean Assistant. required: - type - name - displayName - displayDescription properties: type: description: The type of tool. type: string enum: - RETRIEVAL - ACTION name: description: Unique identifier for the tool. Name should be understandable by the LLM, and will be used to invoke a tool. type: string displayName: $ref: "#/components/schemas/displayName" toolId: type: string description: An opaque id which is unique identifier for the tool. displayDescription: description: Description of the tool meant for a human. type: string logoUrl: $ref: "#/components/schemas/logoUrl" objectName: $ref: "#/components/schemas/objectName" knowledgeType: type: string description: Indicates the kind of knowledge a tool would access or modify. enum: - NEUTRAL_KNOWLEDGE - COMPANY_KNOWLEDGE - WORLD_KNOWLEDGE createdBy: $ref: "#/components/schemas/PersonObject" lastUpdatedBy: $ref: "#/components/schemas/PersonObject" createdAt: type: string format: date-time description: The time the tool was created in ISO format (ISO 8601) lastUpdatedAt: type: string format: date-time description: The time the tool was last updated in ISO format (ISO 8601) writeActionType: type: string description: Valid only for write actions. Represents the type of write action. REDIRECT - The client renders the URL which contains information for carrying out the action. EXECUTION - Send a request to an external server and execute the action. MCP - Send a tools/call request to an MCP server to execute the action. enum: - REDIRECT - EXECUTION - MCP actionTypeSource: type: string description: | Analytics-only signal (product snapshot) describing WHERE the action's read/write determination came from. Complementary to the effective read/write value (the tool's ToolType, which drives HITL): the value says read-or-write, this says how confident that is. MCP_ANNOTATION = from the tool's read-only/destructive hints; ADMIN_OVERRIDE = an admin set it; NONE = no usable hint (the effective value then defaults to write); NATIVE_TOOL_DEFINITION = from a curated native tool (snapshot-derived). Does not affect runtime behavior. enum: - MCP_ANNOTATION - ADMIN_OVERRIDE - NONE - NATIVE_TOOL_DEFINITION authType: type: string enum: - NONE - OAUTH_USER - OAUTH_ADMIN - API_KEY - BASIC_AUTH - DWD description: | The type of authentication being used. Use 'OAUTH_*' when Glean calls an external API (e.g., Jira) on behalf of a user to obtain an OAuth token. 'OAUTH_ADMIN' utilizes an admin token for external API calls on behalf all users. 'OAUTH_USER' uses individual user tokens for external API calls. 'DWD' refers to domain wide delegation. auth: deprecated: true $ref: "#/components/schemas/AuthConfig" permissions: deprecated: true $ref: "#/components/schemas/ObjectPermissions" usageInstructions: description: Usage instructions for the LLM to use this action. type: string isSetupFinished: type: boolean description: Whether this action has been fully configured and validated. PossibleValue: type: object description: Possible value of a specific parameter properties: value: type: string description: Possible value label: type: string description: User-friendly label associated with the value WriteActionParameter: type: object properties: type: type: string description: The type of the value (e.g., integer, string, boolean, etc.) enum: - UNKNOWN - INTEGER - STRING - BOOLEAN displayName: type: string description: Human readable display name for the key. value: type: string description: The value of the field. isRequired: type: boolean description: Is the parameter a required field. description: type: string description: Description of the parameter. possibleValues: type: array items: $ref: "#/components/schemas/PossibleValue" description: Possible values that the parameter can take. ToolInfo: type: object properties: metadata: $ref: "#/components/schemas/ToolMetadata" parameters: type: object description: Parameters supported by the tool. additionalProperties: $ref: "#/components/schemas/WriteActionParameter" ServerToolBase: x-visibility: Preview x-glean-experimental: id: 4e3ee791-45e0-4125-845f-4b7701aa983c introduced: "2026-07-02" type: object required: - toolType - requestType - requestId properties: requestType: type: string description: The type of request made to the user. x-enumDescriptions: EXECUTION: Request for approving execution of the tool. AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. enum: - EXECUTION - AUTHENTICATION_SUGGESTION - VOTE_SUGGESTION x-speakeasy-enum-descriptions: EXECUTION: Request for approving execution of the tool. AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. requestId: type: string description: Unique identifier for this request. ActionPreview: description: Preview information for an action being executed. properties: markdown: type: string description: Markdown preview describing what the action will do. description: type: string description: Short summary of what this specific tool invocation will do. ServerToolRequest: x-visibility: Preview x-glean-experimental: id: 8544e887-4569-4b14-bde0-d1be9e90dbc3 introduced: "2026-07-02" allOf: - $ref: "#/components/schemas/ServerToolBase" - type: object required: - toolName properties: toolDisplayName: type: string description: Human-readable display name for the tool. serverId: type: string description: | Unique identifier of the tool server. Use with GET /tool-servers/{serverId}/auth to resolve display information and authentication status. toolCta: type: string description: Custom call-to-action (CTA) verb for the approval button (e.g., "Create", "Update", "Send"). actionPreview: description: Preview information for this tool request. $ref: "#/components/schemas/ActionPreview" AuthContext: x-visibility: Preview x-glean-experimental: id: a7c1d3e5-9f42-4b8a-b6e0-2d4f8a1c3e5b introduced: "2026-07-09" type: object description: | Context for authentication responses, containing identifiers for the entity being authenticated. properties: serverId: type: string description: ID of the MCP server (populated when toolType is MCP). ServerToolResponse: x-visibility: Preview x-glean-experimental: id: 3eae3ee7-2c06-4027-be14-98260a3ce608 introduced: "2026-07-02" description: | Response to a server tool request. The applicable fields depend on requestType: For EXECUTION requests: - isGranted: whether tool execution is approved - reason: optional explanation For AUTHENTICATION_SUGGESTION requests: - isGranted: whether auth completed successfully (true=connected, false=skipped) - authContext: contains serverId or actionPackId for identifying the authenticated entity - reason: optional explanation for skip For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool allOf: - $ref: "#/components/schemas/ServerToolBase" - type: object properties: isGranted: type: boolean description: Whether tool request is granted (indicates approval for execution, or completion for auth). grantScope: type: string description: | Scope of the approval grant. Only applicable when isGranted is true and requestType is EXECUTION. default: CURRENT_REQUEST x-enumDescriptions: CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. enum: - CURRENT_REQUEST - CURRENT_SESSION - ALWAYS x-speakeasy-enum-descriptions: CURRENT_REQUEST: Approve only the current tool request. Future tool execution requests still require approval. CURRENT_SESSION: Approve the current tool request and auto-approve all future same tool requests in this chat session. ALWAYS: Approve the current tool request and auto-approve all future same tool requests across all chat sessions. authContext: $ref: "#/components/schemas/AuthContext" description: Context for AUTHENTICATION_SUGGESTION responses. Required when requestType is AUTHENTICATION_SUGGESTION. ChatMessageFragment: description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation, followupRoutingSuggestion or file. allOf: - $ref: "#/components/schemas/Result" - type: object properties: text: type: string querySuggestion: description: The search queries issued while responding. $ref: "#/components/schemas/QuerySuggestion" file: description: Files referenced in the message fragment. This is used to construct rich-text messages with file references. $ref: "#/components/schemas/ChatFile" action: description: Basic information about an action. This can be used to construct rich-text messages with action references. $ref: "#/components/schemas/ToolInfo" citation: description: Inline citation. $ref: "#/components/schemas/ChatMessageCitation" serverToolRequest: description: request to run a tool on server. $ref: "#/components/schemas/ServerToolRequest" serverToolResponse: description: response corresponding to the server tool request. $ref: "#/components/schemas/ServerToolResponse" ChatMessage: description: A message that is rendered as one coherent unit with one given sender. properties: agentConfig: $ref: "#/components/schemas/AgentConfig" description: Describes the agent config that generated this message. Populated on responses and not required on requests. author: default: USER enum: - USER - GLEAN_AI citations: type: array items: $ref: "#/components/schemas/ChatMessageCitation" description: "Deprecated: Use inline citations via ChatMessageFragment.citation instead. For detailed reference information, use ChatMessageCitation.referenceRanges. This field is still populated for backward compatibility." deprecated: true x-glean-deprecated: id: 6446f85e-c90e-4c00-9717-796f9db3dc61 introduced: "2026-02-06" message: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility. removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-06, removal scheduled for 2026-10-15: Use inline citations via ChatMessageFragment.citation and ChatMessageCitation.referenceRanges instead. This field is still populated for backward compatibility." uploadedFileIds: type: array items: type: string description: IDs of files uploaded in the message that are referenced to generate the answer. fragments: type: array description: A list of rich data used to represent the response or formulate a request. These are linearly stitched together to support richer data formats beyond simple text. items: $ref: "#/components/schemas/ChatMessageFragment" ts: type: string description: Response timestamp of the message. messageId: type: string description: A unique server-side generated ID used to identify a message, automatically populated for any USER authored messages. messageTrackingToken: type: string description: Opaque tracking token generated server-side. messageType: type: string default: CONTENT description: Semantically groups content of a certain type. It can be used for purposes such as differential UI treatment. USER authored messages should be of type CONTENT and do not need `messageType` specified. x-enumDescriptions: UPDATE: An intermediate state message for progress updates. CONTENT: A user query or response message. CONTEXT: A message providing context in addition to the user query. CONTROL: Control signal for message streaming. CONTROL_START: Control signal indicating the start of a message stream. CONTROL_FINISH: Control signal indicating the end of a message stream. CONTROL_CANCEL: Control signal indicating the message stream was cancelled. CONTROL_RETRY: Indicates the message streaming needed to be retried. CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. DEBUG: A debug message. Strictly used internally. DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. ERROR: A message that describes an error while processing the request. HEADING: A heading message used to distinguish different sections of the holistic response. WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. enum: - UPDATE - CONTENT - CONTEXT - CONTROL - CONTROL_START - CONTROL_FINISH - CONTROL_CANCEL - CONTROL_RETRY - CONTROL_UNKNOWN - DEBUG - DEBUG_EXTERNAL - ERROR - HEADING - WARNING - SERVER_TOOL x-speakeasy-enum-descriptions: UPDATE: An intermediate state message for progress updates. CONTENT: A user query or response message. CONTEXT: A message providing context in addition to the user query. CONTROL: Control signal for message streaming. CONTROL_START: Control signal indicating the start of a message stream. CONTROL_FINISH: Control signal indicating the end of a message stream. CONTROL_CANCEL: Control signal indicating the message stream was cancelled. CONTROL_RETRY: Indicates the message streaming needed to be retried. CONTROL_UNKNOWN: Fallback control signal for unrecognized control types. DEBUG: A debug message. Strictly used internally. DEBUG_EXTERNAL: A debug message to be used while debugging Action creation. ERROR: A message that describes an error while processing the request. HEADING: A heading message used to distinguish different sections of the holistic response. WARNING: A warning message to be shown to the user. SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. hasMoreFragments: deprecated: true type: boolean description: Signals there are additional response fragments incoming. ChatRequestBase: required: - messages description: The minimal set of fields that form a chat request. properties: messages: type: array description: A list of chat messages, from most recent to least recent. At least one message must specify a USER author. items: $ref: "#/components/schemas/ChatMessage" sessionInfo: description: Optional object for tracking the session used by the client and for debugging purposes. $ref: "#/components/schemas/SessionInfo" saveChat: type: boolean description: Save the current interaction as a Chat for the user to access and potentially continue later. chatId: type: string description: The id of the Chat that context should be retrieved from and messages added to. An empty id starts a new Chat, and the Chat is saved if saveChat is true. agentConfig: $ref: "#/components/schemas/AgentConfig" description: Describes the agent that will execute the request. ChatRestrictionFilters: allOf: - $ref: "#/components/schemas/RestrictionFilters" - type: object properties: documentSpecs: type: array items: $ref: "#/components/schemas/DocumentSpec" datasourceInstances: type: array items: type: string ChatRequest: allOf: - $ref: "#/components/schemas/ChatRequestBase" - type: object properties: inclusions: $ref: "#/components/schemas/ChatRestrictionFilters" description: A list of filters which only allows chat to access certain content. exclusions: $ref: "#/components/schemas/ChatRestrictionFilters" description: A list of filters which disallows chat from accessing certain content. If content is in both inclusions and exclusions, it'll be excluded. timeoutMillis: type: integer description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. example: 30000 applicationId: type: string description: The ID of the application this request originates from, used to determine the configuration of underlying chat processes. This should correspond to the ID set during admin setup. If not specified, the default chat experience will be used. agentId: type: string description: The ID of the Agent that should process this chat request. Only Agents with trigger set to 'User chat message' are invokable through this API. If not specified, the default chat experience will be used. stream: type: boolean description: If set, response lines will be streamed one-by-one as they become available. Each will be a ChatResponse, formatted as JSON, and separated by a new line. If false, the entire response will be returned at once. Note that if this is set and the model being used does not support streaming, the model's response will not be streamed, but other messages from the endpoint still will be. ChatResponse: description: A single response from the /chat backend. properties: messages: type: array items: $ref: "#/components/schemas/ChatMessage" chatId: type: string description: The id of the associated Chat the messages belong to, if one exists. chat: $ref: "#/components/schemas/ChatMetadata" followUpPrompts: type: array items: type: string description: Follow-up prompts for the user to potentially use backendTimeMillis: type: integer format: int64 description: Time in milliseconds the backend took to respond to the request. example: 1100 chatSessionTrackingToken: type: string description: A token that is used to track the session. DeleteChatsRequest: required: - ids properties: ids: type: array items: type: string description: A non-empty list of ids of the Chats to be deleted. GetChatRequest: required: - id properties: id: type: string description: The id of the Chat to be retrieved. Chat: description: A historical representation of a series of chat messages a user had with Glean Assistant. allOf: - $ref: "#/components/schemas/ChatMetadata" - $ref: "#/components/schemas/PermissionedObject" properties: messages: type: array items: $ref: "#/components/schemas/ChatMessage" description: The chat messages within a Chat. roles: type: array items: $ref: "#/components/schemas/UserRoleSpecification" description: A list of roles for this Chat. ChatResult: properties: chat: $ref: "#/components/schemas/Chat" trackingToken: type: string description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. GetChatResponse: properties: chatResult: $ref: "#/components/schemas/ChatResult" AccessRequestPermissionDeniedResponse: type: object required: - errorType - createdBy - requestableRoles - hasPendingRequest properties: errorType: type: string enum: - PERMISSION_DENIED createdBy: $ref: "#/components/schemas/Person" requestableRoles: type: array items: $ref: "#/components/schemas/UserRole" hasPendingRequest: type: boolean ChatMetadataResult: properties: chat: $ref: "#/components/schemas/ChatMetadata" trackingToken: type: string description: An opaque token that represents this particular Chat. To be used for `/feedback` reporting. ListChatsResponse: properties: chatResults: type: array items: $ref: "#/components/schemas/ChatMetadataResult" x-includeEmpty: true cursor: type: string description: An opaque cursor for fetching the next page of results. If empty, there are no more results. GetChatApplicationRequest: required: - id properties: id: type: string description: The id of the Chat application to be retrieved. ChatApplicationDetails: {} GetChatApplicationResponse: properties: application: $ref: "#/components/schemas/ChatApplicationDetails" UploadChatFilesRequest: required: - files properties: files: type: array items: type: string format: binary description: Raw files to be uploaded for chat in binary format. UploadChatFilesResponse: properties: files: type: array items: $ref: "#/components/schemas/ChatFile" description: Files uploaded for chat. GetChatFilesRequest: required: - fileIds properties: fileIds: type: array items: type: string description: IDs of files to fetch. GetChatFilesResponse: properties: files: description: A map of file IDs to ChatFile structs. type: object additionalProperties: $ref: "#/components/schemas/ChatFile" DeleteChatFilesRequest: required: - fileIds properties: fileIds: type: array items: type: string description: IDs of files to delete. WorkflowDraftableProperties: properties: name: type: string description: The name of the workflow. WorkflowMutableProperties: type: object allOf: - $ref: "#/components/schemas/WorkflowDraftableProperties" - type: object CreateWorkflowRequest: allOf: - $ref: "#/components/schemas/WorkflowMutableProperties" - type: object properties: transient: type: boolean description: Used to create a transient workflow. parentWorkflowId: type: string description: id of the parent workflow for transient workflows WorkflowMetadata: allOf: - type: object properties: author: $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time. lastUpdateTimestamp: type: integer description: Server Unix timestamp of the last update time. lastDraftSavedAt: type: integer description: Server Unix timestamp of the last time the draft was saved. lastDraftSavedBy: description: The person who last saved the draft. $ref: "#/components/schemas/Person" lastDraftGitAuthorId: type: string description: ID of the VCS user (e.g. GitHub username) who last saved the draft. Set only by the draft save path via the external Git integration API. lastUpdatedBy: $ref: "#/components/schemas/Person" AttributionProperties: {} Workflow: allOf: - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/WorkflowMutableProperties" - $ref: "#/components/schemas/WorkflowMetadata" - $ref: "#/components/schemas/AttributionProperties" - type: object properties: id: type: string description: The ID of the workflow. verified: type: boolean readOnly: true description: When present, indicates this workflow is admin-verified. Set via the dedicated admin settings endpoint, not by regular edits. showOrganizationAsAuthor: type: boolean readOnly: true description: When true, displays organization name instead of author name in agent card. Set via the dedicated admin settings endpoint, not by regular edits. webhookUrl: type: string readOnly: true description: | For a CUSTOM_WEBHOOK-triggered agent, the full inbound webhook URL (.../webhooks/custom/) minted for the agent. Empty for other trigger types. WorkflowResult: type: object required: - workflow properties: workflow: $ref: "#/components/schemas/Workflow" CreateWorkflowResponse: allOf: - $ref: "#/components/schemas/WorkflowResult" Agent: title: Agent type: object required: - agent_id - name - capabilities properties: agent_id: type: string title: Agent Id description: The ID of the agent. example: mho4lwzylcozgoc2 name: type: string title: Agent Name description: The name of the agent example: HR Policy Agent description: type: string title: Description description: The description of the agent. example: This agent answers questions about the current company HR policies. metadata: type: object title: Metadata description: The agent metadata. Currently not implemented. capabilities: type: object title: Agent Capabilities description: |- Describes features that the agent supports. example: { "ap.io.messages": true, "ap.io.streaming": true } properties: ap.io.messages: type: boolean title: Messages description: Whether the agent supports messages as an input. If true, you'll pass `messages` as an input when running the agent. ap.io.streaming: type: boolean title: Streaming description: Whether the agent supports streaming output. If true, you you can stream agent ouput. All agents currently support streaming. additionalProperties: true ErrorResponse: type: string title: ErrorResponse description: Error message returned from the server EditWorkflowRequest: allOf: - $ref: "#/components/schemas/WorkflowMutableProperties" - type: object properties: id: type: string description: The workflow ID we want to update. ActionSummary: type: object description: Represents a minimal summary of an action. required: - tool_id - display_name properties: tool_id: type: string description: The unique identifier of the action. display_name: type: string description: The display name of the action. type: type: string description: The type of tool - RETRIEVAL for read-only operations, ACTION for operations that modify data. auth_type: type: string description: The authentication type required - OAUTH_USER, OAUTH_ADMIN, API_KEY, BASIC_AUTH, DWD (domain-wide delegation), or NONE. write_action_type: type: string description: For write actions only - REDIRECT (client renders URL) or EXECUTION (external server call). is_setup_finished: type: boolean description: Whether this action has been fully configured and validated. x-includeEmpty: true data_source: type: string description: | Indicates the kind of knowledge a tool would access or modify. Company knowledge: - Glean search, and any native tools that derive from it (e.g., expert search, code search) - Native federated tools to company data sources (e.g., outlook search) World knowledge: - Platform action like bravewebsearch, geminiwebsearch, etc Neutral knowledge: - Native tools that don't access or modify content via APIs (e.g., file analyst, think) - Platform read or write tools (creator has to determine their knowledge implications) AgentSchemas: properties: agent_id: type: string title: Agent Id description: The ID of the agent. example: mho4lwzylcozgoc2 name: type: string title: Agent Name description: The name of the agent. example: HR Policy Agent input_schema: type: object title: Input Schema description: The schema for the agent input. In JSON Schema format. output_schema: type: object title: Output Schema description: The schema for the agent output. In JSON Schema format. tools: type: array title: Tools description: List of tools that the agent can invoke. Only included when include_tools query parameter is set to true. items: $ref: "#/components/schemas/ActionSummary" type: object required: - agent_id - input_schema - output_schema title: AgentSchemas description: Defines the structure and properties of an agent. SearchAgentsRequest: type: object properties: name: type: string description: Filters on the name of the agent. The keyword search is case-insensitive. If search string is ommited or empty, acts as no filter. example: HR Policy Agent SearchAgentsResponse: type: object title: Response Search Agents properties: agents: type: array items: $ref: "#/components/schemas/Agent" ContentType: type: string enum: - text Message: type: object properties: role: type: string title: Role description: The role of the message. example: USER content: title: Content description: The content of the message. type: array items: type: object properties: text: type: string type: $ref: "#/components/schemas/ContentType" required: - text - type title: MessageTextBlock AgentRunCreate: description: "Payload for creating a run. **Important**: If the agent uses an input form trigger, the `input` field is required and must include all fields defined in the form schema. Even fields marked as optional in the UI must be included in the request—use an empty string (`\"\"`) for optional fields without values. Omitting required form fields will result in a 500 error." type: object required: - agent_id properties: agent_id: type: string title: Agent Id description: The ID of the agent to run. input: type: object title: Input description: The input to the agent. Required when the agent uses an input form trigger. additionalProperties: true messages: type: array items: $ref: "#/components/schemas/Message" title: Messages description: The messages to pass an input to the agent. metadata: type: object title: Metadata description: The metadata to pass to the agent. additionalProperties: true AgentExecutionStatus: description: The status of the run. One of 'error', 'success'. type: string enum: - error - success title: AgentExecutionStatus AgentRun: allOf: - $ref: "#/components/schemas/AgentRunCreate" - type: object properties: status: $ref: "#/components/schemas/AgentExecutionStatus" AgentRunWaitResponse: type: object properties: run: $ref: "#/components/schemas/AgentRun" title: Run description: The run information. messages: type: array items: $ref: "#/components/schemas/Message" title: Messages description: The messages returned by the run. CollectionItemDescriptor: allOf: - $ref: "#/components/schemas/CollectionItemMutableProperties" properties: url: type: string description: The URL of the item being added. documentId: type: string description: The Glean Document ID of the item being added if it's an indexed document. newNextItemId: type: string description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection itemType: type: string enum: - DOCUMENT - TEXT - URL AddCollectionItemsRequest: required: - collectionId properties: collectionId: type: number description: The ID of the Collection to add items to. addedCollectionItemDescriptors: type: array items: $ref: "#/components/schemas/CollectionItemDescriptor" description: The CollectionItemDescriptors of the items being added. AddCollectionItemsError: properties: errorType: type: string enum: - EXISTING_ITEM - CORRUPT_ITEM AddCollectionItemsResponse: properties: collection: $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. error: $ref: "#/components/schemas/AddCollectionItemsError" CreateCollectionRequest: allOf: - $ref: "#/components/schemas/CollectionMutableProperties" - type: object properties: newNextItemId: type: string description: The (optional) ItemId of the next CollectionItem in sequence. If omitted, will be added to the end of the Collection. Only used if parentId is specified. CollectionError: required: - errorCode properties: errorCode: type: string enum: - NAME_EXISTS - NOT_FOUND - COLLECTION_PINNED - CONCURRENT_HIERARCHY_EDIT - HEIGHT_VIOLATION - WIDTH_VIOLATION - NO_PERMISSIONS - CORRUPT_ITEM CreateCollectionResponse: allOf: - type: object anyOf: - required: - collection - required: - error properties: collection: $ref: "#/components/schemas/Collection" error: $ref: "#/components/schemas/CollectionError" DeleteCollectionRequest: required: - ids properties: ids: type: array items: type: integer description: The IDs of the Collections to delete. allowedDatasource: type: string description: The datasource allowed in the Collection to be deleted. DeleteCollectionItemRequest: required: - collectionId - itemId properties: collectionId: type: number description: The ID of the Collection to remove an item in. itemId: type: string description: The item ID of the CollectionItem to remove from this Collection. documentId: type: string description: The (optional) Glean Document ID of the CollectionItem to remove from this Collection if this is an indexed document. DeleteCollectionItemResponse: properties: collection: $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. EditCollectionRequest: allOf: - $ref: "#/components/schemas/CollectionMutableProperties" - type: object required: - id properties: id: type: integer description: The ID of the Collection to modify. EditCollectionResponse: allOf: - $ref: "#/components/schemas/Collection" - $ref: "#/components/schemas/CollectionError" - type: object properties: collection: $ref: "#/components/schemas/Collection" error: $ref: "#/components/schemas/CollectionError" EditCollectionItemRequest: required: - collectionId - itemId allOf: - $ref: "#/components/schemas/CollectionItemMutableProperties" - type: object properties: collectionId: type: integer description: The ID of the Collection to edit CollectionItems in. itemId: type: string description: The ID of the CollectionItem to edit. EditCollectionItemResponse: properties: collection: $ref: "#/components/schemas/Collection" description: The modified Collection. Only CollectionItemMutableProperties are set for each item. GetCollectionRequest: required: - id properties: id: type: integer description: The ID of the Collection to be retrieved. withItems: type: boolean description: Whether or not to include the Collection Items in this Collection. Only request if absolutely required, as this is expensive. withHierarchy: type: boolean description: Whether or not to include the top level Collection in this Collection's hierarchy. allowedDatasource: type: string description: The datasource allowed in the Collection returned. GetCollectionResponse: properties: collection: $ref: "#/components/schemas/Collection" rootCollection: $ref: "#/components/schemas/Collection" error: $ref: "#/components/schemas/CollectionError" trackingToken: type: string description: Use `collection.trackingToken` instead. deprecated: true x-glean-deprecated: id: 2d6ca3a7-4763-4137-9ebd-740568fe8300 introduced: "2026-05-07" message: Use `collection.trackingToken` instead. removal: "2027-01-15" x-speakeasy-deprecation-message: "Deprecated on 2026-05-07, removal scheduled for 2027-01-15: Use `collection.trackingToken` instead." ListCollectionsRequest: properties: includeAudience: type: boolean description: Whether to include the audience filters with the listed Collections. includeRoles: type: boolean description: Whether to include the editor roles with the listed Collections. allowedDatasource: type: string description: |- The datasource type this Collection can hold. ANSWERS - for Collections representing answer boards ListCollectionsResponse: required: - collections properties: collections: type: array items: $ref: "#/components/schemas/Collection" description: List of all Collections, no Collection items are fetched. GetDocPermissionsRequest: type: object properties: documentId: type: string description: The Glean Document ID to retrieve permissions for. GetDocPermissionsResponse: type: object properties: allowedUserEmails: type: array items: type: string description: A list of emails of users who have access to the document. If the document is visible to all Glean users, a list with only a single value of 'VISIBLE_TO_ALL'. GetDocumentsRequest: required: - documentSpecs properties: documentSpecs: type: array items: $ref: "#/components/schemas/DocumentSpec" description: The specification for the documents to be retrieved. includeFields: description: List of Document fields to return (that aren't returned by default) type: array items: type: string enum: - LAST_VIEWED_AT - VISITORS_COUNT - RECENT_SHARES - DOCUMENT_CONTENT - CUSTOM_METADATA DocumentOrError: x-omit-error-on-success: true oneOf: - $ref: "#/components/schemas/Document" - type: object required: - error properties: error: type: string description: The text for error, reason. x-is-error-field: true GetDocumentsResponse: properties: documents: type: object additionalProperties: $ref: "#/components/schemas/DocumentOrError" description: The document details or the error if document is not found. GetDocumentsByFacetsRequest: required: - filterSets properties: datasourcesFilter: type: array items: type: string description: Filter results to one or more datasources (e.g. gmail, slack). All results are returned if missing. filterSets: type: array items: $ref: "#/components/schemas/FacetFilterSet" description: A list of facet filter sets that will be OR'ed together. An AND is assumed between different filters in each set. cursor: type: string description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. GetDocumentsByFacetsResponse: properties: documents: type: array items: $ref: "#/components/schemas/Document" description: The document details, ordered by score. hasMoreResults: type: boolean description: Whether more results are available. Use cursor to retrieve them. cursor: type: string description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. InsightsOverviewRequest: properties: departments: type: array items: type: string description: Departments for which Insights are requested. managerEmails: type: array items: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. InsightsAssistantRequest: properties: departments: type: array items: type: string description: Departments for which Insights are requested. managerEmails: type: array items: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. AgentsInsightsV2Request: properties: agentIds: type: array items: type: string description: IDs of the Agents for which Insights should be returned. An empty array signifies all. departments: type: array items: type: string description: Departments for which Insights are requested. managerEmails: type: array items: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. McpInsightsRequest: properties: departments: type: array items: type: string description: Departments for which Insights are requested. managerIds: type: array items: type: string description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. managerEmails: type: array items: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. McpBreakdownInsightsRequest: properties: departments: type: array items: type: string description: Departments for which Insights are requested. managerIds: type: array items: type: string description: Manager user IDs whose teams should be filtered for. Empty array means no filtering. managerEmails: type: array items: type: string description: Manager emails whose teams should be filtered for. Empty array means no filtering. dayRange: $ref: "#/components/schemas/Period" description: Time period for which Insights are requested. breakdownType: type: string enum: - USERS - HOST_APPLICATIONS - TOOLS - SERVERS description: Type of breakdown to return. hostApplications: type: array items: type: string description: Host applications to filter by. Empty array means all host applications. tools: type: array items: type: string description: MCP tools to filter by. Empty array means all tools. servers: type: array items: type: string description: MCP servers to filter by. Empty array means all servers. InsightsRequest: properties: overviewRequest: $ref: "#/components/schemas/InsightsOverviewRequest" x-visibility: Public description: If specified, will return data for the Overview section of the Insights Dashboard. assistantRequest: $ref: "#/components/schemas/InsightsAssistantRequest" x-visibility: Public description: If specified, will return data for the Assistant section of the Insights Dashboard. agentsRequest: $ref: "#/components/schemas/AgentsInsightsV2Request" x-visibility: Public description: If specified, will return data for the Agents section of the Insights Dashboard. mcpRequest: $ref: "#/components/schemas/McpInsightsRequest" description: If specified, will return data for the MCP section of the Insights Dashboard. mcpBreakdownRequest: $ref: "#/components/schemas/McpBreakdownInsightsRequest" disablePerUserInsights: type: boolean description: If true, suppresses the generation of per-user Insights in the response. Default is false. UserActivityInsight: required: - user - activity properties: user: $ref: "#/components/schemas/Person" activity: type: string enum: - ALL - SEARCH description: Activity e.g. search, home page visit or all. lastActivityTimestamp: type: integer description: Unix timestamp of the last activity (in seconds since epoch UTC). activityCount: $ref: "#/components/schemas/CountInfo" activeDayCount: $ref: "#/components/schemas/CountInfo" GleanAssistInsightsResponse: properties: lastLogTimestamp: type: integer description: Unix timestamp of the last activity processed to make the response (in seconds since epoch UTC). activityInsights: type: array items: $ref: "#/components/schemas/UserActivityInsight" description: Insights for all active users with respect to set of actions. totalActiveUsers: type: integer description: Total number of active users in the requested period. datasourceInstances: type: array items: type: string description: List of datasource instances for which glean assist is enabled. departments: type: array items: type: string description: List of departments applicable for users tab. CurrentActiveUsers: properties: monthlyActiveUsers: type: integer description: Number of current Monthly Active Users. weeklyActiveUsers: type: integer description: Number of current Weekly Active Users. InsightsSearchSummary: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: numSearches: type: integer description: Total number of searches by users over the specified time period. numSearchUsers: type: integer description: Total number of distinct users who searched over the specified time period. InsightsChatSummary: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: numChats: type: integer description: Total number of chats by users over the specified time period. numChatUsers: type: integer description: Total number of distinct users who used Chat over the specified time period. InsightsDepartmentsSummary: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: departments: type: array items: type: string description: Department name(s). employeeCount: type: integer description: Number of current employees in the specified departments, according to the Org Chart. totalSignups: type: integer description: Number of current signed up employees in the specified departments, according to the Org Chart. searchSummary: $ref: "#/components/schemas/InsightsSearchSummary" chatSummary: $ref: "#/components/schemas/InsightsChatSummary" searchActiveUsers: $ref: "#/components/schemas/CurrentActiveUsers" description: Search-specific active user counts for the specified departments. assistantActiveUsers: $ref: "#/components/schemas/CurrentActiveUsers" description: Assistant-specific active user counts for the specified departments. agentsActiveUsers: $ref: "#/components/schemas/CurrentActiveUsers" description: Agents-specific active user counts for the specified departments. mcpActiveUsers: $ref: "#/components/schemas/CurrentActiveUsers" description: MCP active user counts for the specified departments. extensionSummary: $ref: "#/components/schemas/CurrentActiveUsers" ugcSummary: $ref: "#/components/schemas/CurrentActiveUsers" LabeledCountInfo: required: - label properties: label: type: string description: Label for the included count information. countInfo: type: array items: $ref: "#/components/schemas/CountInfo" description: List of data points for counts for a given date period. PerUserInsight: properties: person: $ref: "#/components/schemas/Person" numSearches: type: integer description: Total number of searches by this user over the specified time period. numChats: type: integer description: Total number of chats by this user over the specified time period. numActiveSessions: type: integer description: Total number of active sessions by this user in a Glean client over the specified time period. numGleanbotUsefulResponses: type: integer description: Total number of Gleanbot responses marked useful by this user over the specified time period. numDaysActive: type: integer description: Total number of days this user was an Active User over the specified time period. numSummarizations: type: integer description: Total number of summarized items by this user over the specified time period. numAiAnswers: type: integer description: Total number of AI Answers interacted with by this user over the specified time period. numAgentRuns: type: integer description: Total number of agent runs for this user over the specified time period. numMcpCalls: type: integer description: Total number of MCP calls for this user over the specified time period. InsightsOverviewResponse: allOf: - $ref: "#/components/schemas/InsightsDepartmentsSummary" - type: object properties: lastUpdatedTs: type: integer description: Unix timestamp of the last update for the insights data in the response. searchSessionSatisfaction: type: number format: float description: Search session satisfaction rate, over the specified time period in the specified departments. deprecated: true x-glean-deprecated: id: 2652ea73-3e33-4409-ba8c-bda7b60a2c24 introduced: "2026-05-13" message: This property is no longer supported. Please contact Support for alternatives. removal: "2027-01-15" x-speakeasy-deprecation-message: "Deprecated on 2026-05-13, removal scheduled for 2027-01-15: This property is no longer supported. Please contact Support for alternatives." monthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" searchMonthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" searchWeeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" searchDailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" assistantMonthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" assistantWeeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" assistantDailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" agentsMonthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" agentsWeeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" agentsDailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" mcpMonthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" mcpWeeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" mcpDailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" searchesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" assistantInteractionsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" agentRunsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" mcpCallsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" searchDatasourceCounts: type: object additionalProperties: type: integer description: Counts of search result clicks, by datasource, over the specified time period in the specified departments. chatDatasourceCounts: type: object additionalProperties: type: integer description: Counts of cited documents in chat, by datasource, over the specified time period in the specified departments. perUserInsights: type: array items: $ref: "#/components/schemas/PerUserInsight" description: Per-user insights, over the specified time period in the specified departments. All current users in the organization who have signed into Glean at least once are included. PerUserAssistantInsight: properties: person: $ref: "#/components/schemas/Person" numChatMessages: type: integer description: Total number of chat messages sent by this user over the specified time period. numSummarizations: type: integer description: Total number of summarized items by this user over the specified time period. numAiAnswers: type: integer description: Total number of AI Answers interacted with by this user over the specified time period. numGleanbotInteractions: type: integer description: Total number of Gleanbot responses marked useful by this user over the specified time period. numDaysActive: type: integer description: Total number of days this user was active on the Assistant over the specified time period. AssistantInsightsResponse: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: lastUpdatedTs: type: integer description: Unix timestamp of the last update for the insights data in the response. monthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" totalSignups: type: integer description: Number of current signed up employees in the specified departments, according to the Org Chart. chatMessagesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" summarizationsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" aiAnswersTimeseries: $ref: "#/components/schemas/LabeledCountInfo" gleanbotInteractionsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" perUserInsights: type: array items: $ref: "#/components/schemas/PerUserAssistantInsight" upvotesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" downvotesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" PerAgentInsight: properties: agentId: type: string description: Agent ID agentName: type: string description: Agent name icon: $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean description: Indicates whether the agent has been deleted userCount: type: integer description: Total number of users for this agent over the specified time period. runCount: type: integer description: Total number of runs for this agent over the specified time period. upvoteCount: type: integer description: Total number of upvotes for this agent over the specified time period. downvoteCount: type: integer description: Total number of downvotes for this agent over the specified time period. owner: $ref: "#/components/schemas/Person" description: | The creator/owner of the agent. Absent if agent is deleted or owner is unknown. AgentUseCaseInsight: properties: useCase: type: string description: Use case name runCount: type: integer description: Total number of runs for this use case over the specified time period. trend: type: number format: float description: Percentage change in runs compared to the previous equivalent time period. topDepartments: type: string description: Comma-separated list of the top departments using this use case. topAgentId: type: string description: ID of the most-used agent for this use case. topAgentName: type: string description: Name of the most-used agent for this use case. topAgentIcon: $ref: "#/components/schemas/IconConfig" description: Icon of the most-used agent for this use case. topAgentIsDeleted: type: boolean description: Indicates whether the top agent has been deleted. AgentsUsageByDepartmentInsight: properties: department: type: string description: Name of the department agentAdoptionRate: type: number format: float description: Percentage of employees in the department who have used agents at least once over the specified time period. userCount: type: integer description: Total number of users in this department who have used any agent over the specified time period. runCount: type: integer description: Total number of runs in this department over the specified time period. agentId: type: string description: ID of the agent to be shown in the agent column in this department over the specified time period. agentName: type: string description: Name of the agent to be shown in the agent column in this department over the specified time period. icon: $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean description: Indicates whether the agent has been deleted AgentUsersInsight: properties: person: $ref: "#/components/schemas/Person" departmentName: type: string description: Department name agentsUsedCount: type: integer description: Total number of agents used by this user over the specified time period. averageRunsPerDayCount: type: number format: float description: Average number of runs per day for this user over the specified time period. agentsCreatedCount: type: integer description: Total number of agents created by this user over the specified time period. runCount: type: integer description: Total number of agent runs for this user over the specified time period. AgentsTimeSavedInsight: properties: agentId: type: string description: Agent ID agentName: type: string description: Agent name icon: $ref: "#/components/schemas/IconConfig" description: Agent icon configuration isDeleted: type: boolean description: Indicates whether the agent has been deleted runCount: type: integer description: Total number of runs for this agent over the specified time period. minsPerRun: type: number format: float description: Average minutes saved per run for this agent over the specified time period. feedbackUserCount: type: integer description: Total number of users who provided feedback on time saved for this agent over the specified time period. AgentsInsightsV2Response: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: monthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" sharedAgentsCount: type: integer description: Total number of shared agents. topAgentsInsights: type: array items: $ref: "#/components/schemas/PerAgentInsight" topUseCasesInsights: type: array items: $ref: "#/components/schemas/AgentUseCaseInsight" agentsUsageByDepartmentInsights: type: array items: $ref: "#/components/schemas/AgentsUsageByDepartmentInsight" agentUsersInsights: type: array items: $ref: "#/components/schemas/AgentUsersInsight" agentsTimeSavedInsights: type: array items: $ref: "#/components/schemas/AgentsTimeSavedInsight" description: Insights for agents time saved over the specified time period. dailyAgentRunsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" successfulRunsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" failedRunsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" pausedRunsTimeseries: $ref: "#/components/schemas/LabeledCountInfo" upvotesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" downvotesTimeseries: $ref: "#/components/schemas/LabeledCountInfo" McpInsightsResponse: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" - type: object properties: dailyActiveUsers: type: integer description: Number of current Daily Active Users. monthlyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" weeklyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" dailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" overallDailyActiveUserTimeseries: $ref: "#/components/schemas/LabeledCountInfo" topHostApplicationsActiveUserTimeseries: type: array items: $ref: "#/components/schemas/LabeledCountInfo" McpUserBreakdown: properties: person: $ref: "#/components/schemas/Person" totalCalls: type: integer description: Total number of MCP calls made by this user in the specified time period. hostApplications: type: array items: type: string description: Host applications used by this user in the specified time period. tools: type: array items: type: string description: MCP tools used by this user in the specified time period. servers: type: array items: type: string description: MCP servers used by this user in the specified time period. McpHostApplicationBreakdown: properties: hostApplication: type: string description: Host application name. totalCalls: type: integer description: Total number of MCP calls made from this host application in the specified time period. activeUsers: type: integer description: Total number of active users from this host application in the specified time period. McpToolBreakdown: properties: tool: type: string description: MCP tool name. totalCalls: type: integer description: Total number of MCP calls for this tool in the specified time period. activeUsers: type: integer description: Total number of active users for this tool in the specified time period. hostApplications: type: array items: type: string description: Host applications using this tool in the specified time period. McpServerBreakdown: properties: server: type: string description: MCP server name. totalCalls: type: integer description: Total number of MCP calls for this server in the specified time period. activeUsers: type: integer description: Total number of active users for this server in the specified time period. hostApplications: type: array items: type: string description: Host applications using this server in the specified time period. McpBreakdownInsightsResponse: properties: usersBreakdown: type: array items: $ref: "#/components/schemas/McpUserBreakdown" hostApplicationsBreakdown: type: array items: $ref: "#/components/schemas/McpHostApplicationBreakdown" toolsBreakdown: type: array items: $ref: "#/components/schemas/McpToolBreakdown" serversBreakdown: type: array items: $ref: "#/components/schemas/McpServerBreakdown" InsightsResponse: properties: gleanAssist: deprecated: true $ref: "#/components/schemas/GleanAssistInsightsResponse" x-glean-deprecated: id: 15850758-4d95-4d98-8d57-39c50663a796 introduced: "2026-02-05" message: Field is deprecated removal: "2026-10-15" x-speakeasy-deprecation-message: "Deprecated on 2026-02-05, removal scheduled for 2026-10-15: Field is deprecated" overviewResponse: $ref: "#/components/schemas/InsightsOverviewResponse" assistantResponse: $ref: "#/components/schemas/AssistantInsightsResponse" agentsResponse: $ref: "#/components/schemas/AgentsInsightsV2Response" mcpResponse: $ref: "#/components/schemas/McpInsightsResponse" mcpBreakdownResponse: $ref: "#/components/schemas/McpBreakdownInsightsResponse" MessagesRequest: required: - id - idType - datasource properties: idType: type: string enum: - CHANNEL_NAME - THREAD_ID - CONVERSATION_ID description: Type of the id in the incoming request. id: type: string description: ID corresponding to the requested idType. Note that channel and threads are represented by the underlying datasource's ID and conversations are represented by their document's ID. workspaceId: type: string description: Id for the for the workspace in case of multiple workspaces. direction: type: string enum: - OLDER - NEWER description: The direction of the results asked with respect to the reference timestamp. Missing field defaults to OLDER. Only applicable when using a message_id. timestampMillis: type: integer format: int64 description: Timestamp in millis of the reference message. Only applicable when using a message_id. includeRootMessage: type: boolean description: Whether to include root message in response. datasource: type: string enum: - SLACK - SLACKENTGRID - MICROSOFTTEAMS - GCHAT - FACEBOOKWORKPLACE description: The type of the data source. datasourceInstanceDisplayName: type: string description: The datasource instance display name from which the document was extracted. This is used for appinstance facet filter for datasources that support multiple instances. InvalidOperatorValueError: properties: key: description: The operator key that has an invalid value. type: string value: description: The invalid operator value. type: string ErrorMessage: properties: source: description: The datasource this message relates to. type: string errorMessage: type: string ErrorInfo: properties: badGmailToken: type: boolean description: Indicates the gmail results could not be fetched due to bad token. badOutlookToken: type: boolean description: Indicates the outlook results could not be fetched due to bad token. invalidOperators: type: array description: Indicates results could not be fetched due to invalid operators in the query. items: $ref: "#/components/schemas/InvalidOperatorValueError" errorMessages: type: array items: $ref: "#/components/schemas/ErrorMessage" federatedSearchRateLimitError: type: boolean description: Indicates the federated search results could not be fetched due to rate limiting. ResultsResponse: properties: trackingToken: type: string description: A token that should be passed for additional requests related to this request (such as more results requests). sessionInfo: $ref: "#/components/schemas/SessionInfo" results: type: array items: $ref: "#/components/schemas/SearchResult" structuredResults: type: array items: $ref: "#/components/schemas/StructuredResult" generatedQnaResult: $ref: "#/components/schemas/GeneratedQna" errorInfo: $ref: "#/components/schemas/ErrorInfo" requestID: type: string description: A platform-generated request ID to correlate backend logs. backendTimeMillis: type: integer format: int64 description: Time in milliseconds the backend took to respond to the request. example: 1100 BackendExperimentsContext: properties: experimentIds: type: array items: type: integer format: int64 description: List of experiment ids for the corresponding request. SearchWarning: required: - warningType properties: warningType: type: string enum: - LONG_QUERY - QUOTED_PUNCTUATION - PUNCTUATION_ONLY - COPYPASTED_QUOTES - INVALID_OPERATOR - MAYBE_INVALID_FACET_QUERY - TOO_MANY_DATASOURCE_GROUPS description: The type of the warning. lastUsedTerm: type: string description: The last term we considered in the user's long query. quotesIgnoredQuery: type: string description: The query after ignoring/removing quotes. ignoredTerms: type: array items: type: string description: A list of query terms that were ignored when generating search results, if any. For example, terms containing invalid filters such as "updated:invalid_date" will be ignored. SearchResponseMetadata: properties: rewrittenQuery: type: string description: A cleaned up or updated version of the query to be displayed in the query box. Useful for mapping visual facets to search operators. searchedQuery: type: string description: The actual query used to perform search and return results. searchedQueryWithoutNegation: type: string description: The query used to perform search and return results, with negated terms and facets removed. x-includeEmpty: true searchedQueryRanges: type: array items: $ref: "#/components/schemas/TextRange" description: The bolded ranges within the searched query. originalQuery: type: string description: The query text sent by the client in the request. querySuggestion: $ref: "#/components/schemas/QuerySuggestion" description: An alternative query to the one provided that may give better results, e.g. a spelling suggestion. additionalQuerySuggestions: $ref: "#/components/schemas/QuerySuggestionList" description: Other alternative queries that may provide better or more specific results than the original query. negatedTerms: type: array items: type: string description: A list of terms that were negated when processing the query. modifiedQueryWasUsed: type: boolean description: A different query was performed than the one requested. originalQueryHadNoResults: type: boolean description: No results were found for the original query. The usage of this bit in conjunction with modifiedQueryWasUsed will dictate whether the full page replacement is 0-result or few-result based. searchWarning: $ref: "#/components/schemas/SearchWarning" triggeredExpertDetection: type: boolean description: Whether the query triggered expert detection results in the People tab. isNoQuotesSuggestion: type: boolean description: Whether the query was modified to remove quotes FacetValue: properties: stringValue: type: string example: engineering description: The value that should be set in the FacetFilter when applying this filter to a search request. integerValue: type: integer example: 5 displayLabel: type: string example: engineering description: An optional user-friendly label to display in place of the facet value. iconConfig: $ref: "#/components/schemas/IconConfig" FacetBucket: properties: count: type: integer description: Estimated number of results in this facet. example: 1 datasource: type: string example: jira description: The datasource the value belongs to. This will be used by the all tab to show types across all datasources. percentage: type: integer description: Estimated percentage of results in this facet. example: 5 value: $ref: "#/components/schemas/FacetValue" FacetResult: properties: sourceName: type: string description: The source of this facet (e.g. container_name, type, last_updated_at). example: container_name operatorName: type: string description: How to display this facet. Currently supportes 'SelectSingle' and 'SelectMultiple'. example: SelectMultiple buckets: type: array description: A list of unique buckets that exist within this result set. items: $ref: "#/components/schemas/FacetBucket" hasMoreBuckets: type: boolean description: Returns true if more buckets exist than those returned. Additional buckets can be retrieve by requesting again with a higher facetBucketSize. example: false groupName: type: string description: For most facets this will be the empty string, meaning the facet is high-level and applies to all documents for the datasource. When non-empty, this is used to group facets together (i.e. group facets for each doctype for a certain datasource) example: Service Cloud ResultsDescription: properties: text: type: string description: Textual description of the results. Can be shown at the top of SERP, e.g. 'People who write about this topic' for experts in people tab. iconConfig: $ref: "#/components/schemas/IconConfig" description: The config for the icon that's displayed with this description SearchResponse: allOf: - $ref: "#/components/schemas/ResultsResponse" - $ref: "#/components/schemas/BackendExperimentsContext" - type: object properties: metadata: $ref: "#/components/schemas/SearchResponseMetadata" facetResults: type: array items: $ref: "#/components/schemas/FacetResult" resultTabs: type: array items: $ref: "#/components/schemas/ResultTab" description: All result tabs available for the current query. Populated if QUERY_METADATA is specified in the request. resultTabIds: type: array items: type: string description: The unique IDs of the result tabs to which this response belongs. resultsDescription: $ref: "#/components/schemas/ResultsDescription" rewrittenFacetFilters: type: array items: $ref: "#/components/schemas/FacetFilter" description: The actual applied facet filters based on the operators and facetFilters in the query. Useful for mapping typed operators to visual facets. cursor: type: string description: Cursor that indicates the start of the next page of results. To be passed in "more" requests for this query. hasMoreResults: type: boolean description: Whether more results are available. Use cursor to retrieve them. example: trackingToken: trackingToken suggestedSpellCorrectedQuery: suggestedSpellCorrectedQuery hasMoreResults: true errorInfo: errorMessages: - source: gmail errorMessage: invalid token - source: slack errorMessage: expired token requestID: 5e345ae500ff0befa2b9d1a3ba0001737e7363696f312d323535323137000171756572792d656e64706f696e743a323032303031333074313830343032000100 results: - snippets: - snippet: snippet mimeType: mimeType metadata: container: container createTime: "2000-01-23T04:56:07.000Z" datasource: datasource author: name: name documentId: documentId updateTime: "2000-01-23T04:56:07.000Z" mimeType: mimeType objectType: objectType title: title url: https://www.example.com/ - snippets: - snippet: snippet mimeType: mimeType metadata: container: container createTime: "2000-01-23T04:56:07.000Z" datasource: datasource author: name: name documentId: documentId updateTime: "2000-01-23T04:56:07.000Z" mimeType: mimeType objectType: objectType title: title url: https://www.example.com/ facetResults: - buckets: - percentage: 5 count: 1 value: stringValue: stringValue integerValue: 5 - percentage: 5 count: 1 value: stringValue: stringValue integerValue: 5 sourceName: sourceName operatorName: operatorName objectType: objectType - buckets: - percentage: 5 count: 1 value: stringValue: stringValue integerValue: 5 - percentage: 5 count: 1 value: stringValue: stringValue integerValue: 5 sourceName: sourceName operatorName: operatorName objectType: objectType rewrittenQuery: rewrittenQuery rewrittenFacetFilters: - fieldName: fieldName values: - fieldValues - fieldValues - fieldName: fieldName values: - fieldValues - fieldValues MessagesResponse: required: - hasMore properties: hasMore: type: boolean description: Whether there are more results for client to continue requesting. searchResponse: $ref: "#/components/schemas/SearchResponse" rootMessage: $ref: "#/components/schemas/SearchResult" EditPinRequest: allOf: - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object properties: id: type: string description: The opaque id of the pin to be edited. GetPinRequest: properties: id: type: string description: The opaque id of the pin to be fetched. GetPinResponse: properties: pin: $ref: "#/components/schemas/PinDocument" ListPinsResponse: required: - pins properties: pins: type: array items: $ref: "#/components/schemas/PinDocument" description: List of pinned documents. PinRequest: allOf: - $ref: "#/components/schemas/PinDocumentMutableProperties" - type: object properties: documentId: type: string description: The document to be pinned. Unpin: properties: id: type: string description: The opaque id of the pin to be unpinned. ResultsRequest: properties: timestamp: type: string description: The ISO 8601 timestamp associated with the client request. format: date-time trackingToken: type: string description: A previously received trackingToken for a search associated with the same query. Useful for more requests and requests for other tabs. sessionInfo: $ref: "#/components/schemas/SessionInfo" sourceDocument: $ref: "#/components/schemas/Document" description: The document from which the ResultsRequest is issued, if any. pageSize: type: integer example: 100 description: Hint to the server about how many results to send back. Server may return less or more. Structured results and clustered results don't count towards pageSize. maxSnippetSize: type: integer description: Hint to the server about how many characters long a snippet may be. Server may return less or more. example: 400 SearchRequest: required: - query allOf: - $ref: "#/components/schemas/ResultsRequest" - type: object properties: query: type: string description: The search terms. example: vacation policy cursor: type: string description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. resultTabIds: type: array items: type: string description: The unique IDs of the result tabs for which to fetch results. This will have precedence over datasource filters if both are specified and in conflict. inputDetails: $ref: "#/components/schemas/SearchRequestInputDetails" requestOptions: $ref: "#/components/schemas/SearchRequestOptions" timeoutMillis: type: integer description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. example: 5000 disableSpellcheck: type: boolean description: Whether or not to disable spellcheck. example: trackingToken: trackingToken query: vacation policy pageSize: 10 requestOptions: facetFilters: - fieldName: type values: - value: article relationType: EQUALS - value: document relationType: EQUALS - fieldName: department values: - value: engineering relationType: EQUALS AutocompleteRequest: type: object properties: trackingToken: type: string sessionInfo: $ref: "#/components/schemas/SessionInfo" query: type: string description: Partially typed query. example: San Fra datasourcesFilter: type: array items: type: string description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). Results are unfiltered if missing. datasource: type: string description: Filter to only return results relevant to the given datasource. resultTypes: type: array description: Filter to only return results of the given type(s). All types may be returned if omitted. items: type: string enum: - ADDITIONAL_DOCUMENT - APP - BROWSER_HISTORY - DATASOURCE - DOCUMENT - ENTITY - GOLINK - HISTORY - CHAT_HISTORY - NEW_CHAT - OPERATOR - OPERATOR_VALUE - QUICKLINK - SUGGESTION resultSize: type: integer description: | Maximum number of results to be returned. If no value is provided, the backend will cap at 200. example: 10 authTokens: type: array description: Auth tokens which may be used for federated results. items: $ref: "#/components/schemas/AuthToken" example: trackingToken: trackingToken query: what is a que datasource: GDRIVE resultSize: 10 OperatorScope: properties: datasource: type: string docType: type: string OperatorMetadata: required: - name properties: name: type: string isCustom: type: boolean description: Whether this operator is supported by default or something that was created within a workplace app (e.g. custom jira field). operatorType: type: string enum: - TEXT - DOUBLE - DATE - USER helpText: type: string scopes: type: array items: $ref: "#/components/schemas/OperatorScope" value: type: string description: Raw/canonical value of the operator. Only applies when result is an operator value. displayValue: type: string description: Human readable value of the operator that can be shown to the user. Only applies when result is an operator value. example: name: Last Updated operatorType: DATE scopes: - datasource: GDRIVE docType: Document - datasource: ZENDESK Quicklink: description: An action for a specific datasource that will show up in autocomplete and app card, e.g. "Create new issue" for jira. properties: name: type: string description: Full action name. Used in autocomplete. shortName: type: string description: Shortened name. Used in app cards. url: type: string description: The URL of the action. iconConfig: $ref: "#/components/schemas/IconConfig" description: The config for the icon for this quicklink id: type: string description: Unique identifier of this quicklink scopes: type: array description: The scopes for which this quicklink is applicable items: type: string enum: - APP_CARD - AUTOCOMPLETE_EXACT_MATCH - AUTOCOMPLETE_FUZZY_MATCH - AUTOCOMPLETE_ZERO_QUERY - NEW_TAB_PAGE AutocompleteResult: required: - result - result_type properties: result: type: string keywords: type: array items: type: string description: A list of all possible keywords for given result. resultType: type: string enum: - ADDITIONAL_DOCUMENT - APP - BROWSER_HISTORY - DATASOURCE - DOCUMENT - ENTITY - GOLINK - HISTORY - CHAT_HISTORY - NEW_CHAT - OPERATOR - OPERATOR_VALUE - QUICKLINK - SUGGESTION score: type: number description: Higher indicates a more confident match. operatorMetadata: $ref: "#/components/schemas/OperatorMetadata" quicklink: $ref: "#/components/schemas/Quicklink" document: $ref: "#/components/schemas/Document" url: type: string structuredResult: $ref: "#/components/schemas/StructuredResult" trackingToken: type: string description: A token to be passed in /feedback events associated with this autocomplete result. ranges: type: array items: $ref: "#/components/schemas/TextRange" description: Subsections of the result string to which some special formatting should be applied (eg. bold) example: result: sample result resultType: DOCUMENT score: 4.56 url: https://www.example.com/ trackingToken: abcd metadata: - datasource: confluence - objectType: page AutocompleteResultGroup: description: A subsection of the results list from which distinct sections should be created. properties: startIndex: type: integer description: The inclusive start index of the range. endIndex: type: integer description: The exclusive end index of the range. title: type: string description: The title of the result group to be displayed. Empty means no title. AutocompleteResponse: allOf: - $ref: "#/components/schemas/BackendExperimentsContext" - type: object properties: trackingToken: type: string description: An opaque token that represents this particular set of autocomplete results. To be used for /feedback reporting. sessionInfo: $ref: "#/components/schemas/SessionInfo" results: type: array items: $ref: "#/components/schemas/AutocompleteResult" groups: type: array items: $ref: "#/components/schemas/AutocompleteResultGroup" description: Subsections of the results list from which distinct sections should be created. errorInfo: $ref: "#/components/schemas/ErrorInfo" backendTimeMillis: type: integer format: int64 description: Time in milliseconds the backend took to respond to the request. example: 1100 example: trackingToken: trackingToken ChatZeroStateSuggestionOptions: properties: applicationId: type: string description: The Chat Application ID this feed request should be scoped to. Empty means there is no Chat Application ID.. FeedRequestOptions: required: - resultSize properties: resultSize: type: integer description: Number of results asked in response. If a result is a collection, counts as one. timezoneOffset: type: integer description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. categoryToResultSize: type: object additionalProperties: type: object properties: resultSize: type: integer description: Mapping from category to number of results asked for the category. datasourceFilter: type: array items: type: string description: Datasources for which content should be included. Empty is for all. chatZeroStateSuggestionOptions: $ref: "#/components/schemas/ChatZeroStateSuggestionOptions" FeedRequest: required: - refreshType properties: categories: type: array items: type: string enum: - DOCUMENT_SUGGESTION - DOCUMENT_SUGGESTION_SCENARIO - TRENDING_DOCUMENT - VERIFICATION_REMINDER - EVENT - ANNOUNCEMENT - MENTION - DATASOURCE_AFFINITY - RECENT - COMPANY_RESOURCE - EXPERIMENTAL - PEOPLE_CELEBRATIONS - DISPLAYABLE_LIST - SOCIAL_LINK - EXTERNAL_TASKS - WORKFLOW_COLLECTIONS - ZERO_STATE_CHAT_SUGGESTION - ZERO_STATE_CHAT_TOOL_SUGGESTION - ZERO_STATE_WORKFLOW_CREATED_BY_ME - ZERO_STATE_WORKFLOW_FAVORITES - ZERO_STATE_WORKFLOW_POPULAR - ZERO_STATE_WORKFLOW_RECENT - ZERO_STATE_WORKFLOW_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION - DAILY_DIGEST - PODCAST - TASK - PLAN_MY_DAY - END_MY_DAY - STARTER_KIT - MID_DAY_CATCH_UP - QUERY_SUGGESTION - COWORK_CUJ_PROMO - CARD_STACK_PROMO - WEEKLY_MEETINGS - FOLLOW_UP - MILESTONE_TIMELINE_CHECK - PROJECT_DISCUSSION_DIGEST - PROJECT_FOCUS_BLOCK - PROJECT_NEXT_STEP - DEMO_CARD - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: $ref: "#/components/schemas/FeedRequestOptions" timeoutMillis: type: integer description: Timeout in milliseconds for the request. A `408` error will be returned if handling the request takes longer. example: 5000 sessionInfo: $ref: "#/components/schemas/SessionInfo" DisplayableListFormat: properties: format: type: string enum: - LIST description: defines how to render this particular displayable list card DisplayableListItemUIConfig: type: object description: UI configurations for each item of the list properties: showNewIndicator: type: boolean description: show a "New" pill next to the item ConferenceData: required: - provider - uri properties: provider: type: string enum: - ZOOM - HANGOUTS uri: type: string description: A permalink for the conference. source: type: string enum: - NATIVE_CONFERENCE - LOCATION - DESCRIPTION EventClassificationName: description: The name for a generated classification of an event. type: string enum: - External Event EventStrategyName: type: string description: The name of method used to surface relevant data for a given calendar event. enum: - customerCard - news - call - email - meetingNotes - linkedIn - relevantDocuments - chatFollowUps - conversations EventClassification: description: A generated classification of a given event. properties: name: $ref: "#/components/schemas/EventClassificationName" strategies: type: array items: $ref: "#/components/schemas/EventStrategyName" StructuredLink: description: The display configuration for a link. properties: name: type: string description: The display name for the link url: type: string description: The URL for the link. iconConfig: $ref: "#/components/schemas/IconConfig" GeneratedAttachmentContent: description: Content that has been generated or extrapolated from the documents present in the document field. properties: displayHeader: description: The header describing the generated content. type: string text: description: The content that has been generated. type: string example: displayHeader: Action Items content: You said you'd send over the design document after the meeting. GeneratedAttachment: description: These are attachments that aren't natively present on the event, and have been smartly suggested. properties: strategyName: $ref: "#/components/schemas/EventStrategyName" documents: type: array items: $ref: "#/components/schemas/Document" person: $ref: "#/components/schemas/Person" customer: $ref: "#/components/schemas/Customer" externalLinks: description: A list of links to external sources outside of Glean. type: array items: $ref: "#/components/schemas/StructuredLink" content: type: array items: $ref: "#/components/schemas/GeneratedAttachmentContent" CalendarEvent: required: - id - url allOf: - $ref: "#/components/schemas/AnonymousEvent" - type: object properties: id: type: string description: The calendar event id url: type: string description: A permalink for this calendar event attendees: $ref: "#/components/schemas/CalendarAttendees" location: type: string description: The location that this event is taking place at. conferenceData: $ref: "#/components/schemas/ConferenceData" description: type: string description: The HTML description of the event. datasource: type: string description: The app or other repository type from which the event was extracted hasTranscript: type: boolean description: The event has a transcript associated with it enabling features like summarization transcriptUrl: type: string description: A link to the transcript of the event classifications: type: array items: $ref: "#/components/schemas/EventClassification" generatedAttachments: type: array items: $ref: "#/components/schemas/GeneratedAttachment" SectionType: type: string description: Type of the section. This defines how the section should be interpreted and rendered in the digest. x-enumDescriptions: CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. enum: - CHANNEL - MENTIONS - TOPIC x-speakeasy-enum-descriptions: CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. UpdateType: type: string description: Optional type classification for the update. x-enumDescriptions: ACTIONABLE: Updates that require user attention or action INFORMATIVE: Updates that are purely informational enum: - ACTIONABLE - INFORMATIVE x-speakeasy-enum-descriptions: ACTIONABLE: Updates that require user attention or action INFORMATIVE: Updates that are purely informational DigestUpdate: type: object properties: urls: type: array description: List of URLs for similar updates that are grouped together and rendered as a single update. items: type: string url: type: string description: URL link to the content or document. title: type: string description: Title or headline of the update. datasource: type: string description: Name or identifier of the data source (e.g., slack, confluence, etc.). summary: type: string description: Brief summary or description of the update content. type: $ref: "#/components/schemas/UpdateType" DigestSection: type: object required: - id - type - updates properties: id: type: string description: Unique identifier for the digest section. type: $ref: "#/components/schemas/SectionType" displayName: type: string description: Human-readable name for the digest section. channelName: type: string description: Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. channelType: type: string description: | Channel visibility/type for CHANNEL sections. For Slack this is typically one of PublicChannel, PrivateChannel. Omit if not applicable or unknown. instanceId: type: string description: Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. url: type: string description: Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. updates: type: array items: $ref: "#/components/schemas/DigestUpdate" description: List of updates within this digest section. Digest: type: object properties: podcastFileId: type: string description: Identifier for the podcast file generated from this digest content. podcastDuration: type: number format: float description: Duration of the podcast file in seconds. digestDate: type: string description: The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available. example: "2025-09-03" sections: type: array items: $ref: "#/components/schemas/DigestSection" description: Array of digest sections from which the podcast was created. ChatSuggestion: properties: query: type: string description: The actionable chat query to run when the user selects this suggestion. cta: type: string description: Button text to show for the suggestion action. feature: type: string description: Targeted Glean Chat feature for the suggestion. sourceDocumentIds: type: array items: type: string description: Document IDs that grounded the suggestion. PromptTemplateMutableProperties: required: - template properties: name: type: string description: The user-given identifier for this prompt template. template: type: string description: The actual template string. applicationId: type: string description: The Application Id the prompt template should be created under. Empty for default assistant. inclusions: $ref: "#/components/schemas/ChatRestrictionFilters" description: A list of filters which only allows the prompt template to access certain content. addedRoles: type: array description: A list of added user roles for the Workflow. items: $ref: "#/components/schemas/UserRoleSpecification" removedRoles: type: array description: A list of removed user roles for the Workflow. items: $ref: "#/components/schemas/UserRoleSpecification" PromptTemplate: allOf: - $ref: "#/components/schemas/PromptTemplateMutableProperties" - $ref: "#/components/schemas/PermissionedObject" - $ref: "#/components/schemas/AttributionProperties" - type: object properties: id: type: string description: Opaque id for this prompt template author: $ref: "#/components/schemas/Person" createTimestamp: type: integer description: Server Unix timestamp of the creation time. lastUpdateTimestamp: type: integer description: Server Unix timestamp of the last update time. lastUpdatedBy: $ref: "#/components/schemas/Person" roles: type: array description: A list of roles for this prompt template explicitly granted. items: $ref: "#/components/schemas/UserRoleSpecification" PromptTemplateResult: properties: promptTemplate: $ref: "#/components/schemas/PromptTemplate" trackingToken: type: string description: An opaque token that represents this prompt template favoriteInfo: $ref: "#/components/schemas/FavoriteInfo" runCount: $ref: "#/components/schemas/CountInfo" description: This tracks how many times this prompt template was run. If user runs a prompt template after modifying the original one, it still counts as a run for the original template. UserActivity: properties: actor: $ref: "#/components/schemas/Person" timestamp: type: integer description: Unix timestamp of the activity (in seconds since epoch UTC). action: type: string enum: - ADD - ADD_REMINDER - CLICK - COMMENT - DELETE - DISMISS - EDIT - MENTION - MOVE - OTHER - RESTORE - UNKNOWN - VERIFY - VIEW description: The action for the activity aggregateVisitCount: $ref: "#/components/schemas/CountInfo" FeedEntry: required: - title properties: entryId: type: string description: optional ID associated with a single feed entry (displayable_list_id) title: type: string description: Title for the result. Can be document title, event title and so on. thumbnail: $ref: "#/components/schemas/Thumbnail" createdBy: $ref: "#/components/schemas/Person" uiConfig: allOf: - $ref: "#/components/schemas/DisplayableListFormat" - type: object properties: additionalFlags: $ref: "#/components/schemas/DisplayableListItemUIConfig" justificationType: type: string enum: - FREQUENTLY_ACCESSED - RECENTLY_ACCESSED - TRENDING_DOCUMENT - VERIFICATION_REMINDER - SUGGESTED_DOCUMENT - EMPTY_STATE_SUGGESTION - FRECENCY_SCORED - SERVER_GENERATED - USE_CASE - UPDATE_SINCE_LAST_VIEW - RECENTLY_STARTED - EVENT - USER_MENTION - ANNOUNCEMENT - EXTERNAL_ANNOUNCEMENT - POPULARITY_BASED_TRENDING - COMPANY_RESOURCE - EVENT_DOCUMENT_FROM_CONTENT - EVENT_DOCUMENT_FROM_SEARCH - VISIT_AFFINITY_SCORED - SUGGESTED_APP - SUGGESTED_PERSON - ACTIVITY_HIGHLIGHT - SAVED_SEARCH - SUGGESTED_CHANNEL - PEOPLE_CELEBRATIONS - SOCIAL_LINK - ZERO_STATE_CHAT_SUGGESTION - ZERO_STATE_CHAT_TOOL_SUGGESTION - ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION - ZERO_STATE_STATIC_WORKFLOW_SUGGESTION - ZERO_STATE_AGENT_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION - DAILY_DIGEST - PODCAST - TASK - PLAN_MY_DAY - END_MY_DAY - STARTER_KIT_EXTENSION - STARTER_KIT_ORG_CHART - STARTER_KIT_ADD_DOC - MEETING_RECAP - ACTIVE_DISCUSSION - MID_DAY_CATCH_UP - QUERY_SUGGESTION - COWORK_CUJ_PROMO - CARD_STACK_PROMO - WEEKLY_MEETINGS - FOLLOW_UP - MILESTONE_TIMELINE_CHECK - PROJECT_DISCUSSION_DIGEST - PROJECT_FOCUS_BLOCK - PROJECT_NEXT_STEP - DEMO_CARD - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER description: Type of the justification. justification: type: string description: Server side generated justification string if server provides one. trackingToken: type: string description: An opaque token that represents this particular feed entry in this particular response. To be used for /feedback reporting. viewUrl: type: string description: View URL for the entry if based on links that are not documents in Glean. document: $ref: "#/components/schemas/Document" event: $ref: "#/components/schemas/CalendarEvent" announcement: $ref: "#/components/schemas/Announcement" digest: $ref: "#/components/schemas/Digest" collection: $ref: "#/components/schemas/Collection" collectionItem: $ref: "#/components/schemas/CollectionItem" person: $ref: "#/components/schemas/Person" app: $ref: "#/components/schemas/AppResult" chatSuggestion: $ref: "#/components/schemas/ChatSuggestion" promptTemplate: $ref: "#/components/schemas/PromptTemplateResult" workflow: $ref: "#/components/schemas/WorkflowResult" activities: type: array items: $ref: "#/components/schemas/UserActivity" description: List of activity where each activity has user, action, timestamp. documentVisitorCount: $ref: "#/components/schemas/CountInfo" FeedResult: required: - category - primaryEntry properties: category: type: string enum: - DOCUMENT_SUGGESTION - DOCUMENT_SUGGESTION_SCENARIO - TRENDING_DOCUMENT - USE_CASE - VERIFICATION_REMINDER - EVENT - ANNOUNCEMENT - MENTION - DATASOURCE_AFFINITY - RECENT - COMPANY_RESOURCE - EXPERIMENTAL - PEOPLE_CELEBRATIONS - SOCIAL_LINK - EXTERNAL_TASKS - DISPLAYABLE_LIST - ZERO_STATE_CHAT_SUGGESTION - ZERO_STATE_CHAT_TOOL_SUGGESTION - ZERO_STATE_WORKFLOW_CREATED_BY_ME - ZERO_STATE_WORKFLOW_FAVORITES - ZERO_STATE_WORKFLOW_POPULAR - ZERO_STATE_WORKFLOW_RECENT - ZERO_STATE_WORKFLOW_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION - DAILY_DIGEST - PODCAST - TASK - PLAN_MY_DAY - END_MY_DAY - STARTER_KIT - MID_DAY_CATCH_UP - QUERY_SUGGESTION - COWORK_CUJ_PROMO - CARD_STACK_PROMO - WEEKLY_MEETINGS - FOLLOW_UP - MILESTONE_TIMELINE_CHECK - PROJECT_DISCUSSION_DIGEST - PROJECT_FOCUS_BLOCK - PROJECT_NEXT_STEP - DEMO_CARD - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER description: Category of the result, one of the requested categories in incoming request. primaryEntry: $ref: "#/components/schemas/FeedEntry" secondaryEntries: type: array items: $ref: "#/components/schemas/FeedEntry" description: Secondary entries for the result e.g. suggested docs for the calendar, carousel. rank: type: integer description: Rank of the result. Rank is suggested by server. Client side rank may differ. placementReason: type: string enum: - ORGANIC - PROMO description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. FeedResponse: required: - serverTimestamp allOf: - $ref: "#/components/schemas/BackendExperimentsContext" - type: object properties: trackingToken: type: string description: An opaque token that represents this particular feed response. serverTimestamp: type: integer description: Server unix timestamp (in seconds since epoch UTC). results: type: array items: $ref: "#/components/schemas/FeedResult" facetResults: type: object additionalProperties: type: array items: $ref: "#/components/schemas/FacetResult" description: Map from category to the list of facets that can be used to filter the entry's content. mentionsTimeWindowInHours: type: integer description: The time window (in hours) used for generating user mentions. RecommendationsRequestOptions: properties: datasourceFilter: type: string description: Filter results to a single datasource name (e.g. gmail, slack). All results are returned if missing. datasourcesFilter: type: array items: type: string description: Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). All results are returned if missing. facetFilterSets: type: array items: $ref: "#/components/schemas/FacetFilterSet" description: A list of facet filter sets that will be OR'ed together. context: $ref: "#/components/schemas/Document" description: Content for either a new or unindexed document, or additional content for an indexed document, which may be used to generate recommendations. resultProminence: description: The types of prominence wanted in results returned. Default is any type. type: array items: $ref: "#/components/schemas/SearchResultProminenceEnum" RecommendationsRequest: allOf: - $ref: "#/components/schemas/ResultsRequest" - type: object properties: recommendationDocumentSpec: $ref: "#/components/schemas/DocumentSpec" description: Retrieve recommendations for this document. Glean Document ID is preferred over URL. requestOptions: $ref: "#/components/schemas/RecommendationsRequestOptions" description: Options for adjusting the request for recommendations. RecommendationsResponse: allOf: - $ref: "#/components/schemas/ResultsResponse" SortOptions: type: object properties: orderBy: type: string enum: - ASC - DESC sortBy: type: string ListEntitiesRequest: type: object properties: filter: type: array items: $ref: "#/components/schemas/FacetFilter" sort: description: Use EntitiesSortOrder enum for SortOptions.sortBy type: array items: $ref: "#/components/schemas/SortOptions" entityType: type: string default: PEOPLE enum: - PEOPLE - TEAMS - CUSTOM_ENTITIES datasource: type: string description: The datasource associated with the entity type, most commonly used with CUSTOM_ENTITIES query: type: string description: A query string to search for entities that each entity in the response must conform to. An empty query does not filter any entities. includeFields: description: List of entity fields to return (that aren't returned by default) type: array items: type: string enum: - PEOPLE - TEAMS - PEOPLE_DISTANCE - PERMISSIONS - FACETS - INVITE_INFO - LAST_EXTENSION_USE - MANAGEMENT_DETAILS - UNPROCESSED_TEAMS pageSize: type: integer example: 100 description: Hint to the server about how many results to send back. Server may return less. cursor: type: string description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. source: type: string description: A string denoting the search surface from which the endpoint is called. requestType: type: string default: STANDARD description: The type of request being made. x-enumDescriptions: STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. enum: - STANDARD - FULL_DIRECTORY x-speakeasy-enum-descriptions: STANDARD: Used by default for all requests and satisfies all standard use cases for list requests. Limited to 10000 entities. FULL_DIRECTORY: Used exclusively to return a comprehensive list of all people entities in the organization, typically for audit like purposes. The recommended approach is to sort by FIRST_NAME or LAST_NAME, and use pagination for large organizations. EntitiesSortOrder: type: string description: Different ways of sorting entities enum: - ENTITY_NAME - FIRST_NAME - LAST_NAME - ORG_SIZE_COUNT - START_DATE - TEAM_SIZE - RELEVANCE ListEntitiesResponse: type: object properties: results: type: array items: $ref: "#/components/schemas/Person" teamResults: type: array items: $ref: "#/components/schemas/Team" customEntityResults: type: array items: $ref: "#/components/schemas/CustomEntity" facetResults: type: array items: $ref: "#/components/schemas/FacetResult" cursor: type: string description: Pagination cursor. A previously received opaque token representing the position in the overall results at which to start. totalCount: type: integer description: The total number of entities available hasMoreResults: type: boolean description: Whether or not more entities can be fetched. sortOptions: type: array description: Sort options from EntitiesSortOrder supported for this response. Default is empty list. items: $ref: "#/components/schemas/EntitiesSortOrder" customFacetNames: type: array description: list of Person attributes that are custom setup by deployment items: type: string PeopleRequest: type: object properties: timezoneOffset: type: integer description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. obfuscatedIds: type: array items: type: string description: The Person IDs to retrieve. If no IDs are requested, the current user's details are returned. emailIds: type: array items: type: string description: The email IDs to retrieve. The result is the deduplicated union of emailIds and obfuscatedIds. includeFields: description: List of PersonMetadata fields to return (that aren't returned by default) type: array items: type: string enum: - BADGES - BUSY_EVENTS - DOCUMENT_ACTIVITY - INVITE_INFO - PEOPLE_DISTANCE - PERMISSIONS - PEOPLE_DETAILS - MANAGEMENT_DETAILS - PEOPLE_PROFILE_SETTINGS - PEOPLE_WITHOUT_MANAGER includeTypes: description: The types of people entities to include in the response in addition to those returned by default. x-enumDescriptions: PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. type: array items: type: string enum: - PEOPLE_WITHOUT_MANAGER - INVALID_ENTITIES x-speakeasy-enum-descriptions: PEOPLE_WITHOUT_MANAGER: Returns all people without a manager apart from the requested IDs. INVALID_ENTITIES: Includes invalid entities in the response if any of the requested IDs are invalid. source: type: string description: A string denoting the search surface from which the endpoint is called. example: obfuscatedIds: - abc123 - abc456 PeopleResponse: properties: results: type: array items: $ref: "#/components/schemas/Person" description: A Person for each ID in the request, each with PersonMetadata populated. relatedDocuments: type: array items: $ref: "#/components/schemas/RelatedDocuments" description: A list of documents related to this people response. This is only included if DOCUMENT_ACTIVITY is requested and only 1 person is included in the request. errors: type: array items: type: string description: A list of IDs that could not be found. CreateShortcutRequest: required: - data properties: data: $ref: "#/components/schemas/ShortcutMutableProperties" ShortcutError: properties: errorType: type: string enum: - NO_PERMISSION - INVALID_ID - EXISTING_SHORTCUT - INVALID_CHARS CreateShortcutResponse: properties: shortcut: $ref: "#/components/schemas/Shortcut" error: $ref: "#/components/schemas/ShortcutError" DeleteShortcutRequest: allOf: - $ref: "#/components/schemas/UserGeneratedContentId" - type: object required: - id GetShortcutRequest: oneOf: - $ref: "#/components/schemas/UserGeneratedContentId" - type: object required: - alias properties: alias: type: string description: The alias for the shortcut, including any arguments for variable shortcuts. GetShortcutResponse: properties: shortcut: $ref: "#/components/schemas/Shortcut" description: Shortcut given the input alias with any provided arguments substituted into the destination URL. error: $ref: "#/components/schemas/ShortcutError" ListShortcutsPaginatedRequest: required: - pageSize properties: includeFields: description: Array of fields/data to be included in response that are not included by default type: array items: type: string enum: - FACETS - PEOPLE_DETAILS pageSize: type: integer example: 10 cursor: type: string description: A token specifying the position in the overall results to start at. Received from the endpoint and iterated back. Currently being used as page no (as we implement offset pagination) filters: type: array items: $ref: "#/components/schemas/FacetFilter" description: A list of filters for the query. An AND is assumed between different filters. We support filters on Go Link name, author, department and type. sort: $ref: "#/components/schemas/SortOptions" description: Specifies fieldname to sort on and order (ASC|DESC) to sort in query: type: string description: Search query that should be a substring in atleast one of the fields (alias , inputAlias, destinationUrl, description). Empty query does not filter shortcuts. ShortcutsPaginationMetadata: properties: cursor: type: string description: Cursor indicates the start of the next page of results hasNextPage: type: boolean totalItemCount: type: integer ListShortcutsPaginatedResponse: required: - shortcuts - meta properties: shortcuts: type: array items: $ref: "#/components/schemas/Shortcut" description: List of all shortcuts accessible to the user facetResults: type: array items: $ref: "#/components/schemas/FacetResult" meta: $ref: "#/components/schemas/ShortcutsPaginationMetadata" description: Contains metadata like total item count and whether next page exists UpdateShortcutRequest: allOf: - $ref: "#/components/schemas/UserGeneratedContentId" - $ref: "#/components/schemas/ShortcutMutableProperties" - type: object required: - id UpdateShortcutResponse: properties: shortcut: $ref: "#/components/schemas/Shortcut" error: $ref: "#/components/schemas/ShortcutError" SummarizeRequest: description: Summary of the document required: - documentSpecs properties: timestamp: type: string description: The ISO 8601 timestamp associated with the client request. format: date-time query: type: string description: Optional query that the summary should be about preferredSummaryLength: type: integer description: Optional length of summary output. If not given, defaults to 500 chars. documentSpecs: type: array items: $ref: "#/components/schemas/DocumentSpec" description: Specifications of documents to summarize trackingToken: type: string description: An opaque token that represents this particular result. To be used for /feedback reporting. Summary: properties: text: type: string followUpPrompts: type: array items: type: string description: Follow-up prompts based on the summarized doc SummarizeResponse: properties: error: type: object properties: message: type: string summary: $ref: "#/components/schemas/Summary" trackingToken: type: string description: An opaque token that represents this summary in this particular query. To be used for /feedback reporting. ReminderRequest: required: - documentId properties: documentId: type: string description: The document which the verification is for new reminders and/or update. assignee: type: string description: The obfuscated id of the person this verification is assigned to. remindInDays: type: integer description: Reminder for the next verifications in terms of days. For deletion, this will be omitted. reason: type: string description: An optional free-text reason for the reminder. This is particularly useful when a reminder is used to ask for verification from another user (for example, "Duplicate", "Incomplete", "Incorrect"). VerificationFeed: properties: documents: type: array items: $ref: "#/components/schemas/Verification" description: List of document infos that include verification related information for them. VerifyRequest: required: - documentId properties: documentId: type: string description: The document which is verified. action: type: string enum: - VERIFY - DEPRECATE - UNVERIFY description: The verification action requested. ToolParameter: type: object properties: type: type: string description: Parameter type (string, number, boolean, object, array) enum: - string - number - boolean - object - array name: type: string description: The name of the parameter description: type: string description: The description of the parameter isRequired: type: boolean description: Whether the parameter is required possibleValues: type: array description: The possible values for the parameter. Can contain only primitive values or arrays of primitive values. items: type: string items: type: object description: When type is 'array', this describes the structure of the item in the array. $ref: "#/components/schemas/ToolParameter" properties: type: object description: When type is 'object', this describes the structure of the object. additionalProperties: $ref: "#/components/schemas/ToolParameter" Tool: type: object properties: type: type: string description: Type of tool (READ, WRITE) enum: - READ - WRITE name: type: string description: Unique identifier for the tool displayName: type: string description: Human-readable name description: type: string description: LLM friendly description of the tool parameters: type: object description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. additionalProperties: $ref: "#/components/schemas/ToolParameter" ToolsListResponse: type: object properties: tools: type: array items: $ref: "#/components/schemas/Tool" ToolsCallParameter: type: object required: - name - value properties: name: type: string description: The name of the parameter value: type: string description: The value of the parameter (for primitive types) items: type: array description: The value of the parameter (for array types) items: $ref: "#/components/schemas/ToolsCallParameter" properties: type: object description: The value of the parameter (for object types) additionalProperties: $ref: "#/components/schemas/ToolsCallParameter" ToolsCallRequest: type: object required: - name - parameters properties: name: type: string description: Required name of the tool to execute parameters: type: object description: The parameters for the tool. Each key is the name of the parameter and the value is the parameter object. additionalProperties: $ref: "#/components/schemas/ToolsCallParameter" ToolsCallResponse: type: object properties: rawResponse: additionalProperties: true type: object description: The raw response from the tool error: type: string description: The error message if applicable ActionAuthType: type: string description: | Authentication mechanism used by an action pack. - `AUTH_USER_OAUTH`: Requires per-user OAuth consent to the third-party tool. - `AUTH_ADMIN`: Uses a service-account / admin-owned credential. End users do not authorize individually. - `AUTH_NONE`: Action pack requires no authentication. enum: - AUTH_USER_OAUTH - AUTH_ADMIN - AUTH_NONE ActionPackAuthStatus: type: object required: - authenticated - authType properties: authenticated: type: boolean description: Whether the calling user is already authenticated to the tool backing the action pack. authType: $ref: "#/components/schemas/ActionAuthType" ActionPackAuthStatusResponse: type: object required: - actionPack properties: actionPack: $ref: "#/components/schemas/ActionPackAuthStatus" description: | Action-pack-scoped authentication status. Wrapped under `actionPack` so the response shape clearly conveys that the status applies to the whole pack and leaves room to add sibling fields (e.g. per-action status) later without a breaking change. AuthorizeActionPackRequest: type: object required: - returnUrl properties: returnUrl: type: string description: | URL on the customer's domain to redirect the end user's browser back to after the third-party OAuth callback completes. Must be present in the tenant's return URL allowlist. AuthorizeActionPackResponse: type: object required: - redirectUrl properties: redirectUrl: type: string description: | URL that the customer UI should navigate the end user to in order to begin the third-party OAuth flow. After the user consents, control returns to `returnUrl` from the request. ToolServerAuthStatus: type: string description: Authentication status for the calling user. enum: - AWAITING_AUTH - AUTHORIZED ToolServerAuthStatusResponse: type: object required: - authStatus - authType properties: displayName: type: string description: Human-readable name of the tool server. logoUrl: type: string description: Logo URL for the tool server. description: type: string description: Brief description of the tool server. authStatus: $ref: "#/components/schemas/ToolServerAuthStatus" authType: $ref: "#/components/schemas/ActionAuthType" AuthorizeToolServerRequest: type: object required: - returnUrl properties: returnUrl: type: string description: | URL to redirect the end user's browser back to after the OAuth flow completes. Must be present in the tenant's configured return URL allowlist. AuthorizeToolServerResponse: type: object required: - authorizationUrl properties: authorizationUrl: type: string description: | URL that the client should navigate the end user to in order to begin the OAuth flow. After the user consents, control returns to `returnUrl` from the request. parameters: xGleanActAsHeader: name: X-Glean-ActAs in: header description: Email address of a user on whose behalf the request is intended to be made (should be non-empty only for global tokens). required: false schema: type: string format: email xGleanAuthTypeHeader: name: X-Glean-Auth-Type in: header description: Auth type being used to access the endpoint (should be non-empty only for global tokens). required: false schema: type: string locale: name: locale in: query description: The client's preferred locale in rfc5646 format (e.g. `en`, `ja`, `pt-BR`). If omitted, the `Accept-Language` will be used. If not present or not supported, defaults to the closest match or `en`. required: false schema: type: string timezoneOffset: name: timezoneOffset in: query description: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. schema: type: integer x-tagGroups: - name: Search & Generative AI tags: - Chat - Search - Summarize - Tools - name: Connected Content tags: - Calendar - Documents - Entities - Messages - name: User Generated Content tags: - Announcements - Answers - Collections - Displayable Lists - Images - Pins - Shortcuts - Verification - name: General tags: - Activity - Authentication - Insights - User