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

# Store reports

What's inside a ShopSniffer report — products, collections, pages, metadata, insights, PageSpeed, and downloadable exports.

## Overview

A ShopSniffer report is a comprehensive snapshot of a Shopify store at a point in time. This page covers what's inside a report, how to create one, and how to retrieve results programmatically. For the full API reference see [the jobs API](/api/jobs).

## What's in a report

- **Products** — Full product catalog with titles, descriptions, prices, variants, images, tags, vendor, product type, and SEO metadata.
- **Collections** — All collections with titles, descriptions, images, and associated product handles.
- **Pages** — Static pages with titles, content (HTML body), and metadata.
- **Shop metadata** — Store name, description, currency, detected theme, detected apps, external scripts.
- **Insights** — Top vendors, price range statistics, product type breakdown, change count vs previous report.
- **PageSpeed** — Google Lighthouse scores for performance, accessibility, best practices, and SEO.
- **Downloads** — Exportable CSV and JSON files ready for Shopify import or analysis.

## Creating a report

Use the website or the API. On the website, enter a Shopify store domain and click **Get full report**. Via API:

```bash
curl -X POST https://shopsniffer.com/api/jobs \
  -H "X-API-Key: ss_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"domain": "gymshark.com"}'
```

```json title="Response 201"
{
  "job": {
    "id": "abc-123",
    "domain": "gymshark.com",
    "slug": "gymshark-com",
    "status": "pending"
  }
}
```

## Checking report status

Reports typically complete within a few minutes depending on store size. For real-time updates, subscribe to the WebSocket at `wss://shopsniffer.com/api/ws/:jobId` — no polling required.

Alternatively, poll `GET /api/jobs/:id/status`:

```bash
curl https://shopsniffer.com/api/jobs/abc-123/status
```

```json title="Response 200"
{
  "id": "abc-123",
  "status": "processing",
  "domain": "gymshark.com",
  "product_count": 450,
  "collection_count": 28,
  "page_count": 12
}
```

Status lifecycle: `pending` → `processing` → `completed` (or `errored`). See [jobs API](/api/jobs#status-lifecycle) for details.

## Viewing a report

Once completed, the full report is available at `https://shopsniffer.com/report/JOB_ID` in the browser, or via API:

```bash
# Full job data with metadata, insights, and download links
curl https://shopsniffer.com/api/jobs/abc-123

# Report with products, collections, pages
curl https://shopsniffer.com/api/reports/abc-123
```

## Next steps

**[How it works](/how-it-works)**

The pipeline that turns a domain into a report.
  **[Jobs API](/api/jobs)**

Create, poll, and stream job progress.
  **[Downloads](/downloads)**

What files come with every report.
  **[Monitoring](/monitoring)**

Turn one-off reports into continuous tracking.