Openverse Scraper — CC Images, Audio & Media API
Pricing
from $1.50 / 1,000 results
Openverse Scraper — CC Images, Audio & Media API
Scrape Openverse by keyword, license, or media ID. Extract title, creator, license, URL, thumbnail, tags, dimensions for stock research, dataset building, and CC media discovery. No API key, no login.
Scrape Creative Commons images and audio from Openverse by keyword, license type, or media ID. Extract full metadata for stock research, AI training datasets, and CC media discovery — no API key required.
What does Openverse Scraper do?
Openverse Scraper connects to the official Openverse API — the world's largest catalog of openly licensed media, covering over 600 million Creative Commons images and audio tracks from sources like Flickr, Wikimedia Commons, Rawpixel, Jamendo, and more. The actor performs keyless anonymous queries against the /images/ and /audio/ search endpoints, paginates through results in batches of 100, and pushes clean structured records to Apify's dataset storage.
Three modes are available: images (keyword search across CC photographs, illustrations, and vectors), audio (keyword search across CC music, recordings, and sound effects), and detail (fetch full metadata for a single image by its UUID). Optional filters let you narrow results by license type (CC BY, CC0, CC BY-SA, etc.) or by source provider (flickr, wikimedia, rawpixel). The actor respects Openverse's anonymous rate limits with low concurrency and polite delays, ensuring stable long-running jobs that can yield thousands of items per query.
Who is it for?
- Designers and content creators who need free-to-use images or audio for commercial and personal projects
- AI/ML researchers building training datasets of openly licensed visual or audio content
- Journalists and educators who need properly attributed CC media for publications
- Stock media analysts researching licensing trends, provider coverage, and keyword availability on open platforms
- Developers and data engineers who need bulk CC media metadata for cataloging, recommendation systems, or archival projects
Use cases
- Build a curated CC image dataset for computer vision model training (e.g., all CC0 landscape photos from Wikimedia)
- Monitor which keywords return the most results on Openverse to guide content creation strategy
- Automatically generate properly attributed image galleries for a CMS or editorial platform
- Research the distribution of CC license types (BY, BY-SA, BY-NC, etc.) across major media sources
- Discover ambient music and sound effects under CC licenses for podcast or video production
Why use Openverse Scraper?
- No API key required — anonymous access to the full Openverse catalog, no registration needed
- 15 structured fields per item — ID, title, creator, license, version, URL, thumbnail, source page, provider, tags, file type, dimensions, and attribution text
- Bulk pagination — paginate up to 10,000 results per query automatically
- Three modes — images search, audio search, single-item detail fetch
- License and source filters — narrow to CC0 only, or to a specific source like Flickr or Wikimedia
- Export CSV, JSON, Excel — download results in any format via Apify dataset interface or API
- Pay-per-result pricing — only pay for the data you actually collect
What data can you extract?
The actor extracts the following fields for every media item:
| Field | Type | Description |
|---|---|---|
| id | string | Openverse UUID for the media item |
| title | string | Title or filename of the media |
| creator | string | Author/photographer/artist name |
| license | string | CC license slug (e.g. by, by-sa, cc0) |
| licenseVersion | string | License version (e.g. 2.0, 4.0) |
| url | string | Direct URL to the media file |
| thumbnail | string | Openverse-hosted thumbnail URL |
| foreignLandingUrl | string | Original source page URL (e.g. Flickr page) |
| source | string | Source name (e.g. flickr, wikimedia) |
| provider | string | Provider name (usually same as source) |
| tags | string | Comma-separated tag list |
| fileType | string | File extension (jpg, png, mp3, etc.) |
| width | string | Image width in pixels (images only) |
| height | string | Image height in pixels (images only) |
| attribution | string | Full pre-formatted attribution sentence |
Example output:
{"id": "8dac0234-5511-43f8-bcc7-0c6c0c41c83d","title": "Mountain landscape","creator": "randihausken","license": "by-sa","licenseVersion": "2.0","url": "https://live.staticflickr.com/6083/6036144711_e2c3f202c5_b.jpg","thumbnail": "https://api.openverse.org/v1/images/8dac0234-5511-43f8-bcc7-0c6c0c41c83d/thumb/","foreignLandingUrl": "https://www.flickr.com/photos/46406832@N00/6036144711","source": "flickr","provider": "flickr","tags": "landscape, mountains, telemark","fileType": null,"width": "1024","height": "682","attribution": "\"Mountain landscape\" by randihausken is licensed under CC BY-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/2.0/."}
How to use
Option A — Search by keyword (images or audio)
Set mode to images or audio, provide a query, optionally add license and source filters, and set maxResults for volume control.
{"mode": "images","query": "ocean sunset","license": "by","source": "flickr","maxResults": 500,"proxyConfig": { "useApifyProxy": true }}
Option B — Fetch a single image by ID (detail mode)
Set mode to detail and provide the Openverse image UUID as imageId.
{"mode": "detail","imageId": "8dac0234-5511-43f8-bcc7-0c6c0c41c83d","proxyConfig": { "useApifyProxy": true }}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | images | Scraping mode: images, audio, or detail |
| query | string | — | Search keyword(s) for images or audio mode |
| imageId | string | — | Image UUID for detail mode |
| license | string | — | CC license filter (e.g. by, cc0, by-sa) |
| source | string | — | Source filter (e.g. flickr, wikimedia) |
| maxResults | integer | 200 | Maximum items to return (up to 10,000) |
| proxyConfig | object | Apify proxy | Proxy configuration |
Full input example:
{"mode": "images","query": "jazz music","license": "cc0","source": "","maxResults": 1000,"proxyConfig": { "useApifyProxy": true }}
Output example
{"id": "041a3c2b-76e8-40cc-b10e-f91a53972be6","title": "Denali - Mountain Landscape from Alaska","creator": "blmiers2","license": "by-nc-sa","licenseVersion": "2.0","url": "https://live.staticflickr.com/7191/6904758951_6868a06560_b.jpg","thumbnail": "https://api.openverse.org/v1/images/041a3c2b-76e8-40cc-b10e-f91a53972be6/thumb/","foreignLandingUrl": "https://www.flickr.com/photos/41304517@N00/6904758951","source": "flickr","provider": "flickr","tags": "alaska, denali, glacier, ice, landscape, mountain, snow, travel, winter","fileType": null,"width": "1024","height": "683","attribution": "\"Denali - Mountain Landscape from Alaska\" by blmiers2 is licensed under CC BY-NC-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/2.0/."}
Tips for best results
- Use specific queries —
"jazz piano new orleans"returns more targeted results than just"music" - Filter by license type — use
cc0orbyfor maximum reusability in commercial projects - Combine source + license — e.g.
source: wikimedia, license: cc0for high-quality public domain images - Set maxResults to 1000+ — Openverse has millions of items; the actor handles pagination automatically
- Audio mode — try queries like
"ambient nature","jazz", or `"electronic" for Jamendo music tracks - Detail mode for enrichment — if you have a list of IDs from another source, use detail mode to fetch full metadata
- Export to CSV — use Apify's dataset download for spreadsheet-ready attribution lists
- Rate limits — the actor uses 500ms delays between pages to stay within anonymous limits; for higher volume, consider Openverse's registered API key (currently free)
- Tag filtering — download a large result set and filter by tags in Excel/Python for topical subsets
- Schedule runs — use Apify Scheduler to capture newly indexed CC media on a regular cadence
Integrations
Openverse Scraper outputs clean JSON to Apify's dataset storage, which integrates with:
- Google Sheets — connect via Apify's Google Sheets integration or export CSV
- Slack — receive notifications when a run completes via Apify Webhooks → Slack
- Zapier / Make — trigger workflows from new Openverse dataset items
- Webhooks — configure HTTP callbacks on run completion in Apify Console
- Scheduled runs — set up daily or weekly keyword monitoring via Apify Scheduler
API usage
cURL:
curl -X POST "https://api.apify.com/v2/acts/logiover~openverse-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"images","query":"mountain landscape","maxResults":200}'
Node.js (Apify client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('logiover~openverse-scraper').call({mode: 'images',query: 'mountain landscape',maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("logiover~openverse-scraper").call(run_input={"mode": "images","query": "mountain landscape","maxResults": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["license"], item["url"])
Use with AI agents (MCP)
Openverse Scraper is available as a tool via the Apify MCP server. Connect Claude, GPT-4o, or any MCP-compatible AI agent and instruct it: "Find 500 CC BY-licensed images of ocean sunsets from Flickr and export them with their attribution text." The agent will invoke this actor, paginate the results, and return structured data ready for use in content pipelines, dataset curation, or automated attribution generation.
FAQ
Does this actor require an API key?
No. Openverse offers anonymous access to its public API. This actor works out of the box without any registration or credentials.
How many results can I extract per run?
Openverse supports up to 10,000 results per query via pagination. Set maxResults up to 10,000. For broader coverage, run multiple queries with different keywords.
What media sources does Openverse index?
Openverse indexes over 600 million items from sources including Flickr, Wikimedia Commons, Rawpixel, Jamendo, ccMixter, Free Music Archive, and many more. The source filter lets you restrict to a specific provider.
Why are some fields null?
Some providers don't supply all metadata. fileType, width, and height may be null for items where the source doesn't expose this data. The creator field may be null for anonymous uploads.
What happens if a query returns zero results?
The actor logs a warning and exits cleanly with zero items. This can happen with very niche or misspelled queries, or if a license+source combination has no indexed content.
Can I export results to Excel or CSV?
Yes. Open your dataset in Apify Console and click Export → choose CSV, Excel, or JSON. The attribution column provides ready-to-paste CC attribution text.
How fast does the actor run?
The actor fetches 100 items per page with a 500ms delay between pages to respect anonymous rate limits. Fetching 200 items takes about 2-3 seconds; 1,000 items takes roughly 15-20 seconds.
What CC license types can I filter by?
Use any Openverse license slug: by, by-sa, by-nc, by-nd, by-nc-sa, by-nc-nd, cc0, pdm. Leave blank to return all license types.
Is the data legal to use?
All items in Openverse carry a Creative Commons or equivalent open license. The attribution field provides the required credit text. Always read the specific license terms for commercial vs. non-commercial use restrictions.
How often is Openverse updated?
Openverse re-indexes sources continuously. New Flickr uploads and Wikimedia uploads appear within days to weeks. Schedule this actor weekly to capture freshly indexed CC content.
Can I scrape audio in the same run as images?
No — each run handles one mode. Run the actor twice with mode: images and mode: audio for both media types in the same workflow.
What are the related actors?
- Flickr Scraper — direct Flickr photo search and user gallery scraping
- Wikipedia Scraper — extract article text, images, and metadata from Wikimedia
- Bulk DNS Lookup — for domain research alongside media asset discovery
Is it legal?
Openverse indexes publicly available Creative Commons licensed content published by their respective authors under open licenses. This actor accesses the official Openverse public API in accordance with standard API usage practices. The output data carries existing CC license terms that must be respected when using the media. This actor does not circumvent any access controls or authentication. Users are responsible for complying with the specific Creative Commons license type (attribution, share-alike, non-commercial restrictions) of each item they use. See Openverse Terms of Service and Creative Commons licenses for details.
Related scrapers
- B2B Lead Scraper — find business contacts and company data by industry and country
- Bulk DNS Lookup — bulk domain and DNS record resolution
- Subdomain Finder — enumerate subdomains for any domain using certificate transparency