How it will work: 3 steps
- Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
metin Museums. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Search The Met and Art Institute of Chicago for artwork metadata and public-domain image links. This Actor brings artist names, creation dates, credit lines and rights flags into one dataset. No museum API key is needed.
Who uses it
Teachers
Find open images for a lesson.
Designers
Build a shortlist of art by artist and date.
Writers and bloggers
Check rights before you pick an image.
Price
Prices will be shown after release.
Questions
Are the images free to reuse?
Image links come only for confirmed public-domain records. Still check the museum page.
Do I need a museum API key?
No. The museum sources are public.
Does an empty search cost money?
Yes, only the small start fee.
Can I export the full collection?
No. One run gives up to 200 works.
Can I get more than 200 works?
A single run supports at most 200 rows. Split your searches by subject, museum or years. The Actor does not promise a complete collection export or provide a pagination cursor.
Is this a drop-in replacement for other museum Actors?
The inputs and field names are specific to this Actor. Use the tables above to map them into your workflow.
Details
Step by step on Apify
- Open Input. The form shows
sunflowers, both museums, public domain only and 20 rows. - Keep these values and click Start.
- Open the Artworks output view for titles, artists and image links.
- Open Rights for licences and credit lines.
- Check Run summary for per-museum counts and limits, then export the Dataset.
Use cases
| Task | Input | Key fields |
|---|---|---|
| Find open images for a lesson | Subject query, public domain only | title, primaryImageUrl, creditLine |
| Build a design research shortlist | Query plus artist or years | artist, dateStart, dateEnd, medium |
| Check reuse rights before selecting art | One or both museums | publicDomain, licence, objectUrl |
Tips for better results
- One run gives up to 200 works. Split by museum, subject or years.
- Always check the museum page for third-party rights.
- Use the credit line when you show an image.
Limits and good to know
A forced platform kill can stop the process before the final summary is written. Dataset storage and event charging are separate operations; a lost storage response can need manual reconciliation.
- At most 200 saved rows per run, 180 Met candidates and 400 Chicago candidates, with a shared budget of 240 source requests and 2 MB of response data. A Met-only search therefore returns at most 180 rows
- Requests are sequential for each museum, about one per second. Selective filters can use the whole candidate budget and still find no eligible works
- Use 256 MB memory. Other memory settings are rejected before museum requests
- Internal source work is bounded to 245 seconds or an earlier platform deadline. Raising the platform timeout does not expand the search
completemeans this query was exhausted within the bounds.not_foundmeans it was exhausted with no eligible recordspartialwithMAX_RESULTS,SCAN_LIMITorTIME_LIMITmeans more matching candidates may remain. These bounded runs succeedpartialwithCHARGE_LIMITmeans the buyer budget stopped delivery; the run succeeds- Source errors, a deadline hit while retrying a failing source, invalid input or cancellation make the run fail. Any rows saved before the stop remain available; the summary is
partialif there are rows, otherwiseerror
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"museum": "met",
"provider": "The Metropolitan Museum of Art",
"objectId": 436524,
"title": "Sunflowers",
"artist": "Vincent van Gogh",
"date": "1887",
"dateStart": 1887,
"dateEnd": 1887,
"medium": "Oil on canvas",
"dimensions": "17 x 24 in. (43.2 x 61 cm)",
"department": "European Paintings",
"publicDomain": true,
"licence": "CC0",
"metadataLicence": "CC0",
"primaryImageUrl": "https://images.metmuseum.org/CRDImages/ep/original/DP-41223-001.jpg",
"iiifUrl": null,
"creditLine": "Rogers Fund, 1949",
"objectUrl": "https://www.metmuseum.org/art/collection/search/436524",
"sourceUrl": "https://collectionapi.metmuseum.org/public/collection/v1/objects/436524",
"fetchedAt": "2026-10-14T00:47:17.631Z",
"sourceUpdatedAt": "2026-02-04T04:58:06.107Z"
}Data fields (21)
| Field | Type | Meaning |
|---|---|---|
museum | string | Museum code: met or aic. Use with objectId as a unique key. |
provider | string | Full name of the museum that supplied this record. |
objectId | integer | Positive integer artwork ID from the museum. IDs can overlap between museums. |
title | string | Artwork title from the museum; null when missing. |
artist | string | Artist display text from the museum; may include nationality and dates. Null when missing. |
date | string | Original creation date label, such as c. 1950. Null when missing. |
dateStart | integer | Start of creation period in integer years; negative means BCE. Null when absent. |
dateEnd | integer | End of creation period in integer years; null when absent. |
medium | string | Original material or technique text; null when missing. |
dimensions | string | Original dimensions text, including source units; null when missing. |
department | string | Museum department name; null when missing. |
publicDomain | boolean | Museum public-domain flag. Null means the source did not supply a boolean. |
licence | string | Image reuse classification: CC0, restricted_or_other, or unknown. |
metadataLicence | string | Licence for returned metadata: CC0. Chicago description text is excluded. |
primaryImageUrl | string | HTTPS open-image link only when publicDomain is true and an image exists; otherwise null. |
iiifUrl | string | Chicago IIIF presentation manifest URL for confirmed open images; null for Met or restricted/missing images. |
creditLine | string | Museum credit text to keep with the artwork; null when absent. |
objectUrl | string | HTTPS museum page for this artwork. |
sourceUrl | string | HTTPS first-party API record for this artwork. |
fetchedAt | string | ISO timestamp when this Actor read the record. |
sourceUpdatedAt | string | Record update time in the museum source system (Met metadataDate, Chicago source_updated_at); null when missing. |
Input settings (8)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Search words required | query | string | "sunflowers" |
| Museums | museums | array | ["met", "aic"] |
| Public domain only | publicDomainOnly | boolean | true |
| Department contains | department | string | |
| Artist contains | artist | string | |
| Creation year from | dateFrom | integer | |
| Creation year to | dateTo | integer | |
| Maximum artwork rows | maxResults | integer | 20 |

