Bulk Image Downloader
URLs & Pages to ZIP
Example request
curl -X POST https://radarbg.com/v1/bulk-image-downloader \
-H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"urls": ["https://www.gstatic.com/webp/gallery/1.jpg", "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"], "pageUrls": ["https://books.toscrape.com/"], "datasetMaxItems": 1000, "fileTypes": "images"}'
Answer: {"ok": true, "count": N, "items": [...], "usage": {...}}. Failed calls are not counted.
Inputs
| Field | Type | Description |
|---|---|---|
urls | array | Direct image (or file) links, one per line. Each is downloaded and stored with a public link. Leave empty if you use pages or a dataset. |
pageUrls | array | Web pages. Every image on the page is collected: <img> src, lazy data-src, the largest srcset size, og:image / twitter:image and links to image files. Small icons are filtered by Min width / Min height. |
datasetId | string | Optional. A dataset ID or dataset URL, for example the result of a product scraper. In the Integrations tab of another actor set it to {{resource.defaultDatasetId}}. Every image link in every item is downloaded. |
imageFields | array | Optional. Field names that hold the images, for example images, thumbnailUrl or media.url (dot paths and lists work). Empty = every field that looks like an image link is used. |
nameField | string | Optional. Dataset field used for file names, for example sku, asin, id or title. Files become <value>_1.jpg, <value>_2.jpg ... Set File naming to 'name' to use it. |
datasetMaxItems | integer | Upper limit of dataset items read, to keep the cost under control. |
monitorId | string | Optional. Any name, for example my-shop-images. Runs with the same monitor ID skip every URL stored in earlier runs, so a daily schedule downloads only new images. Empty = download everything every time. |
fileTypes | string | Images only skips links that turn out not to be images. All files stores any file type. |
outputFormat | string | Keep the original bytes or convert every image (transparent images get a white background in JPG). SVG and HEIC stay as they are. |
maxWidth | integer | Wider images are scaled down to this width, keeping the aspect ratio. 0 = no resize. |
quality | integer | Quality for converted JPG and WebP images (30-100). |
minWidth | integer | Images narrower than this are skipped (icons, tracking pixels). 0 = keep all. |
minHeight | integer | Images lower than this are skipped. 0 = keep all. |
dedupeByContent | boolean | The same picture under different URLs (CDN sizes, mirrors) is stored once, detected by SHA-256 of the file content. Duplicates are not charged. |
Price
Included in every plan: 100 calls a month free, then from €9 a month for 3,000 calls across all APIs.