ScreenshotNeo

BlogHow-to

How to Screenshot a Shopify Store with PagePeeker for Indian Sellers

Use PagePeeker’s V2 API to get a thumbnail of a public Shopify storefront. See the request format, plan details, troubleshooting tips, and limits on India-specific captures.

By the ScreenshotNeo team4 October 20267 min read

To screenshot a public Shopify storefront with PagePeeker, send its URL to PagePeeker’s V2 thumbnail endpoint, thumbs.php, with a supported size and URL-encoded target URL. The returned image is a thumbnail generated by PagePeeker’s service; the reviewed documentation does not describe a Shopify app, a button in Shopify admin, or an India-based capture location.

1. Copy the public storefront URL

Open the storefront or specific public page you want to represent, then copy its full URL, including https://. For example:

https://example.myshopify.com/

You can also use a page on a custom domain, such as https://store.example.in/collections/sale. The target must be reachable by PagePeeker. Shopify’s Storefront API describes an onlineStoreUrl for a page published to the Online Store sales channel; that URL may be null when the page is not published there. Use a public storefront URL for this workflow. The reviewed sources do not establish PagePeeker support for authenticated, password-protected, or unpublished pages. See Shopify’s Page object documentation.

2. Choose a thumbnail size

PagePeeker’s V2 documentation lists these standard size codes and dimensions:

Size code Dimensions Typical use
t 90 × 68 px Small preview
s 120 × 90 px Compact card
m 200 × 150 px Standard thumbnail
l 400 × 300 px Larger preview
x 480 × 360 px Largest listed standard size

Premium accounts may have additional sizes. Check PagePeeker’s V2 API documentation for current availability and account requirements.

3. Request the thumbnail with PagePeeker V2

The documented direct-link pattern is:

http://{entrypoint}.pagepeeker.com/v2/thumbs.php?size={size}&code={code}&refresh={refresh}&wait={wait}&url={url}

Use the applicable PagePeeker entrypoint and account setup. Replace placeholders with values from your account and URL-encode the target URL as a query parameter. Do not copy a made-up access code or publish private account credentials. PagePeeker’s legacy V1 is discontinued and redirects to V2.

For a basic request, include the documented endpoint, the size, any required account code, and the encoded URL. The following is a template, not a live credential or guaranteed working endpoint; substitute the entrypoint and code specified for your account:

curl -G "http://YOUR_ENTRYPOINT.pagepeeker.com/v2/thumbs.php" \
  --data-urlencode "size=m" \
  --data-urlencode "code=YOUR_PAGEPEEKER_CODE" \
  --data-urlencode "url=https://example.myshopify.com/" \
  -o shopify-thumbnail.jpg

Use the protocol, entrypoint, and account parameters currently specified in your PagePeeker account and documentation. A direct-link URL can also be placed in an image source if your account terms permit it; check the branding and link-back requirements before embedding thumbnails publicly.

Automate readiness checks

For server-side automation, PagePeeker documents a readiness workflow: request or refresh a thumbnail, check thumbs_ready.php, and retrieve the thumbnail when it is ready. The refresh and wait parameters are premium options. The wait option can delay the response while generation completes instead of returning a placeholder. Follow the current API documentation for the precise readiness request format and account-specific parameters.

Do not assume a first request is immediately a newly generated image. PagePeeker documents caching, and a response may correspond to an existing cached thumbnail. The API documentation describes diagnostic response headers for paid and unbranded accounts, including capture method, capture time, final redirected URL, capture timestamp, and error status. Inspect those headers when your integration needs to distinguish a useful capture from an error or stale result.

4. Understand plans, cache, and timing

PagePeeker’s plan pages list the following terms. These are vendor-listed details, accessed October 3, 2026, and should be rechecked before choosing a plan because prices and limits can change. Listed render speeds are PagePeeker’s typical figures, not independent measurements.

Option Listed calls Price listed Cache listed Typical rendering listed Other terms
Free branded No monthly call limit stated Free 20 days 30–60 seconds Branded thumbnail
Free unbranded 100,000/month Free 20 days 10–20 seconds Requires a link back
Basic 100,000/month $5.99/month 7 days 10–20 seconds Plan-specific features apply
Advanced 1,000,000/month $39.99/month 5 days 5–15 seconds Plan-specific features apply
Premium Unlimited listed Custom Customizable Under 5 seconds Plan-specific features apply

