Unsplash Search photos API
Search Unsplash for free stock photos by keyword. Returns image URLs in several sizes, dimensions, alt text, the photographer's name and profile, and the photo's Unsplash page.
Pricing
Unsplash Search photos API pricing
Try it
Get Unsplash search photos in one request
{
"data": {
"photos": [
{
"alt": "example",
"blurHash": "a1b2c3d4",
"color": "#1f4fe0",
"createdUtc": 12.5,
"description": "A short example description of this item.",
"downloadUrl": "https://example.com/page",
"height": 42,
"id": "a1b2c3d4",
"image": "https://example.com/image.jpg",
"imageFull": "https://example.com/image.jpg",
"imageOriginal": "https://example.com/image.jpg",
"imageSmall": "https://example.com/image.jpg",
"likes": 12500,
"photographer": "https://example.com/image.jpg",
"photographerAvatarUrl": "https://example.com/image.jpg",
"photographerBio": "https://example.com/image.jpg",
"photographerForHire": true,
"photographerInstagramUsername": "https://example.com/image.jpg",
"photographerLocation": "https://example.com/image.jpg",
"photographerTotalLikes": 12500,
"photographerTotalPhotos": 12500,
"photographerTwitterUsername": "https://example.com/image.jpg",
"photographerUrl": "https://example.com/image.jpg",
"photographerUsername": "https://example.com/image.jpg",
"photographerWebsite": "https://example.com/image.jpg",
"sponsored": true,
"thumbnail": "https://example.com/image.jpg",
"updatedUtc": 12.5,
"url": "https://example.com/page",
"width": 1024
}
]
},
"found": true,
"reason": "not_found"
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-11-14 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- querystring
coffee
Keyword or phrase to search Unsplash photos for, e.g. "coffee" or "minimal workspace".
- colorenum
Only return photos with this dominant color tone. Omit for any color.
- limitinteger
2
Maximum number of photos to return (1-20, default 20). You are billed per photo returned, so a lower limit costs less.
- orientationenum
Only return photos with this orientation. Omit for any orientation.
- sortByenum
Order results by best match (relevant, the default) or newest first (recent).
Response
JSON, one example value per field.
Free Unsplash photos matching the keyword. Unsplash+ premium photos are excluded, so every photo is under the Unsplash License. Unsplash places sponsored photos among the results, flagged by sponsored.
- altstring
Alt text describing the photo. Populated whenever the provider has data for the entity.
- blurHashstring
BlurHash string for rendering a blurred placeholder while the image loads.
- colorstring
Dominant color as a hex code, e.g. "#918c79".
- createdUtcnumber
UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
- descriptionstring
Photographer's own description. Absent when they wrote none.
- downloadUrlstring
Unsplash download link for the photo.
- heightinteger
Original height in pixels. Populated whenever the provider has data for the entity.
- idstring
Photo id on the source site. Populated whenever the provider has data for the entity.
- imagestring
Display-size image URL, 1080 px wide. The query parameters set the size, so keep the URL intact. Populated whenever the provider has data for the entity.
- imageFullstring
Full-resolution JPEG URL.
- imageOriginalstring
Original image URL at full resolution, unprocessed. Populated whenever the provider has data for the entity.
- imageSmallstring
Small image URL, 400 px wide.
- likesinteger
Number of likes on Unsplash.
- photographerstring
Photographer's display name, for attribution. Populated whenever the provider has data for the entity.
- photographerAvatarUrlstring
Photographer's profile picture URL.
- photographerBiostring
Photographer's Unsplash bio, when they wrote one.
- photographerForHireboolean
True when the photographer marks themselves available for hire on Unsplash.
- photographerInstagramUsernamestring
Photographer's Instagram username, when they list one on Unsplash.
- photographerLocationstring
Photographer's location as they state it on Unsplash, when they list one.
- photographerTotalLikesinteger
Number of photos the photographer has liked on Unsplash.
- photographerTotalPhotosinteger
Number of photos the photographer has published on Unsplash.
- photographerTwitterUsernamestring
Photographer's X (Twitter) username, when they list one on Unsplash.
- photographerUrlstring
Photographer's Unsplash profile page, for attribution. Populated whenever the provider has data for the entity.
- photographerUsernamestring
Photographer's Unsplash username, without the leading @.
- photographerWebsitestring
Photographer's portfolio or personal website, when they list one.
- sponsoredboolean
True when Unsplash placed this photo in the results as a sponsored listing.
- thumbnailstring
Thumbnail image URL, 200 px wide.
- updatedUtcnumber
When the photo's record last changed on Unsplash. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
- urlstring
The photo's page on unsplash.com. Populated whenever the provider has data for the entity.
- widthinteger
Original width in pixels. Populated whenever the provider has data for the entity.
- foundboolean
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
FAQ
About the Unsplash Search photos API
The AnyAPI Unsplash Search photos API returns Unsplash search photos data as normalized JSON from one POST call to /v1/run/unsplash.search_photos. Search Unsplash for free stock photos by keyword. Returns image URLs in several sizes, dimensions, alt text, the photographer's name and profile, and the photo's Unsplash page. AnyAPI returns one normalized schema whichever source serves it. It costs $1.60 per 1,000 results, and never more than $0.0336 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 91.3% of Unsplash search photos calls through AnyAPI succeeded, with a median response time of 12.0 seconds across 206 measured calls.