Unsplash Image Scraper avatar

Unsplash Image Scraper

Pricing

from $1.80 / 1,000 unsplash images

Go to Apify Store
Unsplash Image Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

🖼️ 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:

  • query
  • imageId
  • description and altDescription when available
  • createdAt and updatedAt when available
  • width and height when available
  • urls.raw, urls.full, urls.regular, urls.small, and urls.thumb
  • photographer identity fields when available
  • tags
  • engagement.likes and engagement.downloads when available
  • color and blurHash when available
  • unsplashUrl, license, camera, location, and topic data when available

🚀 Collect Unsplash photos

  1. Add one or more search terms or Unsplash URLs.
  2. Set a total image limit for your run.
  3. Optionally choose sort order, orientation, or color.
  4. Run the Actor.
  5. 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

FieldTypeWhat it does
queriesarraySearch terms. The form prefills nature; each term is searched separately.
startUrlsarrayUnsplash search, collection, topic, photographer portfolio, or photo URLs. The form prefills an empty list.
maxTotalItemsintegerMaximum images across all inputs. Zero or omission means all available images. The form prefills 1.
maxItemsPerQueryintegerMaximum images per search term. Zero or omission means all available images.
sortBystringSearch order: relevance or latest. If omitted, keyword searches use relevance and search URLs keep their order.
orientationstringSearch orientation: any, landscape, portrait, or squarish. Default: any.
colorstringSearch color: any, black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, or blue. Default: any.
includePremiumbooleanInclude 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

FieldTypeWhat it does
imageIdstringUnsplash photo ID.
unsplashUrlstringPhoto page link.
querystringSearch term that found the photo, when available.
description, altDescriptionstringPhoto description and alternative text.
width, heightintegerPhoto dimensions in pixels.
color, blurHashstringDominant color and blur hash.
createdAt, updatedAtstringPhoto creation and update dates.
viewsintegerView count.
premium, sponsoredbooleanPremium and sponsorship flags.
urlsobjectImage links.
urls.raw, urls.full, urls.regular, urls.small, urls.thumbstringLinks in different sizes.
photographerobjectPublic photographer profile.
photographer.id, photographer.name, photographer.usernamestringPhotographer ID, name, and username.
photographer.bio, photographer.locationstringBiography and location.
photographer.portfolioUrl, photographer.profileUrlstringPortfolio and Unsplash profile links.
photographer.instagramUsername, photographer.twitterUsernamestringSocial usernames.
licensestringPhoto license link.
tags, topicsarrayPhoto tags and topics.
cameraobjectCamera settings.
camera.make, camera.model, camera.exposureTime, camera.aperture, camera.focalLength, camera.isostringCamera and exposure details.
locationobjectPhoto location.
location.name, location.city, location.countrystringLocation name, city, and country.
engagementobjectPhoto engagement counts.
engagement.likes, engagement.downloadsintegerLike 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, or scrapedAt. Update any workflows that use them. unsplashUrl provides 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 includePremium to true to include them.
  • Use startUrls to collect photos from search, collection, topic, photographer, and photo URLs.
  • Set maxTotalItems to 0 or leave it empty to collect all available photos. For search terms, set maxItemsPerQuery to 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 🫡

Made with ❤️ by Maxime Dupré