openapi: 3.0.0 info: version: "2026-04-01" title: Glean Platform API x-source-commit-sha: 77d699703c1f0cd76fabd3fa1dde772bd0c67509 x-open-api-commit-sha: 03138d28a5220afba7b0893fe57d6663a7713f32 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: /api/documents/batch: post: tags: - Documents summary: Retrieve documents description: | Retrieve details for a batch of documents by URL, Glean document ID, or user-generated content reference. The response preserves request order and reports per-document lookup failures alongside successful results. operationId: platform-documents-batch x-visibility: Public x-glean-experimental: id: 9eb7c7c2-9807-4e64-bc53-7b10aeff813f introduced: "2026-06-02" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformDocumentsBatchRequest" responses: "200": description: Successful batch retrieval. content: application/json: schema: $ref: "#/components/schemas/PlatformDocumentsBatchResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.documents x-speakeasy-name-override: batch /api/documents/{id}/permissions: get: tags: - Documents summary: Retrieve document permissions description: | Retrieve whether a document is visible to everyone and the email addresses of users who have access to it. operationId: platform-documents-permissions x-visibility: Public x-glean-experimental: id: 45684a5a-b8c0-4c2c-b022-50e2583666ff introduced: "2026-06-03" parameters: - name: id in: path required: true description: Glean document ID. schema: type: string minLength: 1 responses: "200": description: Successful document permissions retrieval. content: application/json: schema: $ref: "#/components/schemas/PlatformDocumentPermissionsResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.documents x-speakeasy-name-override: getPermissions /api/people/search: post: tags: - People summary: Search people description: | Retrieve people by Glean person ID or email address. When no identifiers are provided, the authenticated user's profile is returned. operationId: platform-people-search x-visibility: Public x-glean-experimental: id: 51692e94-d9ff-4e5b-b5b5-4b78c4a9879a introduced: "2026-05-18" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformPeopleSearchRequest" responses: "200": description: Successful people response. content: application/json: schema: $ref: "#/components/schemas/PlatformPeopleSearchResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.people x-speakeasy-name-override: search /api/agents/search: post: tags: - Agents summary: Search agents description: | Search agents available to the authenticated user by agent name. operationId: platform-agents-search x-visibility: Public x-glean-experimental: id: 4abc1e17-8e06-490b-99a7-e8f97592405a introduced: "2026-05-12" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformAgentsSearchRequest" responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformAgentsSearchResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.agents x-speakeasy-name-override: search /api/agents/{agent_id}: get: tags: - Agents summary: Get agent description: | Retrieve details for an agent available to the authenticated user. operationId: platform-agents-get x-visibility: Public x-glean-experimental: id: 009b3e94-694b-4deb-b80a-c67011173715 introduced: "2026-05-12" parameters: - in: path name: agent_id description: ID of the agent to retrieve. required: true schema: type: string minLength: 1 responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformAgentGetResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.agents x-speakeasy-name-override: get /api/agents/{agent_id}/schemas: get: tags: - Agents summary: Get agent schemas description: | Retrieve an agent's input and output JSON schemas. operationId: platform-agents-get-schemas x-visibility: Public x-glean-experimental: id: b40b4dd3-3839-48e6-9e45-7e63e8148b49 introduced: "2026-05-12" parameters: - in: path name: agent_id description: ID of the agent whose schemas should be retrieved. required: true schema: type: string minLength: 1 - in: query name: include_tools description: Whether to include tool metadata in the response. required: false schema: type: boolean default: false responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformAgentSchemasResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.agents x-speakeasy-name-override: getSchemas /api/agents/{agent_id}/runs: post: tags: - Agents summary: Create agent run description: | Execute an agent run. Set `stream` to true to receive server-sent events; otherwise the response contains the final agent messages. operationId: platform-agents-create-run x-visibility: Public x-glean-experimental: id: 26bba669-2e92-4e5d-9798-6a532fae4e9f introduced: "2026-05-12" x-codegen-request-body-name: payload parameters: - in: path name: agent_id description: ID of the agent to run. required: true schema: type: string minLength: 1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformAgentRunCreateRequest" responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformAgentRunWaitResponse" text/event-stream: schema: type: string description: Server-sent events emitted by the running agent. 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":", I can help with HR policy questions.","type":"text"}]}]} "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "409": $ref: "#/components/responses/PlatformConflict" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.agents x-speakeasy-name-override: createRun /api/tools: get: tags: - Tools summary: List tools description: | List tools available to the authenticated user, optionally filtered by tool name. operationId: platform-tools-list x-visibility: Public x-glean-experimental: id: 3cb43a04-ad52-4c25-be62-3ce1daffd513 introduced: "2026-05-06" parameters: - in: query name: tool_names description: Optional comma-delimited list of tool names to return. required: false style: form explode: false schema: type: array items: type: string responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformToolsListResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.tools x-speakeasy-name-override: list /api/tools/call: post: tags: - Tools summary: Call tool description: | Execute a tool available to the authenticated user with the provided parameters. operationId: platform-tools-call x-visibility: Public x-glean-experimental: id: 9ea7c149-7d5b-4c62-860d-afb56481069a introduced: "2026-05-08" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformToolsCallRequest" responses: "200": description: Successful response. content: application/json: schema: $ref: "#/components/schemas/PlatformToolsCallResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.tools x-speakeasy-name-override: call /api/search: post: tags: - Search summary: Search description: | Execute a search query and retrieve ranked results. This is the data retrieval variant of the search API and returns only results and pagination state. operationId: platform-search x-visibility: Public x-glean-experimental: id: 5ab612fc-ed50-4419-bec3-e5fe83934653 introduced: "2026-04-08" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformSearchRequest" responses: "200": description: Successful search. content: application/json: schema: $ref: "#/components/schemas/PlatformSearchResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.search x-speakeasy-name-override: query /api/summarize: post: tags: - Summarize summary: Summarize documents description: | Generate an AI summary of one or more documents. Supply documents by URL, Glean document ID, or user-generated content reference. operationId: platform-summarize x-visibility: Public x-glean-experimental: id: 4d2f8b2e-7c9d-4f4f-9b1d-4d2f8b2e7c9d introduced: "2026-05-27" x-codegen-request-body-name: payload requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PlatformSummarizeRequest" responses: "200": description: Successful summary. content: application/json: schema: $ref: "#/components/schemas/PlatformSummarizeResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" "404": $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" "429": $ref: "#/components/responses/PlatformTooManyRequests" "500": $ref: "#/components/responses/PlatformInternalServerError" "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: platform.summarize x-speakeasy-name-override: create components: securitySchemes: APIToken: type: http scheme: bearer description: | Glean API token. Obtain via Admin Console -> Platform -> API Tokens, or via OAuth 2.0 client credentials flow. schemas: PlatformUgcType: type: string enum: - ANNOUNCEMENTS - ANSWERS - COLLECTIONS - SHORTCUTS description: Type of user-generated content. PlatformDocumentSpec: type: object description: | Reference to a document. Exactly one of `url`, `id`, or `content_id` with `ugc_type` must be provided. oneOf: - type: object additionalProperties: false required: - url properties: url: type: string description: URL of the document. - type: object additionalProperties: false required: - id properties: id: type: string description: Glean document ID. - type: object additionalProperties: false required: - content_id - ugc_type properties: content_id: type: integer format: int32 description: Numeric ID of the user-generated content item. ugc_type: $ref: "#/components/schemas/PlatformUgcType" doc_type: type: string description: Specific subtype of the user-generated content item. PlatformDocumentIncludeField: type: string enum: - LAST_VIEWED_AT - VISITORS_COUNT - RECENT_SHARES - DOCUMENT_CONTENT - CUSTOM_METADATA description: Optional fields that can be included in returned documents. PlatformDocumentsBatchRequest: type: object additionalProperties: false required: - document_specs properties: document_specs: type: array minItems: 1 items: $ref: "#/components/schemas/PlatformDocumentSpec" description: Documents to retrieve. include_fields: type: array items: $ref: "#/components/schemas/PlatformDocumentIncludeField" description: Additional document fields to include in the response. PlatformDocumentContent: type: object properties: full_text_list: type: array items: type: string description: Plaintext content of the document. PlatformDocumentReference: type: object properties: id: type: string description: Glean document ID. title: type: string description: Title of the referenced document. url: type: string description: Permalink for the referenced document. PlatformCountInfo: type: object properties: count: type: integer format: int64 period: type: string description: Human-readable period represented by this count. from: type: string format: date-time to: type: string format: date-time PlatformPerson: type: object properties: name: type: string email: type: string obfuscated_id: type: string PlatformShare: type: object properties: num_days_ago: type: integer description: Number of days since the share occurred. sharer: $ref: "#/components/schemas/PlatformPerson" sharing_document: $ref: "#/components/schemas/PlatformDocumentReference" PlatformDocumentInteractions: type: object properties: visitor_count: $ref: "#/components/schemas/PlatformCountInfo" shares: type: array items: $ref: "#/components/schemas/PlatformShare" PlatformViewerInfo: type: object properties: last_viewed_time: type: string format: date-time PlatformCustomDataValue: type: object properties: string_value: type: string string_list_value: type: array items: type: string PlatformDocumentMetadata: type: object properties: datasource: type: string datasource_instance: type: string description: Datasource instance from which the document was extracted. object_type: type: string description: Datasource-specific object type. container: type: string description: Name of the higher-level container. container_id: type: string description: Glean document ID of the container. parent_id: type: string description: Glean document ID of the direct parent. mime_type: type: string interactions: $ref: "#/components/schemas/PlatformDocumentInteractions" viewer_info: $ref: "#/components/schemas/PlatformViewerInfo" custom_data: type: object additionalProperties: $ref: "#/components/schemas/PlatformCustomDataValue" description: Custom metadata requested via `CUSTOM_METADATA`. PlatformDocumentSection: type: object properties: title: type: string description: Section title. url: type: string description: Permalink for the section. PlatformDocument: type: object required: - id properties: id: type: string description: Glean document ID. datasource: type: string description: App or repository type from which the document was extracted. connector_type: type: string description: Connector type for the source system. document_type: type: string description: Datasource-specific type of the document. title: type: string description: Title of the document. url: type: string description: Permalink for the document. content: $ref: "#/components/schemas/PlatformDocumentContent" container_document: $ref: "#/components/schemas/PlatformDocumentReference" parent_document: $ref: "#/components/schemas/PlatformDocumentReference" metadata: $ref: "#/components/schemas/PlatformDocumentMetadata" sections: type: array items: $ref: "#/components/schemas/PlatformDocumentSection" description: Content subsections in the document. PlatformDocumentBatchErrorCode: type: string enum: - NOT_FOUND_OR_NOT_ALLOWED - INVALID_DOCUMENT_SPEC - ANNOTATION_ERROR - DOCUMENT_GENERATION_ERROR description: Stable machine-readable item-level failure code. PlatformDocumentBatchError: type: object required: - code - message properties: code: $ref: "#/components/schemas/PlatformDocumentBatchErrorCode" message: type: string description: Human-readable explanation for the item-level failure. PlatformDocumentBatchResult: description: | One document retrieval result. Successful results include `document`; lookup failures include `error`. oneOf: - type: object additionalProperties: false required: - status - document properties: status: type: string enum: - FOUND document: $ref: "#/components/schemas/PlatformDocument" - type: object additionalProperties: false required: - status - error properties: status: type: string enum: - NOT_FOUND - INVALID - ERROR error: $ref: "#/components/schemas/PlatformDocumentBatchError" PlatformDocumentsBatchResponse: type: object required: - request_id - results properties: request_id: type: string description: Server-generated identifier for this response, useful for support. results: type: array items: $ref: "#/components/schemas/PlatformDocumentBatchResult" description: Results in the same order as `document_specs`. PlatformProblemDetail: type: object required: - type - title - status - detail - code - request_id description: | Error response following RFC 9457, extended with `code` and `documentation_url` for machine-readable classification and self-service remediation. properties: type: type: string format: uri description: URI identifying the error type. example: https://developer.glean.com/errors/invalid-cursor title: type: string description: Short, human-readable summary of the error. example: Invalid Pagination Cursor status: type: integer description: HTTP status code mirrored from the response. example: 400 detail: type: string description: Human-readable explanation specific to this occurrence. example: | The provided cursor has expired. Start a new search to get a fresh cursor. code: type: string description: Stable machine-readable error code. enum: - invalid_request - missing_required_field - invalid_parameter - invalid_cursor - expired_cursor - invalid_filter - invalid_datasource - authentication_required - token_expired - insufficient_permissions - resource_not_found - method_not_allowed - request_timeout - conflict - gone - unprocessable_query - rate_limit_exceeded - internal_error - service_unavailable example: invalid_cursor documentation_url: type: string format: uri description: Direct URL to documentation for this error code. example: https://developer.glean.com/errors/invalid-cursor request_id: type: string description: Platform-generated request ID for support correlation. example: req_7f8a9b0c1d2e PlatformDocumentPermissionsResponse: type: object required: - request_id - allowed_user_emails - visible_to_all properties: request_id: type: string description: Server-generated identifier for this response, useful for support. allowed_user_emails: type: array items: type: string description: Email addresses for users who can access the document. visible_to_all: type: boolean description: Whether the document is visible to everyone. PlatformPeopleIncludeField: type: string description: Optional profile fields to request. enum: - PEOPLE_DETAILS - MANAGEMENT_DETAILS PlatformPeopleIncludeType: type: string description: Optional people result types to request. x-enumDescriptions: INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. enum: - INVALID_ENTITIES x-speakeasy-enum-descriptions: INVALID_ENTITIES: Return invalid requested people that can be loaded in the people array with is_valid set to false. Identifiers that cannot be loaded are returned in not_found. PlatformPeopleSearchRequest: type: object additionalProperties: false properties: person_ids: type: array description: Glean person IDs to retrieve. items: type: string example: - abc123 - abc456 email_ids: type: array description: Email addresses to retrieve. items: type: string example: - jane.smith@example.com include_fields: type: array description: Optional profile fields to include beyond the default profile. items: $ref: "#/components/schemas/PlatformPeopleIncludeField" include_types: type: array description: Optional non-default people result types to include. items: $ref: "#/components/schemas/PlatformPeopleIncludeType" PlatformPersonType: type: string description: Person employment status or account type. enum: - FULL_TIME - CONTRACTOR - NON_EMPLOYEE - FORMER_EMPLOYEE PlatformPerson-2: type: object required: - id - is_valid - name properties: id: type: string description: Opaque Glean person ID. is_valid: type: boolean description: Whether this is a valid person record. Invalid people are returned only when requested with include_types. name: type: string description: Display name. type: $ref: "#/components/schemas/PlatformPersonType" email: type: string format: email description: Primary email address. title: type: string description: Job title. department: type: string description: Department or organizational unit. location: type: string description: User-facing location. photo_url: type: string format: uri description: Avatar URL. manager_id: type: string description: Opaque Glean person ID for the person's manager. manager_name: type: string description: Display name for the person's manager. PlatformPeopleSearchResponse: type: object required: - people - not_found - request_id properties: people: type: array description: People matching the requested identifiers. items: $ref: "#/components/schemas/PlatformPerson-2" not_found: type: array description: Identifiers that could not be resolved. items: type: string request_id: type: string description: Platform-generated request ID for support correlation. PlatformAgentsSearchRequest: type: object additionalProperties: false properties: name: type: string description: Case-insensitive substring to match against agent names. If omitted or empty, no name filter is applied. example: HR Policy Agent PlatformAgentCapabilities: type: object additionalProperties: true properties: ap.io.messages: type: boolean description: Whether the agent supports messages as input. ap.io.streaming: type: boolean description: Whether the agent supports streaming output. PlatformAgent: type: object required: - agent_id - name - capabilities properties: agent_id: type: string description: ID of the agent. example: mho4lwzylcozgoc2 name: type: string description: Name of the agent. example: HR Policy Agent description: type: string description: Description of the agent. metadata: type: object description: Agent metadata. additionalProperties: true capabilities: $ref: "#/components/schemas/PlatformAgentCapabilities" PlatformAgentsSearchResponse: type: object required: - agents - request_id properties: agents: type: array description: Agents matching the search request. items: $ref: "#/components/schemas/PlatformAgent" request_id: type: string description: Platform-generated request ID for support correlation. PlatformAgentGetResponse: type: object required: - agent - request_id properties: agent: $ref: "#/components/schemas/PlatformAgent" request_id: type: string description: Platform-generated request ID for support correlation. PlatformActionSummary: type: object required: - tool_id - display_name properties: tool_id: type: string description: Unique identifier of the action. display_name: type: string description: Display name of the action. type: type: string description: Tool type. auth_type: type: string description: Authentication type required by the action. write_action_type: type: string description: Write-action execution type. is_setup_finished: type: boolean description: Whether this action has been fully configured. data_source: type: string description: Kind of knowledge the action accesses or modifies. PlatformAgentSchemasResponse: type: object required: - agent_id - input_schema - output_schema - request_id properties: agent_id: type: string description: ID of the agent. name: type: string description: Name of the agent. input_schema: type: object description: Agent input schema in JSON Schema format. additionalProperties: true output_schema: type: object description: Agent output schema in JSON Schema format. additionalProperties: true tools: type: array description: Tools that the agent can invoke, when requested. items: $ref: "#/components/schemas/PlatformActionSummary" request_id: type: string description: Platform-generated request ID for support correlation. PlatformMessageRole: type: string description: Role of the message author. example: USER enum: - USER - GLEAN_AI PlatformContentType: type: string enum: - text PlatformMessageTextBlock: type: object required: - text - type properties: text: type: string description: Text content. type: $ref: "#/components/schemas/PlatformContentType" PlatformMessage: type: object required: - role - content properties: role: $ref: "#/components/schemas/PlatformMessageRole" content: type: array description: Content blocks in the message. items: $ref: "#/components/schemas/PlatformMessageTextBlock" PlatformAgentRunCreateRequest: type: object additionalProperties: false description: | Request to run an agent. A request MUST supply either `messages` (a non-empty conversation) or `input` (for input-form triggered agents). properties: input: type: object description: Input fields for an input-form triggered agent. additionalProperties: true messages: type: array minItems: 1 description: | Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. items: $ref: "#/components/schemas/PlatformMessage" metadata: type: object description: Metadata to pass to the agent. additionalProperties: true stream: type: boolean description: Whether to stream the run response as server-sent events. default: false PlatformAgentRunCreate: type: object required: - agent_id properties: agent_id: type: string description: ID of the agent being run. input: type: object description: Input fields for an input-form triggered agent. additionalProperties: true messages: type: array description: Messages passed to the agent. items: $ref: "#/components/schemas/PlatformMessage" metadata: type: object description: Metadata passed to the agent. additionalProperties: true PlatformAgentExecutionStatus: type: string description: Status of the agent run. enum: - error - success PlatformAgentRun: allOf: - $ref: "#/components/schemas/PlatformAgentRunCreate" - type: object required: - status properties: status: $ref: "#/components/schemas/PlatformAgentExecutionStatus" PlatformAgentRunWaitResponse: type: object required: - request_id properties: run: $ref: "#/components/schemas/PlatformAgentRun" messages: type: array description: Messages returned by the completed run. items: $ref: "#/components/schemas/PlatformMessage" request_id: type: string description: Platform-generated request ID for support correlation. PlatformToolParameter: type: object properties: type: type: string description: Parameter type. enum: - string - number - boolean - object - array name: type: string description: Parameter name. description: type: string description: Parameter description. is_required: type: boolean description: Whether the parameter is required. possible_values: type: array description: Possible primitive values for the parameter. items: type: string items: $ref: "#/components/schemas/PlatformToolParameter" properties: type: object description: Object properties for object parameters. additionalProperties: $ref: "#/components/schemas/PlatformToolParameter" PlatformTool: type: object required: - type - name - display_name - description - parameters properties: type: type: string description: Type of tool. enum: - READ - WRITE name: type: string description: Unique identifier for the tool. display_name: type: string description: Human-readable name. description: type: string description: LLM-friendly description of the tool. parameters: type: object description: Parameters supported by the tool. additionalProperties: $ref: "#/components/schemas/PlatformToolParameter" PlatformToolsListResponse: type: object required: - tools - request_id properties: tools: type: array description: List of tools available to the user. items: $ref: "#/components/schemas/PlatformTool" request_id: type: string description: Platform-generated request ID for support correlation. PlatformToolsCallRequest: type: object additionalProperties: false required: - name - parameters properties: name: type: string minLength: 1 description: Name of the tool to execute. parameters: type: object description: Tool parameter values keyed by parameter name. additionalProperties: true PlatformToolsCallResponse: type: object required: - raw_response - request_id properties: raw_response: type: object description: Raw response returned by the tool. additionalProperties: true request_id: type: string description: Platform-generated request ID for support correlation. PlatformFilterOperator: type: string description: Supported filter operator. enum: - EQUALS - NOT_EQUALS - GT - GTE - LT - LTE PlatformFilter: type: object required: - field - values description: | A single filter criterion. For `EQUALS`, multiple values within a filter are OR'd. For `NOT_EQUALS`, multiple values exclude all listed values. Filters are AND'd with each other and with any inline query operators. properties: field: type: string description: | The field to filter on. Accepts built-in filter field names such as `type`, `owner`, `from`, `author`, `channel`, `status`, `assignee`, `reporter`, `component`, `mentions`, and `collection`, plus custom datasource property names. example: type values: type: array minItems: 1 items: type: string description: One or more values to match. example: - spreadsheet - presentation operator: allOf: - $ref: "#/components/schemas/PlatformFilterOperator" description: | Comparison operator to apply to this filter. Defaults to `EQUALS`. `GT`, `GTE`, `LT`, and `LTE` range operators require exactly one value; express bounded ranges with multiple filters on the same field. PlatformTimeRange: type: object description: Filter results to those last updated within this range. properties: start: type: string format: date-time description: Inclusive lower bound in ISO 8601 format. end: type: string format: date-time description: Exclusive upper bound in ISO 8601 format. PlatformSearchRequest: type: object additionalProperties: false required: - query properties: query: type: string description: | The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`. example: quarterly planning 2026 page_size: type: integer minimum: 1 maximum: 100 default: 10 description: Number of results to return per page. cursor: type: string nullable: true description: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. datasources: type: array items: type: string description: | Restrict results to specific datasources. Requests must not specify both `datasources` and `datasource_instances`. example: - confluence - google_drive datasource_instances: type: array items: type: string description: | Restrict results to specific datasource instances. Values are datasource instance identifiers returned by `GET /api/search/filters`. Requests must not specify both `datasources` and `datasource_instances`. example: - slack_acme - slack_eu filters: type: array items: $ref: "#/components/schemas/PlatformFilter" description: | Structured filters applied to search results. Equality operators OR multiple values within a filter. Multiple filters are AND'd together, including range filters on the same field. Filters are AND'd with any inline operators in `query`. Note that conflicting constraints on the same field (e.g., `type:document` in the query and `type: spreadsheet` in a filter) produce an empty result set. time_range: $ref: "#/components/schemas/PlatformTimeRange" PlatformPerson-3: type: object nullable: true description: A person associated with the result. properties: name: type: string description: Display name. example: Jane Smith email: type: string format: email description: Email address. example: jane.smith@company.com PlatformResult: type: object required: - url - title - datasource properties: url: type: string format: uri description: Canonical URL of the result. example: https://company.atlassian.net/wiki/spaces/ENG/pages/12345 title: type: string description: Result title. example: Q2 2026 Platform Roadmap snippets: type: array items: type: string description: Query-relevant plain-text excerpts from the result body. example: - The platform team will focus on API stability and... datasource: type: string description: The datasource this result originates from. example: confluence datasource_instance: type: string nullable: true description: The datasource instance this result originates from, if known. example: confluence_acme document_type: type: string nullable: true description: The document type within the datasource. example: page creator: $ref: "#/components/schemas/PlatformPerson-3" owner: $ref: "#/components/schemas/PlatformPerson-3" updated_at: type: string format: date-time nullable: true description: When the result was last modified. created_at: type: string format: date-time nullable: true description: When the result was created. PlatformSearchResponse: type: object required: - results - has_more - next_cursor - request_id properties: results: type: array items: $ref: "#/components/schemas/PlatformResult" description: Ordered list of search results. has_more: type: boolean description: Indicates whether additional pages of results are available. next_cursor: type: string nullable: true description: Opaque token to pass as `cursor` in the next request. request_id: type: string description: Platform-generated request ID for support correlation. PlatformDocumentSpec-2: type: object description: | Reference to a document to summarize. Exactly one of `url`, `id`, or a UGC pair (`content_id` + `ugc_type` for ANNOUNCEMENTS/ANSWERS/COLLECTIONS) must be provided. oneOf: - type: object additionalProperties: false required: - url properties: url: type: string description: Public URL of the document. - type: object additionalProperties: false required: - id properties: id: type: string description: Glean document ID. - type: object additionalProperties: false required: - content_id - ugc_type properties: content_id: type: integer format: int32 description: Numeric ID of the user-generated content item. ugc_type: type: string enum: - ANNOUNCEMENTS - ANSWERS - COLLECTIONS description: Datasource type of the user-generated content item. PlatformSummarizeRequest: type: object additionalProperties: false required: - document_specs properties: document_specs: type: array minItems: 1 items: $ref: "#/components/schemas/PlatformDocumentSpec-2" description: Specifications of the documents to summarize. preferred_summary_length: type: integer minimum: 1 default: 1000 description: | Preferred summary length in characters. The model treats this as a target, not a strict bound. tracking_token: type: string description: | Opaque token from a previous response. Pass it back when reporting feedback to associate the feedback with this summary. PlatformSummary: type: object properties: text: type: string description: The generated summary text. follow_up_prompts: type: array items: type: string description: Suggested follow-up prompts derived from the summarized documents. PlatformSummarizeResponse: type: object properties: request_id: type: string description: Server-generated identifier for this response, useful for support. summary: $ref: "#/components/schemas/PlatformSummary" tracking_token: type: string description: | Opaque token representing this summary. Pass it back to the feedback endpoint to associate feedback with this summary. responses: PlatformBadRequest: description: Invalid request (malformed JSON, invalid parameter values, unknown fields). content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformUnauthorized: description: Missing or invalid authentication token. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformForbidden: description: Token valid but lacks permission for the requested operation. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformNotFound: description: Resource not found. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformRequestTimeout: description: Backend did not respond within the timeout window. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformTooManyRequests: description: Rate limit exceeded. Includes Retry-After header. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformInternalServerError: description: Unexpected server-side failure. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformServiceUnavailable: description: Backend temporarily unavailable. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail" PlatformConflict: description: Request conflicts with current state of the resource. content: application/problem+json: schema: $ref: "#/components/schemas/PlatformProblemDetail"