ScreenshotNeo

BlogHow-to

How to Capture Marathi Webpages as Images with PagePeeker

Use PagePeeker’s V2 API to turn a Marathi webpage URL into a thumbnail. Learn the request, size options, full-page limits, and what to check in the result.

By the ScreenshotNeo team4 October 20268 min read

To capture a Marathi webpage with PagePeeker, send its complete URL in the V2 url parameter and choose a thumbnail size. The URL must be URL-encoded. PagePeeker’s documentation describes a general URL-to-thumbnail workflow; it does not document a Marathi-specific setting or guarantee how every Marathi page will render. Inspect the returned image to confirm the page, text, and layout look right.

The examples below use PagePeeker’s free endpoint and the documented medium size. Replace the sample URL with the Marathi page you want to capture. See the PagePeeker V2 API documentation for current endpoint details and account-specific options.

1. Choose the page URL and thumbnail size

  1. Copy the full public URL of the Marathi page, including its scheme such as https://.
  2. Pick a size code: t for 90 × 68, s for 120 × 90, m for 200 × 150, l for 400 × 300, or x for 480 × 360 pixels.
  3. Submit the URL as a query parameter. Let your HTTP client encode it instead of concatenating a raw URL into the request string.
  4. Save the response as an image and inspect it. Check that the intended page loaded, Devanagari text is legible at the chosen size, and no consent overlay or other content obscures the page.

These are standard thumbnail dimensions in PagePeeker’s documentation. Premium accounts may offer other sizes. A thumbnail is a scaled capture, so dense text may be difficult to read at small dimensions even when the page renders correctly.

2. Capture a PagePeeker thumbnail

cURL

curl -G "http://free.pagepeeker.com/v2/thumbs.php" \
  --data-urlencode "size=m" \
  --data-urlencode "url=https://www.example.com/mr/page" \
  --output marathi-page.jpg

The endpoint returns an image. Use a filename and extension appropriate to the response you receive; do not assume the extension alone proves the actual image format. For paid or unbranded API use, PagePeeker documents the api.pagepeeker.com entrypoint and optional account code. Follow your account’s instructions before adding credentials.

Python

from pathlib import Path
import requests

endpoint = "http://free.pagepeeker.com/v2/thumbs.php"
params = {
    "size": "m",
    "url": "https://www.example.com/mr/page",
}

response = requests.get(endpoint, params=params, timeout=90)
response.raise_for_status()
Path("marathi-page.jpg").write_bytes(response.content)
print("Saved marathi-page.jpg")

Install the dependency with python -m pip install requests. A successful HTTP response does not by itself establish that the expected Marathi page was captured; open the saved image and verify it.

Node.js

const endpoint = new URL("http://free.pagepeeker.com/v2/thumbs.php");
endpoint.searchParams.set("size", "m");
endpoint.searchParams.set("url", "https://www.example.com/mr/page");

const response = await fetch(endpoint);
if (!response.ok) {
  throw new Error(`PagePeeker returned HTTP ${response.status}`);
}

const image = Buffer.from(await response.arrayBuffer());
await import("node:fs/promises").then(fs =>
  fs.writeFile("marathi-page.jpg", image)
);
console.log("Saved marathi-page.jpg");

This uses Node.js with built-in fetch and assumes a runtime that supports top-level await. Use the equivalent module wrapper if your project does not.

Direct image URL

For an HTML page that should display a thumbnail, use the documented image URL shape:

<img
  src="http://free.pagepeeker.com/v2/thumbs.php?size=m&amp;url=https%3A%2F%2Fwww.example.com%2Fmr%2Fpage"
  alt="Screenshot of a Marathi webpage"
>

For production integrations, build the URL with a URL or query-parameter library so the nested page URL is encoded correctly. PagePeeker warns that an account code should not be exposed in client-side pages because third parties could consume the account’s API-call quota.

3. Understand PagePeeker’s options

Parameter or behavior What it does When to use it
url Target page URL; must be URL-encoded. Always. Include the full address of the intended Marathi page.
size Standard values are t 90 × 68, s 120 × 90, m 200 × 150, l 400 × 300, and x 480 × 360. Choose based on the display slot and how much text readers need to inspect.
code Optional API key for server-side calls. Client-side use is discouraged for account calls; free branded use ignores it. Only as directed by the account setup. Keep account credentials on your server.
refresh=1 For premium accounts, forces regeneration of the currently generated thumbnail. When a cached capture is stale and a fresh capture is needed.
wait For premium accounts, sets the maximum number of seconds to wait for generation rather than immediately returning a placeholder. When a synchronous response is useful and the caller can tolerate waiting.

PagePeeker also documents a readiness endpoint, /v2/thumbs_ready.php, which returns JSON with Error and IsReady fields. A documented asynchronous pattern is to request generation, poll readiness, then fetch the image. Each poll is an API call according to the FAQ, so poll at a reasonable interval and stop after a defined deadline.

4. Capture a full Marathi webpage

The standard API workflow above produces a thumbnail. PagePeeker describes full-page screenshots as a premium capability. Its full-page documentation lists controls such as page width, maximum capture height, compression, thumbnail generation from the capture, overlay text, and wait behavior. Availability and exact parameters depend on the account and current documentation; consult the full-page capture guide rather than assuming thumbnail parameters provide full-page output.

