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

# Web Search

`GET /gateway/v1/search/web`

Searches web pages, articles, and content by keyword.

**Filters:** domain via `site` (e.g. `coindesk.com`).

**Included fields:** titles, URLs, content snippets.

## Query parameters

- `q` string, required — Search query like `bitcoin price prediction 2026`
- `limit` integer — Results per page
- `offset` integer — Pagination offset
- `site` string — Comma-separated domain filter like `coindesk.com` or `cointelegraph.com`
- `include_content` boolean — When false (default), search returns title/url/description only — fast (~2-3s) URL discovery. Set true to also include full markdown content for each result (~5-30KB per result, ~10-15s for limit=5). Use true only when the caller needs page content inline and won't follow up with `/web/fetch`.

## Response `200`

OK

- DataResponseWebSearchResultItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` WebSearchResultItem[], nullable, required
    - `content` string, required — Relevant content snippet from the page
    - `description` string, required — Short description or meta description of the page
    - `title` string, required — Page title from the search result
    - `url` string, required — Full URL of the search result page
  - `meta` OffsetMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable
    - `has_more` boolean — Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required — Maximum number of items returned in this response
    - `offset` integer, required — Number of items skipped (pagination offset)
    - `total` integer — Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer — Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/498f461e81c4/schema)
