Unsplash Image Scraper
Pricing
from $2.65 / 1,000 unsplash images
Unsplash Image Scraper
Scrape Unsplash image search results by keyword. Export image URLs, source ranks, query metadata, and scrape timestamps for design, SEO, and content research.
Pricing
from $2.65 / 1,000 unsplash images
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
🖼️ Unsplash image scraper for keyword searches
Unsplash Image Scraper collects image results from Unsplash search pages. Enter one or more keywords such as nature, coffee shop, or minimal workspace, then export image URLs, source rank, query metadata, and scrape timestamps from a clean Apify dataset.
Use this Unsplash image scraper when you need a repeatable way to collect image search results for design research, creative briefs, mood boards, SEO image research, content planning, or internal data workflows. You can run it in Apify Console, schedule repeat runs, call it from the Apify API, and export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
The Actor is built for public Unsplash search results. It does not download binary image files, generate images, enrich photographer contacts, or combine Unsplash with other image sources.
✅ What this Actor does
- Searches Unsplash by one or more keywords.
- Saves one dataset item per discovered image result.
- Keeps the original search query and rank on every item.
- Returns common image URL variants: raw, full, regular, small, and thumb.
- Supports Unsplash search sorting by relevance or latest.
- Supports orientation and color filters when Unsplash returns matching search results.
- Adds source URL and scrape time fields for traceable exports.
- Stops at your per-query and total image limits.
Some fields are nullable because Unsplash search HTML does not expose every piece of photo metadata on every result. When a value is not available from the public search result, the Actor keeps the field as null or an empty array instead of inventing data.
📦 Data you can extract
Each output item represents one Unsplash image result. Fields include:
queryandqueryIndexrankimageIdtitle,description, andaltDescriptionwhen availablecreatedAtandupdatedAtwhen availablewidthandheightwhen availableurls.raw,urls.full,urls.regular,urls.small, andurls.thumblinks.html,links.download, andlinks.downloadLocationwhen availablephotographeridentity fields when availabletagsengagement.likesandengagement.downloadswhen availablecolorandblurHashwhen availablesourceUrl,unsplashUrl,downloadLocationUrl, andscrapedAt
🚀 How to run
- Add one or more Unsplash search terms.
- Keep
Image limit per searchat25for a quick first run. - Optionally choose sort order, orientation, or color.
- Run the Actor.
- Open the dataset or export the results through the Apify API.
For a small test, use the prefilled nature query. For larger research jobs, add several related search terms and use Total image limit to cap the whole run.
⚙️ Input
{"queries": ["nature", "minimal workspace"],"maxItemsPerQuery": 25,"maxTotalItems": 100,"sortBy": "relevance","orientation": "any","color": "any"}
Search terms
Enter plain Unsplash search keywords. Short, visual terms usually work best, for example:
naturecoffee shopminimal workspaceSaaS dashboardrunning shoes
Each query is searched separately. Duplicate and empty values are ignored.
Limits and filters
Use maxItemsPerQuery to control how many images can be saved for each keyword. Use maxTotalItems when you want a hard cap across the full run.
sortBy can be relevance or latest. orientation can be any, landscape, portrait, or squarish. color can be any or one of the supported Unsplash color filters.
📊 Output example
{"query": "nature","queryIndex": 0,"rank": 1,"imageId": "photo-1470071459604-3b5ec3a7fe05","title": null,"description": null,"altDescription": null,"createdAt": null,"updatedAt": null,"width": null,"height": null,"urls": {"raw": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format","full": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&q=85&w=2000","regular": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&q=80&w=1080","small": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&q=80&w=400","thumb": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&q=80&w=200"},"links": {"html": null,"download": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&q=85&w=2000","downloadLocation": null},"photographer": {"id": null,"username": null,"name": null,"profileUrl": null,"portfolioUrl": null},"tags": [],"engagement": {"likes": null,"downloads": null},"color": null,"blurHash": null,"sourceUrl": "https://unsplash.com/s/photos/nature?page=1&order_by=relevant","unsplashUrl": null,"downloadLocationUrl": null,"scrapedAt": "2026-05-23T00:00:00.000Z"}
💳 Pricing
This Actor uses pay-per-event pricing. You pay a small Actor-start charge when a run begins and one image charge for each saved Unsplash image item.
Use the input limits to control cost before you start a larger run. If no images are saved, no per-image charge is made.
⚠️ Limits and caveats
- Results depend on what Unsplash returns for the public search page at run time.
- Some metadata fields can be
nullbecause public search results do not always expose them. - The Actor returns image URLs, not downloaded image files.
- It does not provide legal advice about how you may use an image. Review Unsplash and image-owner terms for your use case.
- It is not an official Unsplash API client.
❓ FAQ
Does this Actor download image files?
No. It returns image URLs in several common sizes. Use those URLs in your own workflow if you need to fetch files separately.
Do I need an Unsplash API key?
No. The Actor is designed for public Unsplash search pages and does not ask for an Unsplash API key, cookies, or login details.
Why are some fields null?
Unsplash search pages expose image assets reliably, but not every detail is present in the public search result. The Actor keeps unavailable fields as null or [] so exports stay honest and schema-stable.
Can I schedule repeat image searches?
Yes. You can schedule the Actor on Apify and compare datasets over time, subject to the same public search result availability.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- Google Shopping Ads Scraper ↗ - Track paid product ads, prices, merchants, and landing pages from Google Search.
- Website Emails Scraper ↗ - Find public contact emails from the websites you already care about.
- Business Address Scraper ↗ - Extract visible business addresses from company websites.
- Product Hunt Scraper ↗ - Collect Product Hunt launches, media, ranks, and startup lead fields.
- YouTube Channel Scraper ↗ - Export public YouTube channel profiles and recent video rows.
Made with ❤️ by Maxime Dupré