Pexels Stock Image Scraper
Pricing
from $1.00 / 1,000 results
Pexels Stock Image Scraper
Bulk download high-resolution royalty-free images from Pexels. Capture image URLs, titles, photographer info, dimensions & metadata. Ideal for blog automation, design assets, content creation, AI training datasets & stock image libraries. Zero licensing restrictions.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
33
Total users
14
Monthly active users
2 days ago
Last modified
Categories
Share
What does Pexels Stock Image Scraper do?
Pexels Stock Image Scraper collects structured photo search results from Pexels using a keyword or a public Pexels photo search URL. It returns image titles, descriptions, image links, dimensions, colors, tags, publication details, photographer information, reactions, and the search context in an Apify dataset.
Use it to build image research datasets, find visual assets for content projects, analyze photo trends, or maintain a searchable catalog of Pexels results. You can run a small keyword search in Apify Console or collect results from a filtered search URL across multiple pages.
Why use Pexels Stock Image Scraper?
- Fast image discovery - Search Pexels by topic and collect many relevant photo records without manual copy-paste.
- Useful image links - Keep the Pexels photo page, download page, direct download link, and preview URLs together.
- Rich metadata - Review titles, alt text, tags, colors, dimensions, publication dates, photographer profiles, badges, and reaction counts.
- Search-aware datasets - Each item can include the query, locale, source URL, page number, total results, and pagination context.
- Flexible collection - Set a result limit, start page, maximum page count, locale, orientation, size, and color filters.
- Workflow-ready exports - Download results as JSON, CSV, Excel, XML, and other formats supported by Apify datasets.
- Repeatable research - Schedule runs, connect webhooks, or send results to tools such as Google Sheets, Airtable, Make, and Zapier.
What data can you extract from Pexels?
| Field | Type | Description |
|---|---|---|
id | Number | Pexels photo identifier. |
type | String | Pexels record type, normally photo. |
slug | String | Photo slug used in the Pexels page URL. |
title | String | Photo title. |
description | String | Photo description when available. |
alt | String | Alternative description text. |
photo_url | String | Public Pexels photo page URL. |
download_page_url | String | Pexels download page URL. |
download_image_url | String | Direct image download URL when available. |
small_image_url | String | Small image preview URL. |
medium_image_url | String | Medium image preview URL. |
large_image_url | String | Large image preview URL. |
width | Number | Image width in pixels. |
height | Number | Image height in pixels. |
aspect_ratio | Number | Image width divided by image height. |
license | String | License label supplied by Pexels. |
created_at | String | Creation timestamp when available. |
updated_at | String | Last update timestamp when available. |
publish_at | String | Publication timestamp when available. |
tags | Array | Pexels tags associated with the photo. |
colors | Array | Dominant color values associated with the photo. |
main_color_rgb | String | Main color value when supplied. |
photographer_id | Number | Photographer identifier. |
photographer_name | String | Photographer display name. |
photographer_slug | String | Photographer profile slug. |
photographer_username | String | Photographer username. |
photographer_location | String | Photographer location. |
photographer_avatar_small | String | Small photographer avatar URL. |
photographer_avatar_medium | String | Medium photographer avatar URL. |
photographer_hero | Boolean | Whether the photographer has hero status. |
photographer_active_hero | Boolean | Whether hero status is currently active. |
photographer_instagram | String | Instagram profile value when available. |
photographer_twitter | String | Twitter profile value when available. |
photographer_badges | Array | Photographer badge labels. |
photographer_badges_count | Number | Number of photographer badges. |
reactions_emotional_count | Number | Emotional reaction count. |
reactions_technical_count | Number | Technical reaction count. |
reactions_stylistic_count | Number | Stylistic reaction count. |
reactions_emotional_reacted | Boolean | Whether the emotional reaction is active. |
reactions_technical_reacted | Boolean | Whether the technical reaction is active. |
reactions_stylistic_reacted | Boolean | Whether the stylistic reaction is active. |
user | Object | Original photographer profile metadata. |
image | Object | Original image variant metadata and URLs. |
reactions | Object | Original reaction counters and flags. |
search | Object | Query, locale, source URL, page, and result-count context. |
Fields are omitted when Pexels does not provide a value. This keeps each dataset item compact while preserving the available metadata.
How to use Pexels Stock Image Scraper
- Open the Actor in Apify Console.
- Enter a Pexels photo search URL or a keyword. At least one of these inputs is needed.
- Set
results_wantedand, when needed,max_pagesorpage. - Add optional orientation, size, color, or locale filters.
- Run the Actor and inspect the dataset preview.
- Download the results or connect the dataset to your preferred workflow.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | String | No | https://www.pexels.com/search/summer/ | Public Pexels photo search URL. Use a URL with existing filters when you want to preserve search settings. |
keyword | String | No | summer | Search keyword used when a URL is not provided, or used as the active query when both inputs are supplied. |
results_wanted | Integer | No | 20 | Maximum number of photo results to save. Minimum: 1. |
max_pages | Integer | No | 10 | Maximum number of result pages to process. Minimum: 1. |
page | Integer | No | 1 | Page number from which to start collecting results. Minimum: 1. |
orientation | String | No | - | Optional filter such as horizontal, vertical, or square. |
size | String | No | - | Optional Pexels size filter. |
color | String | No | - | Optional dominant color filter. |
locale | String | No | en-us | Locale override such as en-us or de-de. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional Apify Proxy settings for more reliable access during larger or repeated runs. |
Usage Examples
Basic Keyword Search
Collect the first 20 Pexels photos matching a keyword:
{"keyword": "summer","results_wanted": 20}
Search from a Pexels URL
Use a public search URL when the URL already represents the search you want to collect:
{"url": "https://www.pexels.com/search/office%20desk/","results_wanted": 50,"max_pages": 3}
Filtered Search from a Later Page
Collect vertical photos with a color filter while starting from page 2:
{"keyword": "travel","results_wanted": 40,"max_pages": 4,"page": 2,"orientation": "vertical","color": "blue","locale": "en-us"}
Sample Output
Each dataset item represents one Pexels photo. A typical item looks like this:
{"id": 8455817,"type": "photo","slug": "color-flipflops-on-the-sand","title": "Color Flipflops on the Sand","description": "Vibrant flip flops stand in the sand against a clear blue sky.","alt": "Vibrant flip flops stand in the sand against a clear blue sky.","photo_url": "https://www.pexels.com/photo/color-flipflops-on-the-sand-8455817/","download_page_url": "https://www.pexels.com/photo/8455817/download/","download_image_url": "https://images.pexels.com/photos/8455817/pexels-photo-8455817.jpeg?cs=srgb&dl=pexels-rdne-8455817.jpg&fm=jpg","small_image_url": "https://images.pexels.com/photos/8455817/pexels-photo-8455817.jpeg?auto=compress&cs=tinysrgb&w=130","medium_image_url": "https://images.pexels.com/photos/8455817/pexels-photo-8455817.jpeg?auto=compress&cs=tinysrgb&w=350","large_image_url": "https://images.pexels.com/photos/8455817/pexels-photo-8455817.jpeg?auto=compress&cs=tinysrgb&w=1440","width": 4442,"height": 6663,"aspect_ratio": 0.6666666667,"license": "Pexels","publish_at": "2021-06-23T22:00:45.455Z","tags": ["beach", "summer", "vacation"],"colors": ["#008b8b", "#00bfff", "#cd5c5c"],"photographer_name": "RDNE Stock project","photographer_slug": "rdne","photographer_location": "Los Angeles","photographer_hero": false,"photographer_active_hero": false,"photographer_badges": [],"photographer_badges_count": 0,"reactions_emotional_count": 0,"reactions_technical_count": 0,"reactions_stylistic_count": 0,"search": {"query": "summer","locale": "en-us","source_url": "https://www.pexels.com/search/summer/","page": 1,"total_photo_results": 5186,"current_page": 1}}
Tips for Best Results
- Validate the URL first - Use a public Pexels photo search URL, not a video search, user page, or unrelated Pexels page.
- Start small - Test with
results_wanted: 20before collecting a larger dataset. - Use
max_pagesas a safety limit - Increase it when the search needs deeper pagination, but keep it aligned with the requested result count. - Keep filters specific - Use orientation, size, and color filters when they are important to your research or asset selection.
- Review licensing information - Check the Pexels license and current platform terms before publishing or redistributing an image.
- Schedule repeat runs for monitoring - Compare datasets over time to track new photos, photographer activity, or changes in search results.
Integrations
- Google Sheets - Review photo candidates, tags, colors, and links in a shared spreadsheet.
- Airtable - Create a searchable image catalog with filters for topics, photographers, colors, and dimensions.
- Make or Zapier - Send new dataset items to content, marketing, or approval workflows.
- Webhooks - Notify your service after a run finishes.
- Apify API - Retrieve datasets programmatically for applications, enrichment, and scheduled pipelines.
Apify datasets can be exported as JSON, CSV, Excel, XML, and other supported formats.
Frequently Asked Questions
Can I use a keyword and a URL?
Yes. Provide either one or both. A keyword is convenient for a new search, while a URL is useful when you want to start from a specific Pexels search page and preserve its context.
Does the Actor support Pexels video or user pages?
No. This Actor is intended for Pexels photo search URLs. Use a photo search URL such as https://www.pexels.com/search/nature/.
Can I collect more than one page of results?
Yes. The Actor continues through result pages until it reaches results_wanted, reaches max_pages, or Pexels has no more results. Use page to start from a later page.
Does the Actor download image files?
No. It stores image and download URLs in the dataset. You can use those links in a separate download or content workflow.
Why is a field missing from an item?
A field is omitted when Pexels does not provide that value for the photo. Check several records before treating a missing field as a collection problem.
Can I export Pexels results to CSV or Excel?
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, or another available format after the run completes.
Is it legal to collect Pexels data?
Public data collection may be permitted for some uses, but you are responsible for following Pexels terms, license requirements, privacy rules, and applicable laws. Confirm that each image is suitable for your intended use before publishing it.
Related Actors
- Unsplash Image Scraper - Collect image metadata and download links from Unsplash.
- Pixabay Image Scraper - Search Pixabay images and collect image URLs, tags, and creator information.
- OpenVerse Image Scraper - Find openly licensed images with license and attribution metadata.
Support
For issues, feature requests, or source-page changes, use the Issues tab on the Actor page in Apify Console.
Legal Notice
This Actor is intended for lawful research, content planning, asset discovery, and data workflows. Users are responsible for complying with Pexels terms, image licenses, copyright rules, privacy requirements, and other applicable laws. Do not assume that a collected image can be republished without checking its current license and permitted use.