ScavioScavio
FeaturesPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Search Shopify Products via Google
Tutorial

How to Search Shopify Products via Google

Discover Shopify products across every store using Google SERP's product schema. No per-store OAuth needed.

Get Free API KeyAPI Docs

Shopify's Admin API is per-store and requires OAuth, which is useless for cross-store product discovery. Google aggressively indexes Shopify product pages with product schema markup, which means you can discover Shopify products at scale via Google SERP. This tutorial shows how to use Scavio to find Shopify products across every store.

Prerequisites

  • Python 3.8+
  • A Scavio API key
  • A target product category or search term

Walkthrough

Step 1: Build a Shopify-targeted Google query

Use site operators and Shopify-specific URL patterns.

Python
query = 'site:myshopify.com OR "powered by shopify" wireless earbuds under $50'

Step 2: Call Scavio for structured results

Scavio returns product-schema data when available.

Python
import requests, os

def shopify_search(query):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
        json={'query': query, 'num_results': 30})
    return r.json().get('organic_results', [])

Step 3: Filter to Shopify stores

Keep results that come from actual Shopify storefronts.

Python
def is_shopify(url):
    return 'myshopify.com' in url or any(m in url for m in ['/products/', '/collections/'])

shopify_results = [r for r in shopify_search(query) if is_shopify(r['link'])]

Step 4: Extract product data

For each Shopify URL, fetch the page and parse the structured data.

Python
def extract_product(url):
    r = requests.post('https://api.scavio.dev/api/v1/extract',
        headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
        json={'url': url, 'render_js': True, 'extract_schema': 'Product'})
    return r.json().get('schema', {})

Step 5: Assemble catalog

Build a normalized product catalog from the extracted data.

Python
catalog = []
for r in shopify_results[:10]:
    product = extract_product(r['link'])
    if product:
        catalog.append({
            'title': product.get('name'),
            'price': product.get('offers', {}).get('price'),
            'store': r['link'].split('/')[2],
            'url': r['link']
        })
print(catalog)

Python Example

Python
import os, requests

API_KEY = os.environ['SCAVIO_API_KEY']

def shopify_products(query, limit=10):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'query': f'{query} site:myshopify.com OR "powered by shopify"', 'num_results': 30})
    results = [o for o in r.json().get('organic_results', []) if '/products/' in o['link']]
    catalog = []
    for res in results[:limit]:
        product = requests.post('https://api.scavio.dev/api/v1/extract',
            headers={'x-api-key': API_KEY},
            json={'url': res['link'], 'render_js': True, 'extract_schema': 'Product'}).json().get('schema', {})
        if product:
            catalog.append({'title': product.get('name'), 'price': product.get('offers', {}).get('price'), 'url': res['link']})
    return catalog

print(shopify_products('wireless earbuds under 50'))

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
async function shopifyProducts(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: `${query} "powered by shopify"`, num_results: 30 })
  });
  const results = (await r.json()).organic_results.filter(o => o.link.includes('/products/'));
  const catalog = [];
  for (const res of results.slice(0, 10)) {
    const p = await fetch('https://api.scavio.dev/api/v1/extract', {
      method: 'POST',
      headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
      body: JSON.stringify({ url: res.link, render_js: true, extract_schema: 'Product' })
    });
    const { schema } = await p.json();
    if (schema?.name) catalog.push({ title: schema.name, price: schema.offers?.price, url: res.link });
  }
  return catalog;
}
console.log(await shopifyProducts('wireless earbuds under 50'));

Expected Output

JSON
A list of Shopify products across many stores, normalized with title, price, and URL. Dropshippers and competitive researchers can use this to find winning products without per-store Shopify API keys.

Related Tutorials

  • How to Track TikTok Trending Products
  • How to Build a Price Comparison Tool for Amazon and Walmart

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8+. A Scavio API key. A target product category or search term. A Scavio API key gives you 250 free credits per month.

Yes. The free tier includes 250 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best Search APIs After Google I/O 2026 AI Mode Changes

Read more
Best Of

Best Google Search API in 2026

Read more
Glossary

Search API Provider Landscape (2026)

Read more
Use Case

Dropship Product Research via API

Read more
Glossary

Free Search API Tier Comparison

Read more
Solution

Replace Google Programmable Search Engine with Scavio API

Read more

Start Building

Discover Shopify products across every store using Google SERP's product schema. No per-store OAuth needed.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy