---
title: "Web Search"
method: GET
path: "/v1/web-search/search"
tags: ["web-search"]
---

# Web Search

`GET /v1/web-search/search`

Run one search through this deployment's configured search provider.

The declared query params are the ``provider_options`` keys the providers
understand. Everything else the caller sends, ``format`` and ``engines``
included, is ignored rather than forwarded: the bag is opaque to the gateway
that filled it, so passing it upstream unread would let a workspace set
provider request fields this deployment never chose.

## Query parameters

- `q` string, required — The search query.
- `max_results` integer, nullable
- `search_depth` string, nullable
- `topic` string, nullable
- `time_range` string, nullable
- `include_answer` boolean, nullable

## Headers

- `x-gateway-token` string, nullable

## Response `200`

Successful Response

- WebSearchBackendResponse — A SearXNG-compatible ``/search`` body.
  - `results` WebSearchBackendResult[], required
    - `content` string
    - `extracted_content` string, nullable — The page's own text, when the provider returned it, so the caller can skip fetching the page.
    - `published_date` string, nullable — The provider's own recency string for the page, forwarded unparsed. Declared so a search over this hop renders the same date an in-process one does.
    - `title` string
    - `url` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-01** `e1330cf6addb` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/web-search/search/get.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc.dev/mozilla-ai/apis/otari/revisions/80c117c36f36?raw)
