Endpoints for merchants and AI developers: connect agents over MCP, publish a product feed, and check AI visibility programmatically.
The Model Context Protocol (MCP) endpoint lets AI assistants (ChatGPT, Claude, Gemini, and any MCP client) search real product data across connected stores. Requests are JSON-RPC 2.0 over HTTP.
https://api.shop2llm.com/mcpsearch_products — search products across all connected stores. Parameters: query (string, required), limit (integer, optional — default 10, max 50).get_product — fetch full details for one product. Parameters: product_id (string, required) and store_id (string, required — both are returned by search_products).curl -X POST https://api.shop2llm.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": { "query": "running shoes", "limit": 10 }
}
}'
MCP clients authenticate with OAuth 2.1 (authorization code flow with PKCE) or an API key — both are handled by the gateway.
Every license key exposes a Google-compatible CSV product feed. The license key in the path acts as the credential — no extra auth headers needed.
https://api.shop2llm.com/fincore/v1/feed/{LICENSE_KEY}Cache-Control: max-age=3600).https://api.shop2llm.com/fincore/v1/feed/{LICENSE_KEY}/infoJSON statistics for the same feed — store URL, product count, currency, and data-quality counts (missing image / price / description).
curl https://api.shop2llm.com/fincore/v1/feed/{LICENSE_KEY}/info
Run the public AI visibility analyzer against any store URL. No account required.
https://api.shop2llm.com/fincore/v1/ai-check/analyzecurl -X POST https://api.shop2llm.com/fincore/v1/ai-check/analyze \
-H "Content-Type: application/json" \
-d '{"url":"https://store.com"}'
The response includes an overall score (0–100), a level (excellent / good / fair / poor), and a factors summary — llms.txt presence, AI-crawler rules in robots.txt, JSON-LD schema types, meta description, sitemap, and per-engine detection.
Rate limit: 20 requests per hour per IP. Exceeding it returns HTTP 429 with {"error":"rate_limited"}.
Session-authenticated endpoints accept the token either as a standard Authorization: Bearer <token> header or as X-Shop2LLM-Token: <token> — both are equivalent; the latter is useful where proxies strip the Authorization header.
| Scope | Limit | When exceeded |
|---|---|---|
AI visibility check (/v1/ai-check/analyze) | 20/h per IP | HTTP 429, body {"error":"rate_limited"} |
Product feed (/v1/feed/{KEY}) | 1-hour cache window | Repeat reads are served from cache, no penalty |
MCP server (/mcp) | OAuth 2.1 or API key | Unauthenticated calls are rejected by the gateway |
A 429 response means the windowed counter for your IP bucket is full — retry after the window resets. Nothing is charged and no quota is consumed.