Google Chrome extension icon Discover Shopify App Detector Extension.

Add to Chrome

Shopify App Detector API

Professional API for detecting Shopify apps, themes, and technologies with enterprise-grade reliability

Overview

The Shopify App Detector API analyzes websites to detect installed Shopify apps, themes, and technologies. Built for developers, researchers, and businesses who need reliable e-commerce intelligence.

Base URL: https://api1.shopscan.app/

Key Features

  • Detect Shopify apps and themes from any store
  • Support for homepage, product, and collection page URLs
  • Rate limiting with 3 requests per second
  • Headless browser support for JavaScript-heavy sites
  • Comprehensive app categorization
  • Real-time scanning with 99.9% uptime

Authentication

All API requests require a valid API key passed as a query parameter. Contact our sales team to obtain your API key.

Parameter Type Required Description
api_key string Required Your unique API authentication key
Rate Limiting: 3 requests per second per API key. Exceeding this limit will result in 429 responses.

API Endpoints

GET /

Scan a website and detect Shopify apps, theme, and technologies.

Parameters

Parameter Type Required Description
api_key string Required Your API authentication key
domain string Required Domain to scan (e.g., "example.com")
url string Optional Alternative to domain parameter

Example Request

curl "https://api1.shopscan.app/?domain=devluxx.com&api_key=your_api_key"

Response Examples

Shopify Store Response

200 OK

Successful scan of a Shopify store

{ "status": true, "isShopify": true, "theme_name": "Dawn", "title": "Shopify Web Development Agency – DevLuxx.com", "matched_apps": [ { "name": "Judge.me", "short_description": "Product Reviews", "long_description": "empty", "app_store_url": "https://shopify.pxf.io/XmZ3mX", "image": "/images/apps/judge-me-product-reviews.webp", "category": "App", "recommended": false }, { "name": "Klaviyo", "short_description": "Email and social campaigns", "long_description": "empty", "app_store_url": "https://shopify.pxf.io/XmZ3mX", "image": "/images/apps/Klaviyo-Email-Marketing-SMS.webp", "category": "App", "recommended": false } ], "theme_info": { "name": "Dawn", "description": "A minimalist theme that lets product images take center stage.", "theme_store": "Shopify", "image_url": "images/themes/dawn.webp", "theme_store_url": "https://shopify.pxf.io/MmdNo3" } }

Non-Shopify Store Response

200 OK

Website is not a Shopify store

{ "status": true, "isShopify": false }

Response Fields

Field Type Description
status boolean Always true for successful requests
isShopify boolean true if store is hosted on Shopify
theme_name string Name of the detected Shopify theme
title string Page title of the scanned website
matched_apps array List of detected Shopify apps
theme_info object|null Theme details or null if not found

Code Examples

const response = await fetch('https://api1.shopscan.app/?domain=devluxx.com&api_key=your_api_key'); const data = await response.json(); if (data.status && data.isShopify) { console.log('Theme:', data.theme_name); console.log('Apps found:', data.matched_apps.length); console.log('Theme info:', data.theme_info); } else if (data.status && !data.isShopify) { console.log('Not a Shopify store'); } else { console.error('Error:', data.message); }
import requests url = "https://api1.shopscan.app/" params = { "domain": "devluxx.com", "api_key": "your_api_key" } response = requests.get(url, params=params) data = response.json() if data.get('status') and data.get('isShopify'): print(f"Theme: {data['theme_name']}") print(f"Apps found: {len(data['matched_apps'])}") print(f"Theme info: {data['theme_info']}") elif data.get('status') and not data.get('isShopify'): print("Not a Shopify store") else: print(f"Error: {data['message']}")
Error:
# Scan a Shopify store curl "https://api1.shopscan.app/?domain=devluxx.com&api_key=your_api_key" # Scan a specific page curl "https://api1.shopscan.app/?domain=store.com/products/item&api_key=your_api_key" # Check if a site is Shopify curl "https://api1.shopscan.app/?domain=example.com&api_key=your_api_key"

Error Handling

Error Responses

401 Unauthorized

Invalid or missing API key

{ "error": true, "message": "Invalid or missing API key" }
400 Bad Request

Website not accessible

{ "status": false, "error": true, "message": "Website not accessible or denied" }
429 Rate Limited

Too many requests

{ "error": true, "message": "Rate limit exceeded", "limit": "3 requests per second", "retry_after": 1 }

HTTP Status Codes

Code Description
200 Success (both Shopify and non-Shopify responses)
400 Bad Request (missing parameters, website not accessible)
401 Unauthorized (invalid or missing API key)
429 Rate Limited (too many requests)
500 Internal Server Error
Best Practices:
  • Always check the status and isShopify fields
  • Handle theme_info being null for unknown themes
  • Implement exponential backoff for 429 responses
  • Set appropriate timeouts (recommended: 60 seconds)
  • Cache results to minimize API calls