Wikipedia Licensed Person Photo Finder
Pricing
from $0.46 / 1,000 completed article photo lookups
Wikipedia Licensed Person Photo Finder
Find representative Commons portraits for exact English Wikipedia person articles. Export original image URLs, dimensions, licence and creator credits, with explicit missing statuses. No downloads or rights guarantee.
Pricing
from $0.46 / 1,000 completed article photo lookups
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Find Wikipedia licensed photos for recurring editorial research. Supply exact English Wikipedia person article titles or URLs and export the article's representative Commons image with original dimensions, licence metadata, creator credit and the attribution source page.
This is a metadata research tool, not a rights-clearance service. It does not download image files, search Find a Grave, identify faces or guarantee that an image can be used in your publication or jurisdiction.
What does this Actor do?
For each supplied article, the Actor follows English Wikipedia redirects, checks whether Wikidata describes the subject as a human, and looks up Wikipedia's representative free image on Wikimedia Commons. It returns one row per resolved article, including an explicit status when no qualifying image is available.
It does not scan every image in the article or search for alternate portraits. Wikipedia's representative image can be a photograph, painting, illustration or another raster image; you must review its subject and suitability. An article without a suitable representative image is not evidence that no reusable portrait exists elsewhere.
Who is it for?
- Editors preparing public-figure portrait research spreadsheets.
- Researchers documenting image provenance for supplied person lists.
- Content teams repeating the same lookup over time and comparing the returned metadata.
Start with exact article titles rather than ambiguous bare names. For example, use Michael Jordan for the basketball player and a parenthesized article title for a different person with that name.
Why use it?
An image URL alone does not tell an editor where to check attribution or how large the original is. This Actor joins the person article to the Commons file record, keeps creator and source credits in readable text, and distinguishes undersized images from missing articles or non-person pages.
The output retains nonqualifying metadata for review. A below_min_size row is not silently removed, and a missing licence is not guessed from the website hosting the file.
Getting started
- Add one or more exact English Wikipedia titles or HTTPS article URLs.
- Choose the minimum original-image short edge; the default is 800 pixels.
- Set a maximum number of input articles to process.
- Run the Actor and open the default dataset.
- Filter for
status = found, then open eachattributionSourcebefore using an image.
{"articles": ["Albert Einstein","https://en.wikipedia.org/wiki/Marie_Curie"],"minShortEdge": 800,"maxItems": 100}
Inputs
| Field | Default | Behavior |
|---|---|---|
articles | Required | 1–500 exact English Wikipedia mainspace titles or https://en.wikipedia.org/wiki/ URLs. No fuzzy name search. |
minShortEdge | 800 | Minimum of original width and height, in pixels. Integer 0–100000; 0 disables only the size threshold. |
maxItems | 100 | Global cap on distinct normalized input titles processed, in input order. Integer 1–500; zero and unlimited are unsupported. |
Surrounding whitespace is trimmed and underscores become spaces. Exact normalized input duplicates are removed before the cap. Resolved article duplicates, such as a redirect and its destination, produce one row; the first supplied title is retained. Redirect deduplication can therefore produce fewer rows than maxItems.
Both title and URL inputs use the same person, licence and size checks. A URL fragment or query string is ignored; it does not select an image or article section. Namespaces such as File: and unsupported website URLs are rejected before lookups. Input fields do not enable other languages or additional sources.
Wikipedia licensed photos output
The default dataset contains flat JSON records that Apify can export as CSV, Excel or JSON.
| Field | Meaning |
|---|---|
requestedTitle | Normalized input title retained for this row. |
title, articleUrl | Resolved English Wikipedia article and canonical URL, or null for a missing page. |
wikidataId | Linked Wikidata entity identifier when supplied. |
status | Lookup outcome; see the statuses below. |
imageTitle, imageUrl | Representative Commons file title and original image URL, not a binary download. |
width, height | Original dimensions, or null when unavailable. |
licence, licenceUrl | Commons licence short name and separate terms link. Public-domain records can have no separate terms URL. |
creator, credit | Plain-text creator and source-credit metadata, without HTML links. |
attributionSource | Commons file page to inspect for complete attribution, history and rights notes. |
restrictions | Additional restrictions reported by Commons, or null if not supplied. |
scrapedAt | UTC lookup timestamp, not the image creation date. |
Here is an example from a local source lookup; live metadata may change:
{"requestedTitle": "Albert Einstein","title": "Albert Einstein","articleUrl": "https://en.wikipedia.org/wiki/Albert_Einstein","wikidataId": "Q937","status": "found","imageTitle": "File:Albert_Einstein_Head_cleaned.jpg","imageUrl": "https://upload.wikimedia.org/wikipedia/commons/2/28/Albert_Einstein_Head_cleaned.jpg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original","width": 4530,"height": 5607,"licence": "Public domain","licenceUrl": null,"creator": "Oren Jack Turner","credit": "This image is available from the United States Library of Congress's Prints and Photographs division under the digital ID cph.3b46036.This tag does not indicate the copyright status of the attached work. A normal copyright tag is still required. See Commons:Licensing.","attributionSource": "https://commons.wikimedia.org/wiki/File:Albert_Einstein_Head_cleaned.jpg","restrictions": null,"scrapedAt": "2026-10-27T07:05:12.774Z"}
Statuses and qualification
found: human subject, Commons representative raster image, required metadata present, recognized licence label and requested size threshold met.missing_page: the exact article does not exist.disambiguation: Wikipedia reports a disambiguation page.person_unverified: no linked Wikidata entity is available for the human check.not_person: Wikidata has no nondeprecatedinstance of humanstatement.no_image: Wikipedia supplies no representative free image.not_commons: the selected file is not available from Commons.missing_metadata: required image URL, file source, dimensions, licence label or creator metadata is absent.unsupported_licence: the reported label is not recognized as CC BY, CC BY-SA, CC0 or Public domain. This is a conservative metadata check, not a legal conclusion.unsupported_media: the selected file is not a supported raster image; SVG and DjVu are excluded.below_min_size: the original short edge is below the requested minimum.
Qualification uses the source licence label, not independent copyright analysis. Additional legal restrictions may apply even to found records. Unknown dimensions and licence details remain null rather than invented values.
How much does it cost to find Wikipedia person portraits?
The Actor declares a one-time start event and a lookup event for every completed, deduplicated article lookup row. Every completed lookup incurs the lookup fee, including missing articles, non-person pages and images below your size threshold. You pay for the completed availability/metadata check, not a guarantee of finding a usable portrait. Invalid input, redirect duplicates and failed lookups have no lookup charge. The start fee applies after input validation, including runs with no qualifying portraits.
Pricing is $0.0005 per start and $0.00076 per completed lookup at BRONZE. Estimated totals are $0.00126 for one completed lookup, $0.0081 for ten, or $0.0765 for one hundred, regardless of how many portraits qualify. Consult the Pricing tab for your applicable tier. Spend tiers follow qualifying aggregate monthly Apify Store spend, not a per-Actor volume discount.
| Spend tier | Price per completed lookup |
|---|---|
| FREE | $0.000874 |
| BRONZE | $0.00076 |
| SILVER | $0.0005928 |
| GOLD, PLATINUM, DIAMOND | $0.000456 |
The $0.0005 start fee is the same across these tiers. Estimates are not guaranteed invoices.
Limits and failure behavior
Requests go sequentially to the public Wikipedia, Wikidata and Commons APIs in batches of up to ten articles, with a 250 ms pause before each request. There is no login, source API key, browser or paid proxy option. The Actor does not fetch image binaries.
Transient network failures, timeouts, HTTP 429 and server errors receive at most three attempts per request with bounded backoff. The Actor honors Retry-After delays up to 30 seconds; a longer requested delay fails the run rather than retrying early. Permanent HTTP errors and unrecognized response shapes fail the run, not a false no_image result. Earlier rows from a failed run are partial results; inspect the terminal run status before treating an export as complete.
Large input lists can hit the run timeout or billing limit. maxItems limits input work, not a promised number of found images. A list can legitimately yield no qualifying portraits.
Integrations
Export the dataset into a research spreadsheet and filter by status, dimensions and licence. Keep articleUrl and attributionSource with every image reference so an editor can inspect provenance later.
For repeat checks, schedule the same input and compare rows by articleUrl; metadata and representative images can change. This Actor does not provide built-in change alerts or a historical image archive. A webhook or downstream workflow can handle successful run notifications.
API examples
Use your own Apify API token in an environment variable. The synchronous endpoint returns dataset rows for a completed run; use asynchronous run APIs for larger jobs and inspect the terminal status.
curl -X POST \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \'https://api.apify.com/v2/acts/automation-lab~wikipedia-person-licensed-photo-finder/run-sync-get-dataset-items' \-d '{"articles":["Albert Einstein"],"minShortEdge":800,"maxItems":1}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/wikipedia-person-licensed-photo-finder').call({ articles: ['Albert Einstein'], maxItems: 1 });if (run.status !== 'SUCCEEDED') throw new Error(`Run ended ${run.status}`);const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 20 });console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/wikipedia-person-licensed-photo-finder').call(run_input={'articles': ['Albert Einstein'], 'maxItems': 1})if run['status'] != 'SUCCEEDED':raise RuntimeError(run['status'])print(client.dataset(run['defaultDatasetId']).list_items(limit=20).items)
MCP integration
For clients supporting hosted HTTP MCP, select a stable Actor-specific subset:
claude mcp add --transport http apify \'https://mcp.apify.com?tools=automation-lab/wikipedia-person-licensed-photo-finder'
Equivalent Claude Desktop, Cursor and VS Code client configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/wikipedia-person-licensed-photo-finder"}}}
Authenticate using your client's supported Apify authorization flow. Discover actual tool names and argument schemas with tools/list; selecting an Actor also exposes run and storage helper tools, not exactly one tool. Availability depends on your account's access to the Actor.
Example prompt: “Look up Albert Einstein and Marie Curie with a minimum short edge of 800 pixels. Return the licence, creator and Commons source page; do not claim these images are legally cleared.”
For an authorized invocation, start once and retain the returned run and storage IDs. These are metadata, not result rows. call-actor waits at most 45 seconds. If the run is pending, inspect that same run with bounded backoff, for example 2, 4 and 8 seconds capped at 10, with a total 120-second deadline. Set the client timeout above the selected server wait plus transport margin. At the deadline, report the pending run ID; do not restart to poll. After a client timeout, recover the known run rather than duplicating it.
After success, read the dataset with explicit fields, offsets and limits, for example 20 rows per page and at most 100 rows or 64 KiB of serialized UTF-8 content admitted to model context, whichever comes first. Enforce the byte limit host-side before injecting rows into context; if the client cannot intercept responses, do not promise a hard byte bound. Report continuation offset and truncation when incomplete. Keep full exports outside model context. Failed runs can have partial rows but are not successful complete results.
Legality, responsible use and privacy
Review the full Commons file page, licence conditions, jurisdiction, personality rights and applicable editorial policy before reuse. Public-domain labels can be jurisdiction-specific. A licence label is not a guarantee that the uploader owned the rights, that the image depicts the intended person, or that attribution text is sufficient. This Actor is not affiliated with Wikimedia.
This Actor uses no AI models. Article titles are sent to Wikimedia's public APIs; resulting public person and creator metadata is stored in your Apify run dataset. No image binaries, browser sessions or local media cache are retained. Apify input, datasets and logs follow your account's storage retention settings; delete the run and its storage through Apify when no longer needed. The Actor does not automatically purge your export.
Failed operations send sanitized diagnostic input, exceptions and actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed; reports are retained for 30 days. Do not submit confidential information in article titles. Use the Actor's Apify Issues tab for technical support; include the run ID rather than private credentials.
Frequently asked questions
Why is there no photo for a famous person? The Actor uses only the article's representative free image and requires Commons metadata. It does not enumerate other images or archives.
Why does the minimum-size check reject an image? The threshold applies to the shorter original dimension, not the thumbnail, longer edge or total pixel count. Lower the threshold only if that suits your workflow.
Can I use a bare name or a non-English article? Supply the exact English article title. There is no search ranking or non-English mode.
Does found mean commercially cleared? No. It means the metadata and size checks passed. Review the attribution source and your intended use independently.
Why did a run fail after saving some rows? Upstream errors are not converted into misleading missing statuses. Inspect the run log and treat its dataset as partial.
Related Actors
- Wikipedia Scraper for article content rather than portrait attribution research.
- Wikipedia Article Daily Pageviews for audience trends rather than image discovery.