Seekmodo developer docs

Reference for the REST shim, MCP JSON-RPC surface, and storefront connectors. Authenticate with HMAC; replay window is 5 minutes.

Quick start

  1. Sign up and pick a plan at seekmodo.com/pricing.
  2. Pair your storefront with the connector for your platform — see the Connectors tab.
  3. Hit the gateway at https://mcp.seekmodo.com. Every authenticated request carries an HMAC envelope (see REST).

Surfaces

SDK & headless storefronts

Sprint 7 shipped a public storefront SDK and a set of custom elements that consume it. Use these when you want to render search, recommendations, or chat directly in your storefront without writing the HMAC plumbing yourself.

  • SDKs — first-party clients for JavaScript / TypeScript, PHP, Python, Ruby, and Go. Browser storefronts use @seekmodo/sdk; server-side connectors use the language SDK that matches your stack. Start at the SDK hub.
  • Web Components — framework-agnostic <seekmodo-*> elements built on the SDK. Drop into any HTML page; styling via CSS variables and ::part.
  • Chat shopper — the first-party <seekmodo-chat> widget + the explicit "how chat-shopper meters" worked example merchants should sanity-check their /usage dashboard against. Building your own agent that calls Seekmodo search? See Build a shopper AI chatbot.
  • Starters — reference Hydrogen + Astro repos wiring all of the above together against a public demo tenant.

Authentication

Get your tenant_id and shared secret at admin.seekmodo.com → Settings → Developer / API credentials. The connector handles HMAC signing for you; if you're calling the API directly, you'll copy the key from there. You can rotate the secret any time — old secrets stay valid for 10 minutes after rotation so connectors trailing on their 5-minute config refresh don't see a hard 401 cliff.

Send these four headers on every authenticated request:

  • X-Seekmodo-Tenant — your tenant id
  • X-Seekmodo-Timestamp — Unix timestamp (seconds; ±5 minute replay window)
  • X-Seekmodo-Signature — HMAC-SHA256 of the raw HTTP body using your shared secret (hex digest). Prefer an SDK so you do not reimplement signing.

See REST for the full request / response reference, rendered live from the OpenAPI 3.1 spec.