Start here
Canadian search for people and agents
Banquise queries its own index of the public Web. It returns pages, citable passages and structured records; it does not resell another engine’s results or generate your model’s final answer.
- Web searchHost-diverse results, excerpts and provenance.
- AI contextDated passages within an explicit token budget.
- EntitiesStructured Canadian establishments, organizations and places.
- WebmastersIndexing guidance today; owner console foundation prepared.
Quick start
A beta key is required for machine-search routes. Keep it server-side in an environment variable; never commit its value.
curl --fail-with-body \
-H "Authorization: Bearer $BANQUISE_API_KEY" \
"https://www.banquise.ca/api/v1/search?q=library+Moncton&language=en&limit=10"
For an agent, prefer context: the response is bounded, sourced and ready to cite.
curl --fail-with-body -X POST \
-H "Authorization: Bearer $BANQUISE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"technology grants in New Brunswick",
"max_tokens":2000,"province":"NB","source_type":"government"}' \
https://www.banquise.ca/api/v1/context
Authentication and privacy
Send Authorization: Bearer … on protected machine routes. Banquise stores only the key’s SHA-256 hash and aggregate minute/day counters. It does not log the plaintext key, IP address, search text or a device fingerprint.
A successful response includes X-RateLimit-Limit-Minute, X-RateLimit-Remaining-Minute, X-RateLimit-Limit-Day and X-RateLimit-Remaining-Day.
Search API
Base: https://www.banquise.ca. The limits below are contract bounds, not your key’s individual quota.
| Method and route | Purpose and main bounds |
|---|---|
GET /api/v1/search | q (1–300), limit (1–20), offset (0–90), country and language. |
POST /api/v1/context | Agent passages; max_tokens 256–8000, max_sources 1–30, country, province, language, source and freshness filters. |
GET /api/v1/fresh | New or changed pages; 1h|6h|24h|7d|30d, up to 50 results. |
GET /api/v1/passages | Ordered continuation for a page_ref; 1–40 passages. |
GET /api/v1/entities | Records 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/images | Metadata 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"
}
MCP for agents
The HTTP MCP server is https://mcp.banquise.ca/mcp and requires the same Bearer key. Adapt header syntax to your client.
{
"mcpServers": {"banquise": {
"type": "http", "url": "https://mcp.banquise.ca/mcp",
"headers": {"Authorization": "Bearer ${BANQUISE_API_KEY}"}
}}
}
| Tool | Purpose |
|---|---|
banquise_context | Relevant, cited and bounded passages. |
banquise_search | Host-diverse Web results. |
banquise_fresh | Recently seen or changed pages. |
banquise_page | Passages from an indexed page. |
banquise_entities | Structured establishments, organizations and places. |
banquise_site | Technical evidence about a host. |
banquise_submit_url | Suggest or recrawl a public URL. |
banquise_request_status | Status of an earlier request. |
banquise_images | Metadata only; absent while disabled. |
BanquiseBot, submission and removal
BanquiseBot reads only public resources using unauthenticated GET or HEAD. It honours robots.txt, meta robots, meta banquisebot, X-Robots-Tag, per-origin politeness and safe redirects.
User-agent: BanquiseBot
Allow: /
Disallow: /account/
Sitemap: https://www.example.ca/sitemap.xml
noindexornoneexcludes the page and entities.nofollowstops link admission.nosnippetormax-snippet:0removes the excerpt.- A
canonicalis a grouping hint, never permission.
The Manage a URL form accepts discovery, recrawl, correction and exact removal. POST /api/v1/requests and GET /api/v1/requests/{id} are bounded; submission guarantees neither indexing nor position.
Structured data and snippets
Publish schema.org JSON-LD that matches visible content. Banquise currently reads LocalBusiness subtypes, Organization, Place, School and related public types. Microdata and RDFa are not yet supported.
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"LocalBusiness",
"name":"Example Workshop","url":"https://www.example.ca/",
"address":{"@type":"PostalAddress","addressLocality":"Moncton",
"addressRegion":"NB","addressCountry":"CA"}}
</script>
The HTML title, description, Schema.org dates and Open Graph can improve the excerpt. Declared data remains an observation of its source; Banquise does not guarantee it.
Banquise Webmaster Tools
The foundation supports domain properties, ownership verification and search-console diagnostics. Activation awaits phishing-resistant OIDC account authentication and security review; a weak local password will not be added.
Planned ownership proof
- Create a property after authentication.
- Receive a one-time random challenge of at least 256 bits.
- Prove domain control with DNS TXT; a host property may use a meta tag or
/.well-known/file. - Banquise checks through its anti-SSRF network path, hashes candidates and never stores the clear token.
- Proof expires, rotates and can be revoked; audit stores no IP, URL, secret or free text.
Planned diagnostics
- Known, indexed, excluded, queued and retrying URLs;
- sitemaps, status codes, canonical, noindex, snippets and freshness;
- structured data, entities, parsing errors and provenance;
- aggregate links without visitor logs;
- fast submission for verified URLs with visible status.
The fast lane reuses the durable PostgreSQL frontier claimed by workers with FOR UPDATE SKIP LOCKED. It is idempotent, deduplicated, bounded to verified-owner priority and subject to a daily property quota. It never bypasses robots, noindex, removal, politeness, DNS/redirect revalidation, backoff or dead-lettering.
Attribution without cross-site surveillance
A classic third-party pixel would disclose IP address, referrer and often a browser identifier. Banquise will not activate one. The first proposed integration is one static marker, identical for everyone, measured in the publisher’s own environment:
https://merchant.example/product?bq_source=banquise&bq_medium=organic
No click/user ID, third-party cookie, fingerprint, search query or IP is added. Any report back would be a server-to-server daily batch of aggregate counts authenticated to one property, with no individual event or visited URL.
Limits, errors and retries
| Code | Recommended action |
|---|---|
400 | Correct the host, URL or type. |
401 | Provide a valid Bearer key. |
404 | The resource or optional feature is absent. |
422 | Respect parameter types and bounds. |
429 | Honour Retry-After, then exponential backoff with jitter. |
503 | Temporary failure; retry a bounded number of times. |
Set network timeouts, cap retries and accept empty responses. A missing result means only that Banquise’s bounded index returned none.
