Skip to main content
The /getImage endpoint downloads the image at url and returns its bytes exactly as the image host serves them, with the host’s own Content-Type. Nothing is re-encoded: a JPEG comes back as the same JPEG, a WebP as WebP, an animated GIF keeps its animation, an SVG stays an SVG. The request goes out through rotating proxies. When the image host answers with a bot challenge (Cloudflare, DataDome and the like), a real browser opens the image, clears the challenge and hands back the image’s own bytes. Use it when a plain GET https://host/image.jpg from your servers is blocked, rate-limited or geo-fenced.

Request

Response

200 returns the image bytes unchanged. Content-Type is the image’s real type (image/jpeg, image/png, image/webp, image/avif, image/gif, image/svg+xml, …), checked against the bytes themselves, so a host that labels everything application/octet-stream still gives you the right type. X-Destination-URL holds the final URL after redirects. Image hosts often negotiate the format: a CDN may serve WebP or AVIF to a browser even when the URL ends in .jpg. Read Content-Type (or the first bytes) rather than trusting the extension.

Country targeting

Pass proxy_country (ISO 3166-1 alpha-2) to fetch from a specific country. Some image CDNs geo-fence by IP region and return nothing, or a different image, outside the expected country:

Errors

Tips

  • Pass the image URL, not the page it sits on. A page URL returns 415. To get the images of a page, fetch the page with /getPageSource and take the src / srcset URLs from its HTML.
  • Typical latency is 1-3 s. A host that challenges every request takes longer (a browser has to clear it), up to the 75 s cap.
  • Cache aggressively. The same image URL returns the same bytes - you only need to fetch it once.