Searchanise is a search bar. Trooply is a vision model.
Both cover text search, synonyms, and merchandising. Only Trooply also covers image, crop, multi-image, fusion and voice search — on the same tenant, same API, same merchandising rules.
Visual search, natively.
Trooply indexes every product with CLIP ViT-L/14. Shoppers can upload a photo, crop a region, stack multiple references, or combine image + text in one query. Searchanise is text-only.
Parity on the bar.
Pin, boost, bury. Synonym groups. Stop-word lists. Time-bounded promotions. Badges on cards. All shipped as of April 2026 — the same primitives Searchanise merchants expect.
Photo-quality audit.
Trooply scores every catalog image for resolution, focus, exposure and contrast, then tells the merchant which SKUs to re-shoot and why. Searchanise ships no such report.
Feature by feature.
Compiled from the live Searchanise product page and the Trooply roadmap (docs, API reference, features). Last refreshed 2026-04-24.
| Capability | Searchanise | Trooply |
|---|---|---|
| Search surface | ||
| Text search with typo tolerance | Yes | Yes |
| Autocomplete & suggestions | Yes | Yes |
| Instant-search type-ahead (products + queries in dropdown) | Yes | Yes · /v1/search/autocomplete · P95 < 50 ms |
| Image-upload visual search | — | Yes · /v1/search/url |
| Image search from a camera snap | — | Yes · via widget |
| Crop / region search (bounding box) | — | Yes · /v1/search/crop |
| Multi-image reference search | — | Yes · /v1/search/multi-image |
| Fusion (image + text) search | — | Yes · /v1/search/fusion |
| Voice / speech search | — | Yes · /v1/search/voice |
| Natural-language filter parsing | — | Yes · Gemma 4 E4B |
| Relevance & explainability | ||
| Per-category scoring weights | — | Yes · 10 profiles |
| Product-type hard-gate on mismatches | — | Yes |
| "Why this match" one-line explanation | — | Yes · per result |
| Attention heatmap on results | — | Yes |
| Low-confidence collapse & floor | — | Yes · 35% default |
| Merchandising | ||
| Pin products to top of a query | Yes | Yes |
| Boost / bury by query or category | Yes | Yes |
| Time-bounded promotions | Yes | Yes · start_at / end_at |
| Synonym groups | Yes | Yes · /v1/search-config/synonyms |
| Stop words | Yes | Yes · /v1/search-config/stopwords |
| Product badges (New / Sale / Hot) | Yes | Yes · metadata.badges |
| Custom promo banners in results | Yes | Yes · /v1/promo-banners |
| "Did you mean" suggestions in response | Yes | Yes · Gemma 4 E4B, auto-fires on weak / empty results |
| Catalog & indexing | ||
| One-click Shopify install | Yes | Yes · OAuth + webhooks |
| WooCommerce / BigCommerce / Magento addons | Yes | Shopify + CS-Cart shipped · Woo / Magento / BigCommerce queued |
| REST API for direct indexing | Yes | Yes · bulk + async jobs |
| Custom fields with auto filter UI | Yes | Yes · filter/facet/range |
| Duplicate detection at index time | — | Yes · /v1/products/check-duplicates |
| Photo-quality audit + fix hints | — | Yes · /v1/products/quality-audit |
| Auto colour / type / attribute extraction | — | Yes · CLIP + Gemma |
| Front-end & widgets | ||
| Drop-in instant-search widget | Yes | Yes · public-key, Origin-bound |
| Web component / framework-agnostic embed | Yes | Yes · <trooply-search-widget> |
| npm package for framework builds | — | Yes · @trooply/search-widget (ESM + TS types) |
| Versioned CDN path (pinned, immutable) | — | Yes · /widget/v1/search-widget.js, Cache-Control: immutable |
| Frequently-bought-together strip on search results | — | Yes · co-purchase aggregation + widget strip on card click (data-show-fbt) |
| Variants as separate result rows (colour / size ranked individually) | Yes | Yes · POST /v1/products/with-variants + collapse_variants toggle |
| Sibling-variants lookup for "Other colours" strip | — | Yes · GET /v1/products/{id}/variants · resolves from parent or variant id |
| Quick view / add-to-cart on card | Yes | Yes · trooply:add-to-cart event + quick-view deep link |
| Multi-language storefront | Yes | Yes · per-tenant localisation |
| Multi-language widget UI | Yes | Yes · 9 locales (en / es / fr / de / pt / it / ja / hi / zh) |
| Analytics & personalisation | ||
| Zero-result / popular-query reports | Yes | Yes · /v1/search/analytics |
| Demand-vs-inventory gap report (severity-scored) | — | Yes · /analytics/demand-gap + portal card |
| Rising-search / seasonality trend report | — | Yes · /analytics/rising-searches with NEW badge |
| Trending searches endpoint | Yes | Yes · /v1/search/trending (1h / 24h / 7d / 30d) |
| Revenue attribution on feedback | Yes | Yes · order_value on purchase + /feedback/revenue |
| Filter analytics — which facets get used | Yes | Yes · /v1/search/analytics/filters |
| Conversion attribution dashboard | Yes | Yes · /portal/analytics revenue / top-queries / AOV |
| Session-level personalisation | Yes | Yes · CLIP centroid blend + facet rerank |
| A/B testing framework | Partial | Partial · weight overrides live |
| Platform & governance | ||
| Multi-tenant with RBAC | Yes | Yes · team groups + roles |
| Image moderation / NSFW gate (catalog + shopper uploads) | — | Yes · CLIP zero-shot over 8 categories · shadow / moderate / strict modes · tenant policy editor at /portal/moderation · 403 on enforced block |
| Per-tenant moderation thresholds + audit log | — | Yes · per-category sliders, append-only moderation_logs, shadow→enforce lifecycle |
| Public OpenAPI + SDKs | — | Yes · Python + JS, OpenAPI spec |
| Self-hostable inference | — | Yes · Enterprise tier |
| Transparent per-search pricing | Product-count tiers | Yes · search-volume tiers |
Six things Searchanise can't match.
These aren't marketing claims — each one maps to a shipped endpoint or feature you can call today.
CLIP ViT-L/14 behind every query.
Text and image share a single embedding space. Same index, same filters, same merchandising rules — one call at /v1/search/text or /v1/search/url.
Match Analysis on every result.
Click any card to see the colour overlap, aspect-ratio score, category match and one-line explanation. Tune weights per tenant in the portal.
Photo-quality audit + fix hints.
GET /v1/products/quality-audit returns the worst-scoring SKUs with actionable remediation ("re-shoot with diffused lighting", "upload ≥ 800×800").
API-first, Origin-bound widget keys.
Public pk_live_ keys are scoped to the domains you allow-list. Server-side sk_live_ keys stay server-side — no secret-in-page-source pattern.
Crop, multi-image, fusion.
Isolate a handbag out of a street photo. Pin three reference images. Combine "like this" with "under $200, in-stock, red". Each is one endpoint.
Per-category scoring profiles.
Apparel searches weight colour heavily; electronics weight aspect-ratio and category. Ten profiles ship by default — override any weight per tenant.
Moving from Searchanise.
There's no lock-in to unwind. Export your catalog, index it into Trooply with one bulk call, keep your Shopify install, swap the widget snippet.
1 · Export from Searchanise
- In the Searchanise admin, open Settings → Export and download the product feed (CSV or JSON).
- Keep the columns for
id,title,image_url,price,tags,categories,vendor. - Rename columns to Trooply fields:
product_id,name,image_url,price,tags,category,vendor. - Custom Searchanise fields map straight into Trooply custom fields — declare them once at
/v1/custom-fields.
2 · Index into Trooply
- Sign up at /signup — you'll get
client_idandclient_secret. - Exchange for a bearer token at
POST /oauth/token. - Stream products in via
POST /v1/products/bulk— the endpoint returns a job id, pollGET /v1/jobs/{id}. - Swap the widget snippet on your storefront — same pattern as Searchanise's, one script tag with a public key.
# Bulk-index from a JSON feed exported above curl https://search.trooply.ai/v1/products/bulk \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d @catalog.json
See the matrix run on your catalog.
Free tier is enough to index a thousand products. Upgrade only when conversions justify it.