> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gumloop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Company Brain

> Run a hybrid (semantic + keyword) search across the knowledge sources indexed in your [Company Brain](/core-concepts/brain) and return the most relevant, ranked snippets with citations.

Results are scoped to what the authenticated user can see: personal sources, plus any team and organization sources shared with them. Requires the Brain feature, which is available on the Pro and Enterprise plans. Each search consumes Gumloop credits.




## OpenAPI

````yaml post /brain/search
openapi: 3.0.0
info:
  title: Public API
  version: 1.0.0
servers:
  - url: https://api.gumloop.com/api/v1
security: []
paths:
  /brain/search:
    post:
      tags:
        - Brain
      summary: Search Company Brain
      description: >
        Run a hybrid (semantic + keyword) search across the knowledge sources
        indexed in your [Company Brain](/core-concepts/brain) and return the
        most relevant, ranked snippets with citations.


        Results are scoped to what the authenticated user can see: personal
        sources, plus any team and organization sources shared with them.
        Requires the Brain feature, which is available on the Pro and Enterprise
        plans. Each search consumes Gumloop credits.
      operationId: searchBrain
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - query
              properties:
                query:
                  type: string
                  description: The natural-language search query.
                  example: what is our refund policy?
                limit:
                  type: integer
                  minimum: 1
                  maximum: 50
                  default: 8
                  description: Maximum number of results to return.
                  example: 8
                source_type:
                  type: array
                  nullable: true
                  minItems: 1
                  description: >
                    Restrict results to specific source types. Omit to search
                    every source you can access. Valid values: `notion`,
                    `google_drive`, `slack`, `github`, `confluence`,
                    `direct_file_uploads`, `gumloop_artifacts`.
                  items:
                    type: string
                    enum:
                      - notion
                      - google_drive
                      - slack
                      - github
                      - confluence
                      - direct_file_uploads
                      - gumloop_artifacts
                  example:
                    - notion
                    - google_drive
      responses:
        '200':
          description: Ranked search results.
          content:
            application/json:
              schema:
                type: object
                required:
                  - results
                properties:
                  results:
                    type: array
                    description: Ranked matches, most relevant first.
                    items:
                      type: object
                      properties:
                        document_id:
                          type: string
                          nullable: true
                          description: Identifier of the matched document.
                        source:
                          type: string
                          nullable: true
                          description: >-
                            The source type the result came from, for example
                            `notion` or `slack`.
                        title:
                          type: string
                          nullable: true
                          description: Title of the matched document.
                        content:
                          type: string
                          nullable: true
                          description: The matching snippet of text.
                        url:
                          type: string
                          nullable: true
                          description: >-
                            Link to the document in its original source, when
                            available.
                        score:
                          type: number
                          nullable: true
                          description: Relevance score, normalized to a 0–1 range.
                        updated_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: When the document was last updated in its source.
                        owner_name:
                          type: string
                          nullable: true
                          description: Display name of the document owner, when known.
                        owner_email:
                          type: string
                          nullable: true
                          description: Email of the document owner, when known.
                        parent_title:
                          type: string
                          nullable: true
                          description: >-
                            Title of the parent item (for example, a channel or
                            folder), when applicable.
                        metadata:
                          type: object
                          description: Additional source-specific metadata.
              examples:
                success:
                  summary: A single ranked result
                  value:
                    results:
                      - document_id: notion:2f1a9c7e
                        source: notion
                        title: Refund Policy
                        content: >-
                          Customers may request a full refund within 30 days of
                          purchase...
                        url: https://www.notion.so/Refund-Policy-2f1a9c7e
                        score: 0.87
                        updated_at: '2024-01-15T10:30:00Z'
                        owner_name: Jordan Lee
                        owner_email: jordan@example.com
                        parent_title: Policies
                        metadata: {}
        '400':
          description: >-
            Invalid request, for example a missing `query` or an unrecognized
            `source_type`.
        '401':
          description: Unauthorized — missing or invalid Gumloop API credentials.
        '402':
          description: Credit limit exceeded.
        '403':
          description: >-
            Forbidden — the caller lacks access to Brain (Pro or Enterprise plan
            required) or to this endpoint.
        '500':
          description: Internal server error.
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |
            curl 'https://api.gumloop.com/api/v1/brain/search' \
              -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
              -H 'Content-Type: application/json' \
              -d '{
                "query": "what is our refund policy?",
                "limit": 8,
                "source_type": ["notion", "google_drive"]
              }'
        - lang: python
          label: Python
          source: |
            from gumloop import Gumloop

            client = Gumloop(access_token="YOUR_ACCESS_TOKEN")

            response = client.brain.search(
                "what is our refund policy?",
                limit=8,
                source_type=["notion", "google_drive"],
            )
            for result in response.results:
                print(result.score, result.source, result.title, result.url)
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        A personal API key or an [OAuth 2.0](/api-reference/oauth) access token.
        Personal API keys also require the `x-auth-key` header with your user
        ID.

````