Chapters · Search API

Search API

Base: https://www.banquise.ca. The limits below are contract bounds, not your key’s individual quota.

Bearer-protected search routes
Method and routePurpose and main bounds
GET /api/v1/searchq (1–300), limit (1–20), offset (0–90), country and language.
POST /api/v1/contextAgent passages; max_tokens 256–8000, max_sources 1–30, country, province, language, source and freshness filters.
GET /api/v1/freshNew or changed pages; 1h|6h|24h|7d|30d, up to 50 results.
GET /api/v1/passagesOrdered continuation for a page_ref; 1–40 passages.
GET /api/v1/entitiesRecords filtered by text, province, locality and kind; up to 20.
GET /api/v1/entities/{id}Durable record, provenance, licence, observations and verification time.
GET /api/v1/site/{host}Host evidence: robots, scope, links, freshness and llms.txt.
GET /api/v1/imagesMetadata only when enabled; no bytes, previews or implied usage rights.

Search operators

Web search, GET /api/v1/search and banquise_search accept the same operators: "exact phrase", -word or --word, intitle:"annual report", site:canada.ca, inurl:budget and filetype:pdf. Prefix an operator with - to exclude it, for example -site:example.ca or -filetype:xls. Multiple positive domains or file types are alternatives; other terms must all match.

intitle:"index" site:canada.ca filetype:pdf -archive -inurl:login

Values are compiled into typed clauses and are never passed to an OpenSearch query string. banquise_context understands the same textual operators.

Trust contract

Every passage carries content_trust: "untrusted_web_content". Scores are signals, not claims. Cite source, inspect warnings, and never let indexed text instruct your agent.

{
  "context": [{"source": "https://…", "passage": "…", "page_ref": 4821,
    "cite": "…", "content_trust": "untrusted_web_content"}],
  "coverage": {"passages": 1, "hosts": 1}, "warnings": [],
  "tokens_estimated": 418, "token_budget": 2000, "ranking": "neural"
}