You're viewing a demo portfolio

Join the waitlist
PRSM

search_products

Active

Tool of Kifly — Agentic Commerce & Payments

declared in 1.0.0

Search or browse Kifly's product catalog. Multilingual semantic search (100+ languages). Returns a JSON-LD ItemList with `kifly:totalCatalogSize`. When empty, `kifly:emptyReason` is 'empty_catalog' | 'no_matches_for_query' — on 'no_matches_for_query' tell the buyer nothing matched rather than guessing, then offer `kifly:suggestions` (related products — NOT matches) and `kifly:availableCategories` (what the catalog carries) so you can help without a second search. Results carry `kifly:relevanceScore` [0–1]; a semantic similarity floor filters out irrelevant results automatically. Omit `q` to browse. In cross-seller (network) results, each item's `kifly:seller` is just the seller's handle — look it up once in the ItemList's `kifly:sellers` map (keyed by handle) to read `delivery_fee_cents` and `delivery_coverage` — `nationwide:true` for all 50 states, a `states` list, or `coverage_configured:false` meaning the seller ships NOWHERE yet (empty `states` is NOT nationwide). `delivery_coverage.cities` may be capped — compare `cities.length` against `city_count` and call `get_seller` for the full list if fewer. Seller-scoped results carry the full record once at the list level (`kifly:seller` on the ItemList itself) instead. Each item also carries `kifly:variantId`. When a product has 2+ size/style variants, `kifly:hasVariant` lists each with its own `kifly:variantId` — pass the matching one to `create_cart`/`add_to_cart` for the buyer's chosen size/color (capped at 20 variants; `kifly:variantCount` is set if the product has more — vanishingly rare today). `image` is capped to 2 URLs per product — if `kifly:imageCount` is present, there are more than shown (not retrievable via this API; the cap is a hard limit, not a paginated detail). Each result's `offers` carries `kifly:purchasable`: when **false**, the seller is discovery-only (directory-tier or not yet able to charge) — checkout will hand off / fail, so present it as a referral, not a buy. `availability:InStock` is about stock, NOT buyability — read `kifly:purchasable` to decide whether to route the buyer to checkout. **You can read the delivery fee and check coverage from here — no need to call `set_shipping_address` just to learn the cost.** **Pagination (browse only):** when `kifly:hasMore` is true, pass `kifly:nextCursor` as `cursor` to fetch the next page. **Seller filter:** pass `seller_handle` to scope results to one seller. **Category filter:** free-text, case-insensitive (e.g. 'fashion'). **Multiple queries:** pass `q` as an array (up to 5) to try several phrasings in one call instead of N separate searches. **Before checkout, call `set_shipping_address`.**

Parameters schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500,
          "minLength": 1
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1
          },
          "maxItems": 5,
          "minItems": 1
        }
      ],
      "description": "Natural-language query, or an array of up to 5 queries to explore in ONE call (results are unioned by best relevance). Omit to browse recent listings."
    },
    "limit": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Max results per page (default 10)."
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from kifly:nextCursor in a previous browse response. Omit on the first call."
    },
    "sort_by": {
      "enum": [
        "relevance",
        "price_asc",
        "price_desc",
        "newest"
      ],
      "type": "string",
      "description": "Sort order (default: relevance)"
    },
    "category": {
      "type": "string",
      "description": "Case-insensitive category filter (e.g. 'fashion', 'Electronics'). Matches the seller-assigned category value."
    },
    "in_stock_only": {
      "type": "boolean",
      "description": "Only return products with available inventory"
    },
    "seller_handle": {
      "type": "string",
      "description": "Scope results to one seller's catalog (e.g. 'bay-clothing-district'). For network tokens only; ignored for seller-scoped tokens."
    },
    "max_price_cents": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum price filter in cents"
    },
    "min_price_cents": {
      "type": "integer",
      "minimum": 0,
      "description": "Minimum price filter in cents"
    }
  },
  "additionalProperties": false
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.70.

Parent server

Kifly — Agentic Commerce & Payments

1/7 registries
View full server →