RRadar
Media, text & files

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

FieldTypeDescription
urlsarrayDirect 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.
pageUrlsarrayWeb 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.
datasetIdstringOptional. 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.
imageFieldsarrayOptional. 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.
nameFieldstringOptional. 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.
datasetMaxItemsintegerUpper limit of dataset items read, to keep the cost under control.
monitorIdstringOptional. 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.
fileTypesstringImages only skips links that turn out not to be images. All files stores any file type.
outputFormatstringKeep the original bytes or convert every image (transparent images get a white background in JPG). SVG and HEIC stay as they are.
maxWidthintegerWider images are scaled down to this width, keeping the aspect ratio. 0 = no resize.
qualityintegerQuality for converted JPG and WebP images (30-100).
minWidthintegerImages narrower than this are skipped (icons, tracking pixels). 0 = keep all.
minHeightintegerImages lower than this are skipped. 0 = keep all.
dedupeByContentbooleanThe 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.

Related APIs

Audio TranscriptionImage to Text OCRKeyword TrendsLemmy ScraperMastodon ScraperVideo Frame Extractor