Before choosing full-page capture, decide whether the deliverable needs the entire document or only a representative preview. A long page can produce a very tall image, and reducing it to fit a small display can make Marathi text unreadable. Set a maximum height when the workflow supports it, and consider capturing a specific viewport if the reader needs legible text.

5. Marathi rendering checks

The target language is part of the page content, not a PagePeeker request option documented in the sources. Check these details in the output rather than assuming a successful request means the image is correct:

  • Right page: redirects, locale routing, or language negotiation may lead to a different URL or language variant.
  • Readable glyphs: inspect Devanagari characters for missing glyphs, clipped marks, or unexpected line wrapping.
  • Page readiness: pages that populate content after scripts run may need more time before capture; PagePeeker documents a premium wait control.
  • Overlays: cookie notices, newsletter forms, and chat widgets may cover the page. The reviewed PagePeeker sources do not establish automatic removal of these elements.
  • Scale: small thumbnails compress the whole viewport into few pixels. Use the largest suitable standard size or an account-supported full-page option where appropriate.

6. Errors and troubleshooting

Symptom Likely cause What to do
Placeholder image instead of a capture The render is still being generated, or generation did not complete before the request returned. For eligible premium accounts, use wait or the readiness endpoint, then retrieve the image when ready. Apply a polling deadline.
Image shows the wrong page or language The target URL redirects or serves a locale based on routing or request context. Open the exact URL, use the canonical Marathi page address, and check the final destination. Paid and unbranded responses document an X-PP-Final-URL header when a redirect occurs.
Malformed request or unexpected result The nested page URL was not URL-encoded, or query parameters were assembled by string concatenation. Use curl --data-urlencode, Python params, or JavaScript URL.searchParams.
Image is too small to read A thumbnail is intended as a preview and has limited pixel dimensions. Choose a larger standard size, check whether your plan offers other sizes, or use the documented premium full-page capability.
Stale screenshot The existing generated image may be served from cache. Premium accounts can request refresh=1. Confirm that this option is available for your account.
Account usage rises unexpectedly PagePeeker counts displaying an existing thumbnail, generating an uncached one, readiness checks, and other exposed API calls as calls. Avoid unnecessary polling and repeated embeds, monitor the account quota, and review current account terms.
Credential or quota exposure An account code was placed in browser-visible markup or shared publicly. Keep account calls server-side and follow PagePeeker’s credential guidance. Its documentation warns that client-side account code can let third parties consume quota.

For paid and unbranded API responses, PagePeeker documents headers including X-PP-Capture-Method, X-PP-Capture-Time, X-PP-Final-URL, X-PP-Hash, X-PP-Timestamp, and X-PP-Error. Use these for diagnostics where available; do not assume the same headers are returned by every entrypoint or account type.

7. Performance, reliability, and cost

PagePeeker’s FAQ says generated images are cached on its servers for several days. It also says API-call quotas do not roll over, and that displaying a cached image still counts as an API call. These are vendor descriptions; check your current account terms if request volume or billing is material. The docs describe refresh and wait as premium-only controls.

For a production integration, avoid creating a new render on every page view. Cache the image URL or fetched image in your application when suitable, limit readiness polling, and set request timeouts. Keep an eye on response status and, where available, diagnostic headers. PagePeeker’s robot documentation says it aims to fetch a site once every 5–7 days; that is vendor guidance about its robot, not a guarantee of freshness for every use case. Site owners who want to block the robot can follow its robots information and documented robots.txt rule.

For cost planning, distinguish a render from an API call: the FAQ says a render is the actual thumbnail creation, while each API interaction can count toward the account quota. Confirm current limits, prices, and included options on PagePeeker’s site; do not infer your plan’s entitlement from the general API page.

8. Or skip the browser setup

ScreenshotNeo captures a webpage from one GET request and can return PNG, JPEG, WebP, or PDF. Its cookie and consent handling accepts banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off.

For a direct image response, replace the example target URL with the Marathi page you want to capture:

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.example.com/mr/page -o shot.webp

Python

import requests

r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://www.example.com/mr/page"}, timeout=90)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://www.example.com/mr/page' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`ScreenshotNeo returned HTTP ${res.status}`);
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer())));

See the ScreenshotNeo API documentation for request options. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are never billed; response headers identify the page verdict and billing status. An MCP server gives AI agents tools for screenshots, page information, and PDF capture. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.

Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month without a credit card.

FAQ

Can PagePeeker take a screenshot of any Marathi website?

The API accepts a webpage URL, but the reviewed official docs do not make a Marathi-specific rendering guarantee. Verify the resulting image and check the page’s accessibility and rendering behavior.

Does PagePeeker translate Marathi text?

The documented workflow captures a webpage; the reviewed sources do not describe translation.

Does a PagePeeker thumbnail show the whole page?

The standard V2 endpoint is documented for thumbnails. PagePeeker describes full-page screenshots as a premium feature with separate controls.

Will the thumbnail update automatically when the page changes?

PagePeeker describes server-side caching for several days. Premium accounts have a documented refresh option; check the current API documentation for account availability.