v1.0.0
Shopify Theme Detector Documentation
Everything you need to install, configure, and customize your Shopify theme and app detection tool.
Quick Start
Get running in 2 minutes
API Reference
Endpoints & responses
Deployment
Vercel, Netlify & more
Installation
1. Extract the files
Extract the downloaded ZIP file to your preferred location.
2. Install dependencies
npm install3. Set up environment
cp .env.example .env.local4. Start development server
npm run devOpen 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| Variable | Default | Description |
|---|---|---|
REQUEST_TIMEOUT | 10000 | HTTP request timeout in milliseconds |
DEBUG_MODE | false | Enable verbose console logging |
CACHE_TTL | 300 | How long to cache scan results (seconds) |
RATE_LIMIT_MAX | 30 | Max requests per minute per IP address |
API Reference
GET
/api/detectScan a URL for Shopify store information.
Request
GET /api/detect?url=https://example-store.myshopify.comResponse
{
"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/detectSame as GET but accepts JSON body. Supports force refresh.
Request Body
{
"url": "https://example-store.com",
"forceRefresh": true
}Error Responses
400
Invalid or missing URL429
Rate limit exceeded500
Scan failed (site unreachable, etc.)Deployment
VVercel (Recommended)
- Push your code to GitHub
- Go to vercel.com and import your repository
- Vercel auto-detects Next.js - click Deploy
- Add environment variables in Project Settings
Netlify
- Push your code to GitHub
- Import in Netlify
- Set build command:
npm run build - 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 startDocker
# Build image
docker build -t shopify-theme-detector .
# Run container
docker run -p 3000:3000 shopify-theme-detectorSecurity 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