> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shopsniffer.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.

**Fetch the spec**

```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](/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 to fetch OpenGraph tags from.

**Fetch OG tags**

```bash
curl -X POST https://shopsniffer.com/api/opengraph \
  -H "Content-Type: application/json" \
  -d '{"url": "https://allbirds.com"}'
```

**OG data**

```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.

**Order created**

```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.

**Order status**

```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`.

**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`.

Page number.
Results per page (max 100).
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](/api)**

Back to the main API index.
  **[AI agent integration](/agent-integration)**

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