webaz_discover
Buyer discovery over ACTIVE WebAZ listings (safe scope buyer_discover; OAuth grant). Structured intent — category and/or keywords, optional max_price/ship_to_region/quantity — NOT free chat text. ⚠️ MATCHING:
category = REGISTRY KEY, equality-matched (webaz://guide/categories). Unknown → 400 UNKNOWN_CATEGORY (+table+recommended_next_call); unique alias auto-corrects (category_resolved); ambiguous → 400 CATEGORY_AMBIGUOUS.
keywords substring-match TITLES; one explicit @anchor keyword resolves that anchor's product (matched_by:anchor). Default keyword_match:"all" (conjunctive); synonyms MUST use "any" (under "all" they zero out). Zero results carry per_keyword_hits.
Results are DISCOVERY CANDIDATES, never exact. Exact title/SKU/URL → webaz_search.
DISCLOSURE: every VALID query is recorded as a demand signal (intent + count) linked to your account; 400s not recorded. Term shape enforced (≤40 chars; emails/URLs/phones rejected); NO personal data. Only effect = that append-only write; no order/funds/PII.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Registry category KEY (equality-matched; webaz://guide/categories). Unique aliases auto-correct; unknown → 400 + table. | |
| keywords | No | Up to 5 short keywords, substring-matched against listing TITLES (at least one of category/keywords required) | |
| quantity | No | Desired quantity (default 1; filters by stock) | |
| max_price | No | Budget ceiling in USDC (optional) | |
| keyword_match | No | Default 'all' (conjunctive); use 'any' for synonyms/aliases (under 'all' they zero out). | |
| ship_to_region | No | ISO 3166-1 alpha-2 destination country (optional; filters out listings that cannot sell there) |