# Met Museum Scraper - Art Collection Data (`lulzasaur/metmuseum-scraper`) Actor

Scrape the Metropolitan Museum of Art collection. Search 470,000+ artworks with images, artist info, dates, and classifications. Free API, no key needed.

- **URL**: https://apify.com/lulzasaur/metmuseum-scraper.md
- **Developed by:** [lulz bot](https://apify.com/lulzasaur) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Met Museum Scraper - Art Collection Data

Scrape the Metropolitan Museum of Art collection. Search 470,000+ artworks with images, artist info, dates, and classifications. Free API, no key needed.

### Features

- **Full-text Search**: Search the entire Met collection by keyword
- **Department Filter**: Filter by 19 museum departments (Egyptian Art, European Paintings, etc.)
- **Image Filtering**: Only return objects with available images
- **Public Domain Filter**: Find freely reusable artwork images
- **Rich Metadata**: Artist info, dates, medium, dimensions, culture, period, geography
- **Concurrent Fetching**: Fetches 5 objects at a time for speed
- **No API Key**: Uses the free Met Museum Open Access API

### Output Fields

| Field | Description |
|-------|-------------|
| `objectID` | Met Museum object ID |
| `title` | Artwork title |
| `artistDisplayName` | Artist name |
| `artistDisplayBio` | Artist bio (nationality, dates) |
| `artistNationality` | Artist nationality |
| `objectDate` | Date or date range string |
| `medium` | Materials and techniques |
| `dimensions` | Physical dimensions |
| `department` | Museum department |
| `culture` | Cultural origin |
| `period` | Historical period |
| `dynasty` | Dynasty (if applicable) |
| `classification` | Object classification |
| `primaryImage` | Main image URL (high-res) |
| `primaryImageSmall` | Thumbnail image URL |
| `additionalImages` | Array of additional image URLs |
| `isPublicDomain` | Whether image is free to use |
| `accessionNumber` | Museum accession number |
| `creditLine` | Credit/donor info |
| `country` | Country of origin |
| `tags` | Array of subject tags |
| `objectURL` | Link to Met Museum website |
| `scrapedAt` | ISO timestamp |

### Input Options

- **Search Query**: Text to search for (e.g. "sunflowers", "van gogh", "Egyptian sculpture")
- **Department**: Filter by specific museum department
- **Has Images Only**: Only return objects with images (default: true)
- **Public Domain Only**: Only return freely reusable images
- **Max Results**: Limit the number of artworks returned

### Departments

American Decorative Arts, Ancient Near Eastern Art, Arms and Armor, Arts of Africa/Oceania/Americas, Asian Art, The Cloisters, The Costume Institute, Drawings and Prints, Egyptian Art, European Paintings, European Sculpture, Greek and Roman Art, Islamic Art, The Robert Lehman Collection, The Libraries, Medieval Art, Musical Instruments, Photographs, Modern and Contemporary Art.

### Use Cases

- **Art research**: Study specific artists, periods, or cultures
- **Education**: Build art history datasets for teaching
- **Creative projects**: Find public domain artwork images for designs
- **Museum analytics**: Analyze the Met's collection by department, period, or culture
- **Machine learning**: Train image classifiers on labeled artwork data
- **Content creation**: Source high-quality art images for articles and websites

### Example Output

```json
{
  "objectID": 436524,
  "title": "Sunflowers",
  "artistDisplayName": "Vincent van Gogh",
  "artistDisplayBio": "Dutch, Zundert 1853-1890 Auvers-sur-Oise",
  "artistNationality": "Dutch",
  "objectDate": "1887",
  "medium": "Oil on canvas",
  "dimensions": "17 x 24 in. (43.2 x 61 cm)",
  "department": "European Paintings",
  "culture": null,
  "period": null,
  "classification": "Paintings",
  "primaryImage": "https://images.metmuseum.org/CRDImages/ep/original/DP229743.jpg",
  "isPublicDomain": true,
  "tags": ["Flowers", "Sunflowers"],
  "objectURL": "https://www.metmuseum.org/art/collection/search/436524",
  "scrapedAt": "2026-04-26T12:00:00.000Z"
}
````

### Data Source

- [The Metropolitan Museum of Art Collection API](https://metmuseum.github.io/) — Open Access to 470,000+ artworks

***

### Run on Apify

This scraper runs on the [Apify platform](https://apify.com/?fpr=lulzasaur) — a full-stack web scraping and automation cloud. Sign up for a free account to get started with 30-day trial of all features.

[Try Apify free ->](https://apify.com/?fpr=lulzasaur)

# Actor input Schema

## `searchQuery` (type: `string`):

Search term for artworks (e.g. 'sunflowers', 'van gogh', 'Egyptian sculpture').

## `department` (type: `string`):

Filter by museum department. Leave empty for all departments.

## `hasImages` (type: `boolean`):

Only return objects that have images available.

## `isPublicDomain` (type: `boolean`):

Only return objects in the public domain (free to use images).

## `limit` (type: `integer`):

Maximum number of artworks to return. 0 = unlimited (may be slow for broad queries).

## `proxyConfiguration` (type: `object`):

Optional proxy to use.

## Actor input object example

```json
{
  "searchQuery": "sunflowers",
  "department": "",
  "hasImages": true,
  "isPublicDomain": false,
  "limit": 50
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("lulzasaur/metmuseum-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("lulzasaur/metmuseum-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call lulzasaur/metmuseum-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lulzasaur/metmuseum-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Met Museum Scraper - Art Collection Data",
        "description": "Scrape the Metropolitan Museum of Art collection. Search 470,000+ artworks with images, artist info, dates, and classifications. Free API, no key needed.",
        "version": "1.0",
        "x-build-id": "m0eNaJaL2DZhxJu9t"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lulzasaur~metmuseum-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lulzasaur-metmuseum-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lulzasaur~metmuseum-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lulzasaur-metmuseum-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lulzasaur~metmuseum-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lulzasaur-metmuseum-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search term for artworks (e.g. 'sunflowers', 'van gogh', 'Egyptian sculpture').",
                        "default": "sunflowers"
                    },
                    "department": {
                        "title": "Department",
                        "enum": [
                            "",
                            "1",
                            "3",
                            "4",
                            "5",
                            "6",
                            "7",
                            "8",
                            "9",
                            "10",
                            "11",
                            "12",
                            "13",
                            "14",
                            "15",
                            "16",
                            "17",
                            "18",
                            "19",
                            "21"
                        ],
                        "type": "string",
                        "description": "Filter by museum department. Leave empty for all departments.",
                        "default": ""
                    },
                    "hasImages": {
                        "title": "Has Images Only",
                        "type": "boolean",
                        "description": "Only return objects that have images available.",
                        "default": true
                    },
                    "isPublicDomain": {
                        "title": "Public Domain Only",
                        "type": "boolean",
                        "description": "Only return objects in the public domain (free to use images).",
                        "default": false
                    },
                    "limit": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of artworks to return. 0 = unlimited (may be slow for broad queries).",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy to use."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
