Skip to content

Pexels Scraper

Try for free

Scrape free stock photos and videos from Pexels without an API key: search with orientation, color, size, people and duration filters, or pull collections, photographer portfolios, similar media and the discover feed. Get download URLs at every size, video files, tags, colors, dimensions and photographer details.

📸 Pexels Scraper

Collect free stock photos and videos from Pexels with direct download URLs at every size, every video rendition, tags, colors, dimensions and photographer details. Search with real Pexels filters, or pull whole collections, photographer portfolios, similar media and the discover feed. No Pexels account, no API key, about $2 per 1,000 results.

✨ Why use Pexels Scraper?

  • 🔑 No API key or login — paste search terms or Pexels links and run.
  • 🎞️ Photos and videos — image URLs at original, large, medium and small sizes; every video file with width, height and fps, plus the highest-quality link.
  • 🎛️ All the Pexels filters — orientation, color, number of people, age group, date posted, minimum width/height, video duration, resolution (1080p/4K/8K) and frame rate.
  • 🔎 Past the 480-result wall — Pexels shows about 480 results per search. Deep search splits the query by color, orientation and other filters to collect thousands of unique results for one term.
  • 🧩 Six ways in — keywords, photo/video URLs or IDs, collections, photographer profiles, "similar to" a photo, and the discover feed, all in one run.
  • ⚡ Fast and cheap — plain JSON requests over datacenter proxies; 10 results take a few seconds and 2,000 deep-search results about 20 seconds in our tests.

🎯 Use cases

  • 🤖 AI and ML datasets — build labeled image or video sets with tags, alt text, dimensions and colors.
  • 🖼️ Content and design teams — find on-brand images by color and orientation, then hand the download links to your asset pipeline.
  • 📰 Publishers and marketers — source royalty-free visuals for articles, ads and social posts in bulk.
  • 📊 Stock media research — track what a photographer publishes, what a collection holds or what trends for a keyword.
  • 🎬 Video editors — pull 4K or 60 fps b-roll for a topic with every rendition's file link.

🚀 How to use

  1. Enter one or more search terms (e.g. nature, coffee) and/or paste Pexels URLs (photo, video, collection, photographer, search page).
  2. Pick photos, videos or both and set Max results per input.
  3. Optionally set filters (orientation, color, people, size, duration, resolution).
  4. Click Start and download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
searchQueriesKeywords to search, one per line.
startUrlsPexels photo/video pages or IDs, collections or slugs, @photographer profiles, search pages (their filters are used), or the discover page.
mediaTypephotos, videos or all.
maxItemsResults per input: each search term, URL, ID and the discover feed gets its own limit (0 = everything Pexels serves). One search term plus includeDiscoverFeed with maxItems: 5 saves up to 10 results.
orientation, color, peopleCount, peopleAge, datePostedSearch filters.
minWidth, minHeight, minDuration, maxDuration, resolution, frameRateSize and video filters.
similarToPhoto/video URLs or IDs; returns media Pexels lists as related.
includeDiscoverFeedAdds the newest curated media from the discover feed.
deepSearchGoes past ~480 results per search by splitting on filters (on by default).
{
  "searchQueries": ["coffee", "mountain lake"],
  "startUrls": [
    "https://www.pexels.com/collections/aquatic-aesthetic-bw7dkse/",
    "https://www.pexels.com/search/videos/city%20night/?orientation=portrait"
  ],
  "mediaType": "photos",
  "maxItems": 100,
  "orientation": "landscape",
  "color": "blue"
}

📤 Output

One row per photo or video. Main fields:

FieldDescription
type, id, url, slugMedia type, Pexels ID, page URL and slug
title, description, alt, tagsText metadata and content tags
width, height, aspectRatio, orientationDimensions
mainColor, colorsDominant color and palette (photos)
imageOriginal, imageLarge, imageMedium, imageSmallPhoto URLs by size
downloadUrl, highestQualityUrl, downloadPageBest download link and the Pexels download page
duration, fps, videoSrc, videoPreview, videoFilesVideo length, frame rate, files with width/height/fps/link
preview, thumbnailsPreview images
photographer, photographerUrl, photographerId, photographerLocation, photographerInstagram, photographerTwitter, photographerAvatar, donateUrlCreator profile
createdAt, publishedAt, license, reactions, collectionIdsDates, license and engagement
mode, query, sourceIdWhich input produced the row

