
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
4 monthly users

Scrape free Pixabay images, illustrations, vectors, videos and GIFs by keyword, search URL or creator profile. Get preview and download links, tags, size, likes, views, downloads, AI and Editor's Choice flags and creator details, with optional upload dates, file sizes and camera EXIF.
Pull free Pixabay images, illustrations, vectors, videos and GIFs into a clean dataset: preview and download links, tags, size, likes, views, downloads, AI and Editor's Choice flags, and the creator behind each file. Search by keyword in 26 languages, paste any Pixabay search, creator or media page, and get 100 results per request. No login, no API key, and pay-per-result pricing that undercuts similar tools.
nature, city skyline), or paste Pixabay URLs: search pages, category pages, creator profiles or single image/video pages.| Field | What it does |
|---|---|
searchTerms | Keywords to search, one search per term. |
startUrls | Pixabay search/category pages, creator profiles (/users/name-123/) or media pages. Filters in the URL are kept. |
mediaType | images (photos + illustrations + vectors), photos, illustrations, vectors, videos or gifs. |
maxItems | Results per search term or URL (default 20; 0 = everything Pixabay lists). |
sortBy | popular (most relevant), latest, editors-choice or trending. |
orientation, colors, minWidth, minHeight, uploadedWithin | Pixabay's search filters (colors, size and date apply to images). |
aiContent | any, only (AI-generated only) or exclude. |
excludeSensitive | Drop results Pixabay flags as sensitive. |
language | Language of the search terms (26 site languages). |
includeDetails | Open each result's page for dates, full keywords, file sizes and EXIF. |
deduplicate | Save each file once across all inputs (on by default). |
{
"searchTerms": ["nature", "city skyline"],
"mediaType": "photos",
"maxItems": 100,
"sortBy": "latest",
"orientation": "horizontal",
"minWidth": 3000,
"aiContent": "exclude"
}
Creator portfolio and a video search URL:
{
"startUrls": [
{ "url": "https://pixabay.com/users/richardsdrawings-858383/" },
{ "url": "https://pixabay.com/videos/search/ocean/?order=latest" }
],
"maxItems": 50
}
One row per image, video or GIF.
| Field | Description |
|---|---|
id, pageUrl | Pixabay media ID and page link |
mediaType, mediaDescriptiveType | photo / video / animation, and photo, illustration, vector, video or animation |
name, title, alt, description | Texts Pixabay shows for the file |
tags, tagList | Tags as text and as a list |
width, height, duration | Original size in pixels; video/GIF length in seconds |
imageUrl_small, imageUrl_large, previewUrl | 640 px and 1280 px images (thumbnails for videos) |
videoPreviewUrl, gifUrl_small, gifUrl_large | MP4 preview for videos, 256/512 px GIF files for GIFs |
downloadUrl | Pixabay's download link |
likeCount, commentCount, viewCount, downloadCount | Engagement counts |
isEditorsChoice, isAiGenerated, nsfw, vector, isLowQuality, qualityStatus | Pixabay's flags |
uploadDate | Upload time (from the file's storage path; exact time with details on) |
username, profileUrl, user_id, user_avatarSrc, user_isAvailableForHire, user_isActive, user_donations | Creator |
attributionHtml | Ready-to-paste credit line |
canva…Url | Pixabay's "edit in Canva" links |
searchQuery, sourceUrl, page, position | Where the row came from |
With details: publishedDate, keywords, fileFormat, downloadSizes, collectionCount, cameraName, lens, focalLength, aperture, exposureTime, iso, user_followerCount, user_totalViews, user_totalDownloads | From the media page |
Example (trimmed):
{
"id": 7133867,
"mediaType": "photo",
"mediaDescriptiveType": "photo",
"name": "Sunset, Sand, Beach, Islands",
"title": "Download free HD stock image of Sunset Sand",
"description": "Sunset, Sand, Beach, Islands, Leaf, Subtropical, Okinawa",
"tags": "Sunset, Sand, Beach",
"pageUrl": "https://pixabay.com/photos/sunset-sand-beach-islands-leaf-7133867/",
"width": 3150,
"height": 2100,
"uploadDate": "2022-04-15T07:58:00",
"likeCount": 1037,
"commentCount": 162,
"viewCount": 471598,
"downloadCount": 437570,
"isEditorsChoice": true,
"isAiGenerated": false,
"downloadUrl": "https://pixabay.com/images/download/x-7133867_1920.jpg",
"imageUrl_small": "https://cdn.pixabay.com/photo/2022/04/15/07/58/sunset-7133867_640.jpg",
"imageUrl_large": "https://cdn.pixabay.com/photo/2022/04/15/07/58/sunset-7133867_1280.jpg",
"username": "Kanenori",
"profileUrl": "https://pixabay.com/users/kanenori-4749850/",
"user_id": 4749850,
"user_isAvailableForHire": false,
"searchQuery": "nature",
"page": 1,
"position": 1
}
You pay $0.70 per 1,000 results ($0.0007 per saved image, video or GIF). Ads, duplicates and filtered-out results are free. The optional media page details add $0.30 per 1,000 results that got their details; rows whose page could not be loaded are not charged for details.
Example: 1,000 images ≈ $0.70 in result fees. Platform usage (compute and proxy traffic) is billed separately and is small for this actor because 100 results come in one request.
Is it legal to scrape Pixabay? The actor reads public pages that anyone can open without an account. Pixabay's content license and terms still apply to how you use the files; check them for your use case, especially for redistribution or AI training.
Do I need a Pixabay account, API key or proxy? No account or API key. The default datacenter proxy works for Pixabay; switch to residential only if you see repeated blocks.
How many results can I get? As many as Pixabay lists for your search; set maxItems to 0 for all of them. Each page holds 100 results (60 on creator profiles). Very broad terms such as nature have over a million results, so set a limit unless you really want them all.
Why is a field empty? Pixabay doesn't send every field for every file: videos have no 1280 px image, GIFs have no MP4, creators without a donation link have none. Follower counts, the publish date, file sizes and EXIF come only with media page details on.
Can I schedule it or use it from my code? Yes. Schedule runs in the console, or start them with the API and read the dataset as JSON, CSV or Excel.
I'm moving from a similar actor on another platform. The output keeps the familiar field names (imageUrl_small, imageUrl_large, user_id, likeCount...), and the input also accepts keyword, url, startUrl and results_wanted.
uploadDate comes from the file's storage path and can differ from the public publish date by up to a day; turn on details for the exact time.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch terms
Keywords to search on Pixabay, one per line (e.g. nature, city skyline). Each term is its own search with its own result limit. Add a place to the term for local scenes, e.g. cherry blossom tokyo.
startUrlsarrayOptionalPixabay URLs
Pixabay pages to scrape: search or category pages (e.g. https://pixabay.com/images/search/mountain/, https://pixabay.com/videos/search/ocean/?order=latest), creator profiles (https://pixabay.com/users/name-12345/, their whole portfolio) or single image/video pages. Filters already in a URL are kept; the filter fields below apply to search terms only.
mediaTypeenumOptionaldefault "images"Media type
What to search for with the search terms.
maxItemsintegerOptionaldefault 20Max results per search term or URL
How many results to save for each search term or URL. 0 = everything Pixabay lists (popular terms have hundreds of thousands of results).
Filters for search terms. Color, size and upload-date filters apply to images only.
sortByenumOptionaldefault "popular"Sort by
Order of the search results, as on pixabay.com.
orientationenumOptionaldefault "any"Orientation
Only horizontal (landscape) or vertical (portrait) media.
colorsarrayOptionalColors
Only images with these colors (images only).
minWidthintegerOptionalMinimum width (px)
Only images at least this wide (images only).
minHeightintegerOptionalMinimum height (px)
Only images at least this tall (images only).
uploadedWithinenumOptionaldefault "any"Uploaded within
Only images uploaded in this period (images only).
aiContentenumOptionaldefault "any"AI-generated content
Keep, isolate or drop media that Pixabay marks as AI-generated.
excludeSensitivebooleanOptionaldefault falseExclude sensitive content
Drop results that Pixabay flags as sensitive (NSFW).
languageenumOptionaldefault "en"Search language
Language of the search terms, e.g. German for natur. Pixabay matches keywords in its 26 site languages; titles and tags come back in that language.
includeDetailsbooleanOptionaldefault falseInclude media page details
Also open each result's own page for the exact upload and publish date, the full tag list, file format, download sizes, camera and lens (EXIF) and the creator's totals. One extra request per result, charged as a separate event. Media page URLs always include these details.
deduplicatebooleanOptionaldefault trueSkip duplicates across inputs
Save each image or video only once even when several search terms or URLs return it.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Pixabay. Switch to residential only if you see repeated blocks.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | integer | Pixabay media ID |
| mediaType | string | photo (all images), video or animation (GIF) |
| mediaDescriptiveType | string | photo, illustration, vector, video or animation |
| name | string | null | |
| title | string | null | |
| tags | string | null | |
| pageUrl | string | |
| previewUrl | string | null | |
| imageUrl_large | string | null | |
| width | integer | null | |
| height | integer | null | |
| likeCount | integer | null | |
| viewCount | integer | null | |
| downloadCount | integer | null | |
| username | string | null | |
| uploadDate | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Media page details | Extra details from a result's own media page (exact upload and publish date, full keywords, file sizes, camera EXIF, creator totals). Charged only when media page details are on and the page loaded. | $0.0003 |
| Result | One Pixabay image, video or GIF saved to the dataset, with preview and download links, tags, size, engagement counts and creator details. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/pixabay-scraper').call({
"searchTerms": [
"nature"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/pixabay-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/pixabay-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Paste any Pixabay search or category URL.
Photo search sorted by latest: vertical, orange and white, at least 3000 px, uploaded in the last year, no AI-generated or sensitive images.
Video search with exact dates, keywords and download sizes.
Search in German and get German titles and tags.
Every public image of one Pixabay creator.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.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.