Miscellaneous API endpoints
OpenGraph fetcher, AnySpend payment orders, apps catalog, blog, OpenAPI spec, and well-known discovery files.
Overview
Utility and platform endpoints that don't fit cleanly into jobs, reports, or monitoring. Most are public and read-only.
Base URL: https://shopsniffer.com/api
GET /openapi.json Stable
Full OpenAPI 3.1 specification. Use for automated client generation (Postman, Insomnia, Speakeasy, Stainless) and AI tool discovery.
Auth: None.
bashcurl https://shopsniffer.com/api/openapi.json
The spec's servers[0].url is https://shopsniffer.com/api. Security schemes: ApiKeyAuth (X-API-Key header) and BearerAuth (legacy Clerk JWT field name, now backed by Better Auth sessions).
/.well-known/agents.json Stable
Agent discovery manifest describing ShopSniffer's capabilities, pricing, and supported auth methods. Machine-readable counterpart to the home page.
bashcurl https://shopsniffer.com/.well-known/agents.json
See AI agent integration for the full agent discovery flow.
/.well-known/ai-plugin.json Stable
OpenAI plugin manifest — legacy format still supported for GPT integrations.
bashcurl https://shopsniffer.com/.well-known/ai-plugin.json
/llms.txt Stable
Short-form LLM-friendly summary of the ShopSniffer site — structured for AI crawlers.
/llms-full.txt Stable
Full-content LLM-friendly dump of the ShopSniffer site — every docs page, every store page, every blog post, as plain text.
POST /opengraph Stable
Fetch OpenGraph tags from an arbitrary URL. Used internally by link previews but exposed for clients that want to inspect a store's og:* metadata.
Auth: None.
URL to fetch OpenGraph tags from.
bashcurl -X POST https://shopsniffer.com/api/opengraph \ -H "Content-Type: application/json" \ -d '{"url": "https://allbirds.com"}'
json{ "title": "Allbirds — Natural Materials, Sustainable Shoes", "description": "Comfortable footwear made from natural materials.", "image": "https://cdn.shopify.com/…/og.png", "site_name": "Allbirds" }
POST /anyspend/create-order Stable
Create a crypto payment order via AnySpend. Returns a hosted checkout URL that accepts any token on any supported chain. Used by the website's "Pay with crypto" flow.
Auth: None.
Shopify store domain the report is being purchased for.
json{ "order": { "id": "order_uuid", "checkout_url": "https://checkout.anyspend.com/…", "deposit_address": "0x…", "amount_usdc": "9.99", "expires_at": "2026-04-12T11:00:00Z" } }
GET /anyspend/status/:orderId Stable
Check the status of a crypto payment order.
AnySpend order UUID returned by create-order.
json{ "order": { "id": "order_uuid", "status": "confirmed", "job_id": "linked-job-uuid", "tx_hash": "0x…" } }
Status values: pending → detected → confirmed → executed | expired | failed.
GET /apps Stable
List every Shopify app in the detection database. Used by the public apps directory at https://shopsniffer.com/apps.
json{ "apps": [ { "name": "Klaviyo", "category": "Email marketing", "store_count": 8421 }, { "name": "Judge.me", "category": "Reviews", "store_count": 6213 } ] }
GET /apps/:name Stable
Details for a specific app by name, including the stores that have it installed.
App name (URL-encoded).
GET /blog Stable
List published blog posts. Powers shopsniffer.com/blog.
GET /blog/:slug Stable
Fetch a single blog post by slug. Add ?preview=1 (admin only) for draft preview.
POST /blog Admin only
Create a blog post. Requires admin Better Auth session. Typically invoked by the AutoPublishBlogWorkflow cron, not by hand.