Endpoints
GET /api/businesses
Returns a list of businesses. All parameters are optional and can be combined.
| Parameter | Type | Description | Example |
|---|---|---|---|
| city | string | Filter by city name (exact match) | city=Austin |
| state | string | Filter by state abbreviation | state=TX |
| category | string | Filter by business category (exact match) | category=Restaurant |
| platform | string | Filter by platform (partial match) | platform=Shopify |
| wordpress | string | Filter by WordPress usage: Yes, No, or Unknown |
wordpress=Yes |
| search | string | Search business name or notes (partial match) | search=pizza |
Response format:
// GET /api/businesses?city=Austin&category=Restaurant { "count": 2, "data": [ { "id": 412, "name": "Uchiko", "city": "Austin", "state": "TX", "category": "Restaurant", "website": "https://uchikoaustin.com", "uses_wordpress": "No", "platform": "Squarespace", "notes": "Upscale Japanese farmhouse restaurant. Squarespace site...", "created_at": "2026-03-08 00:00:00", "updated_at": "2026-03-08 00:00:00" } ] }
GET /api/stats
Returns aggregate statistics across the full database.
// GET /api/stats { "total": 2824, "wpCount": 627, "wpPercent": "22.2", "withWebsite": 2813, "byCategory": [ { "category": "Restaurant", "count": 480 } ], "byPlatform": [ { "platform": "WordPress", "count": 627 }, { "platform": "Shopify", "count": 394 } ] }
Reference Data
Categories
Valid values for the category parameter:
Example Queries
All restaurants in Austin, TX
https://40percentmyth.com/api/businesses?city=Austin&category=Restaurant
All WordPress sites in Chicago
https://40percentmyth.com/api/businesses?city=Chicago&wordpress=Yes
All Shopify stores across all cities
https://40percentmyth.com/api/businesses?platform=Shopify
Search for pizza restaurants
https://40percentmyth.com/api/businesses?category=Restaurant&search=pizza
Full stats
https://40percentmyth.com/api/stats
cURL example
curl "https://40percentmyth.com/api/businesses?city=Austin&category=Restaurant"
JavaScript (fetch) example
const res = await fetch('https://40percentmyth.com/api/businesses?city=Austin&category=Restaurant'); const { count, data } = await res.json(); console.log(`Found ${count} restaurants in Austin`);
Notes
Read-only: This API does not support write operations. POST, PUT, PATCH, and DELETE are not accepted.
CORS: All endpoints include Access-Control-Allow-Origin: * headers — safe to call from any browser or app.
No auth required: No API key, no sign-up, no rate limits. Please be reasonable with request volume.
Data quality: Platform detection uses a multi-layer approach: (1) HTML source inspection for platform-specific asset paths, JS variables, and meta tags; (2) HTTP response headers (X-Powered-By, X-Generator, cookies); (3) robots.txt path patterns; (4) sitemap.xml URL structure. Sites that block automated access are cross-referenced via Brave Search URL patterns. Businesses that can't be identified are marked Unknown/Custom.
Updated nightly: New cities and categories are added automatically each night via AI-assisted research.
About the Project
The 40% Myth investigates whether WordPress really powers 40% of the web. The "40%" statistic gets quoted constantly in marketing materials — but what does it look like for real local businesses on the ground?
We survey businesses city by city, checking every business's website platform directly. Our current research covers 20+ US cities and 3,000+ businesses across 6 categories.
Spoiler: the real number is closer to 22% — and falling as Shopify and Squarespace continue to grow.