Unsplash Image Scraper
Pricing
from $1.80 / 1,000 unsplash images
Unsplash Image Scraper
Collect Unsplash photo data from keywords or URLs. Export image links, photo details, and photographer information for design and content research.
Pricing
from $1.80 / 1,000 unsplash images
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
🖼️ Collect Unsplash images for your projects
Unsplash Image Scraper helps designers and content teams collect public Unsplash photo data. Search by keyword or add URLs to get image links, photo details, and photographer information in an 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 returns image links, not image files.
Use it to:
- Find photos for a mood board by keyword.
- Collect photo links from an Unsplash collection.
- Explore images in an Unsplash topic.
- Collect photos from a photographer's portfolio.
- Get details for a photo from its Unsplash URL.
📦 Photo data you can extract
Each output item represents one Unsplash image result. Fields include:
queryimageIddescriptionandaltDescriptionwhen availablecreatedAtandupdatedAtwhen availablewidthandheightwhen availableurls.raw,urls.full,urls.regular,urls.small, andurls.thumbphotographeridentity fields when availabletagsengagement.likesandengagement.downloadswhen availablecolorandblurHashwhen availableunsplashUrl, license, camera, location, and topic data when available
🚀 Collect Unsplash photos
- Add one or more search terms or Unsplash URLs.
- Set a total image limit for your 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
Input fields
| Field | Type | What it does |
|---|---|---|
queries | array | Search terms. The form prefills nature; each term is searched separately. |
startUrls | array | Unsplash search, collection, topic, photographer portfolio, or photo URLs. The form prefills an empty list. |
maxTotalItems | integer | Maximum images across all inputs. Zero or omission means all available images. The form prefills 1. |
maxItemsPerQuery | integer | Maximum images per search term. Zero or omission means all available images. |
sortBy | string | Search order: relevance or latest. If omitted, keyword searches use relevance and search URLs keep their order. |
orientation | string | Search orientation: any, landscape, portrait, or squarish. Default: any. |
color | string | Search color: any, black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, or blue. Default: any. |
includePremium | boolean | Include Unsplash+ photos. Default: false. |
The successful default-input run used this input:
{"queries": ["nature"],"maxTotalItems": 1,"startUrls": [],"orientation": "any","color": "any","includePremium": false}
🧾 Output
Output fields
| Field | Type | What it does |
|---|---|---|
imageId | string | Unsplash photo ID. |
unsplashUrl | string | Photo page link. |
query | string | Search term that found the photo, when available. |
description, altDescription | string | Photo description and alternative text. |
width, height | integer | Photo dimensions in pixels. |
color, blurHash | string | Dominant color and blur hash. |
createdAt, updatedAt | string | Photo creation and update dates. |
views | integer | View count. |
premium, sponsored | boolean | Premium and sponsorship flags. |
urls | object | Image links. |
urls.raw, urls.full, urls.regular, urls.small, urls.thumb | string | Links in different sizes. |
photographer | object | Public photographer profile. |
photographer.id, photographer.name, photographer.username | string | Photographer ID, name, and username. |
photographer.bio, photographer.location | string | Biography and location. |
photographer.portfolioUrl, photographer.profileUrl | string | Portfolio and Unsplash profile links. |
photographer.instagramUsername, photographer.twitterUsername | string | Social usernames. |
license | string | Photo license link. |
tags, topics | array | Photo tags and topics. |
camera | object | Camera settings. |
camera.make, camera.model, camera.exposureTime, camera.aperture, camera.focalLength, camera.iso | string | Camera and exposure details. |
location | object | Photo location. |
location.name, location.city, location.country | string | Location name, city, and country. |
engagement | object | Photo engagement counts. |
engagement.likes, engagement.downloads | integer | Like and download counts. |
Example photo from a successful run:
{"imageId": "1Z2niiBPg5A","unsplashUrl": "https://unsplash.com/photos/foggy-mountain-summit-1Z2niiBPg5A","query": "nature","description": "Taking The Scenic Route","altDescription": "foggy mountain summit","width": 7372,"height": 4392,"color": "#404040","blurHash": "LXDvs4EQRPt7?wNMRQofbvt8kCa~","createdAt": "2016-08-01T17:13:04Z","updatedAt": "2026-11-04T10:15:07Z","views": 229649689,"premium": false,"sponsored": false,"urls": {"raw": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?ixid=NHwxMjA3fDA&ixlib=rb-4.1.0","full": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?crop=entropy&cs=srgb&fm=jpg&ixid=NHwxMjA3fDA&ixlib=rb-4.1.0&q=85","regular": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=NHwxMjA3fDA&ixlib=rb-4.1.0&q=80&w=1080","small": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=NHwxMjA3fDA&ixlib=rb-4.1.0&q=80&w=400","thumb": "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=NHwxMjA3fDA&ixlib=rb-4.1.0&q=80&w=200"},"photographer": {"id": "-JYCW-lbP0E","name": "v2osk","username": "v2osk","bio": "Independant photographer mainly concentrate on abandoned buildings and landscapes aka oldskool","location": "Manchester uk","portfolioUrl": "https://www.flickr.com/photos/62438406@N00/albums","instagramUsername": "v2osk","profileUrl": "https://unsplash.com/@v2osk"},"license": "https://unsplash.com/license","tags": ["sunset","sunrise","road","landscape wallpaper","grass","cloud","grey","blue sky","rock","fog","path","rocks","mountain range","moss","outdoors","view","beautiful background","mist","wilderness","bing wallpaper"],"topics": ["Nature","Wallpapers"],"camera": {"make": "NIKON CORPORATION","model": "NIKON D800","exposureTime": "1/40","aperture": "11.0","focalLength": "24.0","iso": "50"},"engagement": {"likes": 5823,"downloads": 2080581}}
💳 Pricing
This Actor uses pay-per-event pricing. You pay $0.001 when a run begins and $0.0009 for each saved image.
Use the input limits to control cost before you start a larger run. If no images are saved, no per-image charge is made.
🔌 Integrations
Run the Actor with the Apify API or on a schedule, and export the dataset for use in your workflow.
❓ 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 missing?
Some photo details are not available from Unsplash. Those fields may be absent from a row.
Can I use the photos in my project?
Review the Unsplash and image-owner terms for your use case. This Actor does not give legal advice and is not an official Unsplash API client.
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
v1.0 (04-11-2026)
- Output no longer includes
queryIndex,rank,title,links.html,links.download,links.downloadLocation,sourceUrl,downloadLocationUrl, orscrapedAt. Update any workflows that use them.unsplashUrlprovides the photo page link; there are no replacements for the other fields. - Unavailable output values are omitted instead of returned as null. Update workflows that expect null values.
- Unsplash+ photos and photos with an unknown premium status are excluded by default. Set
includePremiumto true to include them. - Use
startUrlsto collect photos from search, collection, topic, photographer, and photo URLs. - Set
maxTotalItemsto 0 or leave it empty to collect all available photos. For search terms, setmaxItemsPerQueryto 0 or leave it empty to collect all available photos per search.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Web Image Scraper - Collect image links from public webpages.
- Bulk Image Compressor - Compress image files from URLs.
- Image Resizer API - Resize image files from URLs.
- Pinterest Image Downloader - Collect image links from public Pinterest pins and boards.
- Unsplash Image Scraper - Collect Unsplash photo data from searches and collections.
Made with ❤️ by Maxime Dupré
