# Search Engine Configuration

This page documents every setting that appears under **Search Engine** in the Spaces configuration UI. Each setting is shown by its UI label, with the underlying configuration field name in italics.

The list of available engines is decided at the platform level by the `ACTIVE_SEARCH_ENGINES` environment variable. Only engines on that list — and whose required credentials are provisioned — appear in the **Search Engine** selector. See the [Activation Reference](https://docs.unique.ai/administrators/space-management/tools/web-search/platform/activation-reference) page under Platform / Infrastructure for what controls availability.

For a description of _how_ each engine performs its searches at runtime (sequence diagrams, identity flows, what data leaves the platform), see the [Search Engines](https://docs.unique.ai/administrators/space-management/tools/web-search/platform/search-engines) page under Platform / Architecture. For deployment-side credential setup (API keys, identity bindings, env vars), see the Search Engine Setup page under Platform / Infrastructure.

## Common setting

Every engine shares one setting:

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |

Higher values bring more URLs into the pipeline at the cost of more downstream work (crawling, content processing, relevancy sorting). Per-engine pagination is handled automatically.

## Google Search

_Display name in the UI: **Google Search**_

### What it does

Sends your search query to Google's Custom Search JSON API and returns a list of URLs, titles, and snippets. Google does not return page content directly, so the configured Web Page Reader runs after the search to fetch each page.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **Custom Search Config** | `custom_search_config` | object | `{}` |

_Custom Search Config_ exposes optional Google Custom Search API parameters (language, country code, safe search level, etc.) for fine-tuning results. Leave empty for default behaviour.

### When to use it

Default for most Spaces. Reliable, predictable, and well-known. Best when you want full control over the configured Custom Search Engine (CSE).

> Limitation: Google's Custom Search JSON API is being phased out by Google. New search engines can no longer be configured for open-web search after January 20, 2026, and existing open-web search engines will be disabled on January 1, 2027.

## Grounding with Bing

_Display name in the UI: **Grounding with Bing**_

### What it does

This is **not** a classic search API integration. Instead, the tool delegates the search to an Azure AI Foundry Agent with Bing grounding enabled. The agent autonomously searches Bing, reads each source, and produces a structured response with detailed answers and key facts per source. The Web Search tool then parses that response into standard search results.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **Requires Scraping** | `requires_scraping` | boolean | `false` |
| **Agent ID** | `agent_id` | string | empty |
| **Endpoint** | `endpoint` | string | empty |
| **Generation Instructions** | `generation_instructions` | textarea | Built-in prompt |
| **Language Model** | `language_model` | language model | `gpt-4o` |

### When to use it

When you want answers grounded in Bing's full search index without managing a search-API integration yourself, and you have an Azure AI Foundry project available.

## Grounding with VertexAI

_Display name in the UI: **Grounding with VertexAI**_

### What it does

Like Bing, this is **not** a classic search API integration. The tool calls a Gemini model on Google Cloud's Vertex AI with Google's grounding tool attached. Gemini autonomously runs web searches, reads sources, and returns a grounded text answer with citation metadata.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **VertexAI Model Name** | `vertexai_model_name` | string | `gemini-3-flash-preview` |
| **Generation Instructions** | `generation_instructions` | textarea | Built-in prompt |
| **Fallback Language Model** | `fallback_language_model` | language model | Toolkit default |
| **Requires Scraping** | `requires_scraping` | boolean | `false` |
| **Enable Redirect Resolution** | `enable_redirect_resolution` | boolean | `true` |

### When to use it

When you want a Google-quality grounded answer and your platform deployment is already on Google Cloud.

## Brave Search

_Display name in the UI: **Brave Search**_

### What it does

Sends your search query to Brave's Search API. Returns URLs, titles, and rich snippets (including extra snippet fragments per result).

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **Requires Scraping** | `requires_scraping` | boolean | `false` |

### When to use it

Fast, privacy-respecting alternative to Google.

## Jina Search

_Display name in the UI: **Jina Search**_

### What it does

Sends your search query to Jina's Search API. Returns URLs, titles, descriptions, and full Markdown page content in one call.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |

### When to use it

When you want a single API that does both search and content extraction.

## Tavily Search

_Display name in the UI: **Tavily Search**_

### What it does

Sends your search query to Tavily's Search API. Returns URLs, titles, snippets, and raw page content in one call.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **Search Depth** | `search_depth` | `basic` / `advanced` | `advanced` |
| **Topic** | `topic` | `general` / `news` / `finance` / unset | unset |

### When to use it

When latency matters and you want a single API for search + extraction.

## Firecrawl Search

_Display name in the UI: **Firecrawl Search**_

### What it does

Sends your search query to Firecrawl's Search API and returns results from configurable sources (web and/or news). Each result includes title, snippet, and full Markdown content.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **Sources** | `sources` | list of `web`, `news` | `[web, news]` |

### When to use it

When you want results that combine web and news sources.

## Customized API Search

_Display name in the UI: **Customized API Search Engine**_

### What it does

Sends your search query to a user-defined REST endpoint and expects a response that matches the standard Web Search results schema.

### Settings

| UI Label | Field | Type | Default |
| --- | --- | --- | --- |
| **Number of search results to fetch** | `fetch_size` | integer | `5` |
| **API Endpoint** | `api_endpoint` | string | `http://api.example.com` |
| **API Request Method** | `api_request_method` | `GET` / `POST` | `GET` |
| **API Headers** | `api_headers` | string (JSON) | `{"Content-Type": "application/json"}` |
| **API Additional Query Params** | `api_additional_query_params` | string (JSON) | `{}` |
| **API Additional Body Params** | `api_additional_body_params` | string (JSON) | `{}` |
| **Search Engine Mode** | `search_engine_mode` | `standard` / `agent` | `standard` |
| **Requires Scraping** | `requires_scraping` | boolean | `false` |
| **Timeout** | `timeout` | integer (seconds) | `120` |

### When to use it

When the engine you want is not one of the built-ins, or when you have an internal search service.
