Shopify Theme Detector
Back to App

Documentation

v1.0.0

Shopify Theme Detector Documentation

Everything you need to install, configure, and customize your Shopify theme and app detection tool.

Installation

1. Extract the files

Extract the downloaded ZIP file to your preferred location.

2. Install dependencies

npm install

3. Set up environment

cp .env.example .env.local

4. Start development server

npm run dev

Open http://localhost:3000 in your browser.

Configuration

Configure the application by editing .env.local:

# Request timeout in milliseconds
REQUEST_TIMEOUT=10000

# Enable debug logging
DEBUG_MODE=false

# Cache TTL in seconds (5 minutes default)
CACHE_TTL=300

# Rate limit: max requests per minute per IP
RATE_LIMIT_MAX=30
VariableDefaultDescription
REQUEST_TIMEOUT10000HTTP request timeout in milliseconds
DEBUG_MODEfalseEnable verbose console logging
CACHE_TTL300How long to cache scan results (seconds)
RATE_LIMIT_MAX30Max requests per minute per IP address
API Reference
GET
/api/detect

Scan a URL for Shopify store information.

Request

GET /api/detect?url=https://example-store.myshopify.com

Response

{
  "success": true,
  "data": {
    "url": "https://example-store.com",
    "isShopify": true,
    "confidenceScore": 95,
    "theme": {
      "name": "Dawn",
      "themeId": "12345678",
      "themeStoreId": "887",
      "author": "Shopify",
      "source": "shopify-theme-store",
      "provider": "Shopify Theme Store"
    },
    "apps": [
      {
        "name": "Klaviyo",
        "slug": "klaviyo",
        "category": "Marketing",
        "detectedBy": "script"
      }
    ],
    "storeInfo": {
      "plan": "basic",
      "cdn": "Shopify CDN",
      "ssl": { "enabled": true },
      "paymentGateways": ["Shopify Payments", "PayPal"]
    },
    "siteInfo": {
      "title": "Example Store",
      "currency": "USD",
      "country": "US"
    },
    "scannedAt": "2025-01-02T12:00:00.000Z"
  },
  "cached": false
}
POST
/api/detect

Same as GET but accepts JSON body. Supports force refresh.

Request Body

{
  "url": "https://example-store.com",
  "forceRefresh": true
}

Error Responses

400
Invalid or missing URL
429
Rate limit exceeded
500
Scan failed (site unreachable, etc.)
Deployment

VVercel (Recommended)

  1. Push your code to GitHub
  2. Go to vercel.com and import your repository
  3. Vercel auto-detects Next.js - click Deploy
  4. Add environment variables in Project Settings

Netlify

  1. Push your code to GitHub
  2. Import in Netlify
  3. Set build command: npm run build
  4. Set publish directory: .next

Self-Hosted (VPS)

# Build the application
npm run build

# Start with PM2 (recommended)
npm install -g pm2
pm2 start npm --name "shopify-detector" -- start

# Or run directly
npm run start

Docker

# Build image
docker build -t shopify-theme-detector .

# Run container
docker run -p 3000:3000 shopify-theme-detector
Security Features
  • Rate Limiting

    Built-in per-IP rate limiting prevents abuse

  • Input Validation

    All URLs are sanitized and validated before processing

  • No Data Storage

    Results are cached temporarily in memory, never persisted

  • HTTPS Only

    All external requests use secure HTTPS connections

Shopify Theme Detector v1.0.0

Built with Next.js, React, and TypeScript