Example (one photo row from a test run, with the photographer details replaced by fictional ones and the tag list shortened):

{
  "type": "photo",
  "id": 12377231,
  "url": "https://www.pexels.com/photo/a-green-trees-in-the-forest-12377231/",
  "slug": "a-green-trees-in-the-forest",
  "title": "A Green Trees in the Forest",
  "description": "Dense greenery in a tranquil forest setting with tall trees and natural light.",
  "alt": "Dense greenery in a tranquil forest setting with tall trees and natural light.",
  "width": 1965,
  "height": 3488,
  "aspectRatio": 0.5633600917431193,
  "orientation": "portrait",
  "license": "Pexels",
  "tags": ["forest", "green trees", "nature", "sunlight", "woods"],
  "mainColor": "#2a3121",
  "colors": ["#000000", "#2f4f4f", "#808080", "#d3d3d3"],
  "reactions": 0,
  "createdAt": "2022-06-04T08:21:04.000Z",
  "publishedAt": "2022-06-04T21:00:33.377Z",
  "photographer": "Alex Example",
  "photographerSlug": "alex-example-100000001",
  "photographerId": 100000001,
  "photographerUrl": "https://www.pexels.com/@alex-example-100000001/",
  "photographerLocation": "Lisbon",
  "photographerInstagram": "alex.example",
  "photographerIsHero": true,
  "mode": "search",
  "query": "nature",
  "imageOriginal": "https://images.pexels.com/photos/12377231/pexels-photo-12377231.jpeg",
  "imageLarge": "https://images.pexels.com/photos/12377231/pexels-photo-12377231.jpeg?auto=compress&cs=tinysrgb&w=1440",
  "imageMedium": "https://images.pexels.com/photos/12377231/pexels-photo-12377231.jpeg?auto=compress&cs=tinysrgb&w=750",
  "imageSmall": "https://images.pexels.com/photos/12377231/pexels-photo-12377231.jpeg?auto=compress&cs=tinysrgb&h=130",
  "downloadUrl": "https://images.pexels.com/photos/12377231/pexels-photo-12377231.jpeg?cs=srgb&dl=pexels-12377231.jpg&fm=jpg",
  "downloadPage": "https://www.pexels.com/photo/12377231/download/",
  "duration": null,
  "videoFiles": []
}

Video rows also carry duration, fps, videoSrc, videoPreview and a videoFiles list such as {"fileType": "video/mp4", "width": 3840, "height": 2160, "fps": 30, "link": "https://videos.pexels.com/video-files/..."}. The Video files view shows one row per rendition.

💰 Pricing

You pay $2.00 per 1,000 results ($0.002 per photo or video saved), plus a small amount of platform usage (compute and datacenter proxy traffic), which is usually well under a cent for a typical run. Example: 1,000 results ≈ $2.00 in result fees. Set a maximum charge on the run to cap your spend; the scraper stops cleanly when it is reached.

❓ FAQ

Is it legal? The scraper reads public pages and media information that Pexels shows to every visitor. Pexels media is free to use under the Pexels License; crediting photographers is appreciated. You are responsible for how you use the data.

Do I need a Pexels account, API key or proxy? No account or key. The default datacenter proxy works well.

How many results can I get? Pexels shows about 480 results per search and filter combination. With deep search on, one term can return thousands of unique results. Photographer portfolios and collections are listed in full.

Can I download the actual files? The rows contain direct CDN links for every size and video rendition; feed them to any downloader.

Why is a field empty? Pexels leaves some fields blank (videos have no color palette, many photographers have no location or social links). Empty values are kept so every row has the same shape.

Can I schedule it or use the API? Yes. Run it on a schedule, call it from the API, or connect it to your workflows and export JSON, CSV or Excel.

⚠️ Limits

  • Each search and filter combination is limited by Pexels to about 480 results; deep search works around this but cannot reach every match for very broad terms.
  • People, age, date, color, resolution and frame-rate filters work on searches only; orientation, size and duration are also applied to profiles, collections and the discover feed.
  • Download counts and view statistics are not public on Pexels and are not included.
  • Users' likes, followers and private collections are not covered.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.