Search

Search

Ask in plain language, get structured results your agent can trust — or an honest label saying it shouldn't.

Live scope — August 7, 2026: The browser Search playground queries curated entities (travel + restaurants, Bay Area). Agents on MCP also get search_web over SeaWeb’s own travel-focused crawl, with coverage labeled covered, uncertain, or unavailable. No external search fallback; an empty result never proves nothing exists on the wider web.

Two indexes — different surfaces

Agents usually use both. The human dashboard Search tab is entities only; open-web passages are the MCP search_web tool.

PagesEntities
What's in itWeb pages our own crawler fetched, quoted verbatimCurated, field-verified rows (hotels, attractions, tours, restaurants)
Toolssearch_websearch, get_entity, get_details
ShapePassages with url, title, fetched_atschema.org JSON-LD with canonical seaweb://{vertical}/{slug} ids
Use it forOpen questions: conditions, guidance, logisticsNamed places and structured filters: neighborhood, price band, hours, distance

Categories

Search can be scoped to a category — the same chips you see on the homepage. Each is a real, separate data surface, not a filter over generic results:

CategoryWhat it returns
sentimentHow travelers feel about a destination over time, aggregated by aspect (crowding, price, safety, weather, service, authenticity, accessibility) with source URLs as receipts
disruptionsStructured disruption events — strikes, weather, closures, unrest, health, infrastructure — each with a computed severity, confidence, and quoted source spans

Coverage is partial, not global — and an empty result can mean “nothing there” or “not covered,” so never render it as an all-clear. The disruption stream corroborates European meteorological, advisory, and transit feeds (including strikes) alongside US weather and State Department advisories.

The honesty label

This is the part that makes SeaWeb different from a scrape. Every result carries fields saying what the engine did with your words and how much to trust the row:

  • match_qualitystrong needs a real anchor: a satisfied constraint, a name reference, or the neighborhood you asked for. weak and below is filler the engine refuses to pass off as an answer.
  • coveragecovered (a returned page carries your subject in its own title or URL), uncertain (rows matched your words but none carries the subject — leads, not answers), or unavailable (the index couldn't be queried; says nothing about coverage).
  • Corrections are labeled — a repaired typo (corrected_from), a landmark resolved to its neighborhood (near_landmark), a relaxed filter (constraints_relaxed) — so a transformed match is never mistaken for a literal one.

An agent that reads the labels stops inventing. The full field list is in the coding-agent reference.

Coverage, stated plainly

Entity search (search) is San Francisco Bay Area only. Ask it for a hotel in Kyoto and it abstains with unresolved_location rather than answering from another city. Live counts today: 646 travel entities and 172 restaurants, plus five thinner verticals that are also searchable — news (351), workspace (142), hardware (112), salons (68), grocery (25). Five more (financial, on-demand, research, shopping, wikipedia) are registered but hold no entities and return nothing. Call list_verticals for current numbers rather than trusting this paragraph.

Page search (search_web) is worldwide but travel-focused. It answers on travel and hospitality subjects well outside the Bay Area — Kyoto, Paris, Tokyo, Rome — and thins out fast on smaller destinations. It is young and will abstain on plenty of subjects; abstention is the designed failure mode, not a confident wrong answer. Read its coverage field, but read it precisely: covered means retrieval returned passages, not that they answer your question. A non-travel query can still come back covered because travel pages happened to mention the words.