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.

bash
curl 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.

bash
curl 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.

bash
curl 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 string required

URL to fetch OpenGraph tags from.

bash
curl -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.

domain string required

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.

orderId string required

AnySpend order UUID returned by create-order.

json
{ "order": { "id": "order_uuid", "status": "confirmed", "job_id": "linked-job-uuid", "tx_hash": "0x…" } }

Status values: pendingdetectedconfirmedexecuted | 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.

name string required

App name (URL-encoded).


GET /blog Stable

List published blog posts. Powers shopsniffer.com/blog.

page integer default: 1
Page number.
limit integer default: 10
Results per page (max 100).
category string
Filter by category slug.

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.

Next steps

API overview

Back to the main API index.

Learn More
AI agent integration

How to use the well-known files and OpenAPI spec in an agent.

Learn More
Ask a question... ⌘I