PagePeeker’s pricing page marks features such as own branding, larger sizes, mobile or tablet captures, and full-length screenshots by plan. Confirm the plan includes the capture type and presentation rights you need. Sources: free thumbnail plans and pricing.

5. What Indian sellers should verify

A store owner’s location does not establish where a screenshot is rendered. The reviewed PagePeeker API and robot-policy pages do not document an India-based capture location, geographic targeting, or a location override. If your storefront changes by region, currency, language, or customer location, inspect the returned image and separately verify PagePeeker’s current location capabilities before promising that the thumbnail reflects an Indian customer’s view.

PagePeeker states that its robot may attempt to fetch a page at a 5–7 day interval. This is the vendor’s robot policy, not a guarantee about every capture or cache lifetime. If you own a site and want to block PagePeeker, its robot-policy page documents this rule:

User-agent: PagePeeker
Disallow: /

Only change your store’s robots rules if you control them and intend to prevent the crawler from accessing the site. See PagePeeker’s robot policy.

6. Troubleshooting

Symptom Likely cause What to do
The request fails or returns an error Incorrect endpoint, account code, or parameter format Check the V2 endpoint and the account-specific setup in the official documentation. Do not use the discontinued V1 format.
The thumbnail is missing or shows a placeholder Capture is still being generated or the request did not wait for completion Use the documented readiness check with thumbs_ready.php; review premium wait behavior if available to your account.
The image shows an older storefront A cached result may be returned Check the plan’s cache interval and current API options. The documented refresh option is premium; verify eligibility and syntax with PagePeeker.
The target redirects or lands on an unexpected page The storefront redirects by URL, locale, or other site behavior Inspect the final redirected URL in diagnostic headers where available, and use the intended public canonical URL.
A private or unpublished page cannot be captured The page may not be publicly reachable or may lack an Online Store URL Publish it to the Online Store and use its public URL. The reviewed sources do not establish capture support for login-protected pages.
The thumbnail does not reflect the Indian customer experience Capture geography is not documented by the reviewed sources Do not infer location from the merchant’s address. Verify PagePeeker’s current location options and test the actual customer view separately.
Your site no longer appears in thumbnails The site may block the PagePeeker robot If you operate the store, inspect the robots policy and decide whether to allow the crawler. PagePeeker documents the User-agent: PagePeeker identifier.

7. Performance, reliability, and cost considerations

  • Expect asynchronous work. Vendor-listed typical render times range from 5 seconds to 60 seconds depending on plan. Build a readiness check or suitable timeout into automation instead of assuming an immediate new capture.
  • Plan around caching. A cached thumbnail can reduce repeated capture work but may not reflect recent theme or product changes. Compare your refresh needs with the cache interval and plan features.
  • Handle redirects and errors. Where available, inspect PagePeeker’s diagnostic headers, especially the final URL and error status, and record failures separately from successful image responses.
  • Budget by call volume and presentation terms. Check monthly quotas, required link-back or branding, image sizes, and whether mobile/tablet or full-length capture is included. Avoid estimating cost from a call count alone if your account has plan-specific rules.
  • Respect access controls. Use public pages you are entitled to access and follow applicable site policies. A screenshot service cannot turn an unpublished page into a public Online Store page.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF, and its parameters used by other screenshot APIs also work, which can make switching easier. See the API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://example.myshopify.com/ \
  -o shopify-store.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={
        "access_key": "YOUR_API_KEY",
        "url": "https://example.myshopify.com/",
    },
    timeout=90,
)
r.raise_for_status()
open("shopify-store.webp", "wb").write(r.content)
const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.myshopify.com/',
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shopify-store.webp', image));

ScreenshotNeo can accept cookie and consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are never billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for 1,000 free screenshots a month, with no card.

FAQ

Is PagePeeker a Shopify app?

The reviewed documentation describes direct thumbnail links and API calls. It does not document a dedicated Shopify integration or a Shopify-admin capture button.

Does this guarantee an India-based screenshot?

No. The reviewed sources do not document India capture geography or geographic targeting.

Can I use a storefront password page or unpublished page?

The reviewed sources do not establish support for those cases. Use a publicly reachable Online Store URL for the documented workflow.

Which PagePeeker API version should I use?

PagePeeker identifies V2 as the current API; its legacy V1 is discontinued and redirects to V2.

Sources