Pexels Stock Image Scraper avatar

Pexels Stock Image Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Pexels Stock Image Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

33

Total users

14

Monthly active users

2 days ago

Last modified

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?

FieldTypeDescription
idNumberPexels photo identifier.
typeStringPexels record type, normally photo.
slugStringPhoto slug used in the Pexels page URL.
titleStringPhoto title.
descriptionStringPhoto description when available.
altStringAlternative description text.
photo_urlStringPublic Pexels photo page URL.
download_page_urlStringPexels download page URL.
download_image_urlStringDirect image download URL when available.
small_image_urlStringSmall image preview URL.
medium_image_urlStringMedium image preview URL.
large_image_urlStringLarge image preview URL.
widthNumberImage width in pixels.
heightNumberImage height in pixels.
aspect_ratioNumberImage width divided by image height.
licenseStringLicense label supplied by Pexels.
created_atStringCreation timestamp when available.
updated_atStringLast update timestamp when available.
publish_atStringPublication timestamp when available.
tagsArrayPexels tags associated with the photo.
colorsArrayDominant color values associated with the photo.
main_color_rgbStringMain color value when supplied.
photographer_idNumberPhotographer identifier.
photographer_nameStringPhotographer display name.
photographer_slugStringPhotographer profile slug.
photographer_usernameStringPhotographer username.
photographer_locationStringPhotographer location.
photographer_avatar_smallStringSmall photographer avatar URL.
photographer_avatar_mediumStringMedium photographer avatar URL.
photographer_heroBooleanWhether the photographer has hero status.
photographer_active_heroBooleanWhether hero status is currently active.
photographer_instagramStringInstagram profile value when available.
photographer_twitterStringTwitter profile value when available.
photographer_badgesArrayPhotographer badge labels.
photographer_badges_countNumberNumber of photographer badges.
reactions_emotional_countNumberEmotional reaction count.
reactions_technical_countNumberTechnical reaction count.
reactions_stylistic_countNumberStylistic reaction count.
reactions_emotional_reactedBooleanWhether the emotional reaction is active.
reactions_technical_reactedBooleanWhether the technical reaction is active.
reactions_stylistic_reactedBooleanWhether the stylistic reaction is active.
userObjectOriginal photographer profile metadata.
imageObjectOriginal image variant metadata and URLs.
reactionsObjectOriginal reaction counters and flags.
searchObjectQuery, 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

  1. Open the Actor in Apify Console.
  2. Enter a Pexels photo search URL or a keyword. At least one of these inputs is needed.
  3. Set results_wanted and, when needed, max_pages or page.
  4. Add optional orientation, size, color, or locale filters.
  5. Run the Actor and inspect the dataset preview.
  6. Download the results or connect the dataset to your preferred workflow.

Input Parameters

ParameterTypeRequiredDefaultDescription
urlStringNohttps://www.pexels.com/search/summer/Public Pexels photo search URL. Use a URL with existing filters when you want to preserve search settings.
keywordStringNosummerSearch keyword used when a URL is not provided, or used as the active query when both inputs are supplied.
results_wantedIntegerNo20Maximum number of photo results to save. Minimum: 1.
max_pagesIntegerNo10Maximum number of result pages to process. Minimum: 1.
pageIntegerNo1Page number from which to start collecting results. Minimum: 1.
orientationStringNo-Optional filter such as horizontal, vertical, or square.
sizeStringNo-Optional Pexels size filter.
colorStringNo-Optional dominant color filter.
localeStringNoen-usLocale override such as en-us or de-de.
proxyConfigurationObjectNo{"useApifyProxy": false}Optional Apify Proxy settings for more reliable access during larger or repeated runs.

Usage Examples

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: 20 before collecting a larger dataset.
  • Use max_pages as 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.

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.

Support

For issues, feature requests, or source-page changes, use the Issues tab on the Actor page in Apify Console.

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.