# Yale LUX Cultural Objects Scraper (`parseforge/yale-lux-collections-scraper`) Actor

Searches the Yale LUX cross-collection catalog by keyword and optional object type, and returns each matching cultural object record as a flat row with its title, maker, date, medium, and linked images.

- **URL**: https://apify.com/parseforge/yale-lux-collections-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.07 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Yale LUX Cultural Objects Scraper

**Scrape Yale LUX cultural object records by search term, object type, and up to a million items per run.** Every record returns its title, maker, date, medium, and linked images. No API key or authentication required. Export to CSV, JSON, Excel, or XML.

Yale University's LUX cross-collection catalog unites millions of objects from its museums, libraries, and archives, but browsing the web interface is slow and manual. This Actor searches the public catalog directly by keyword and optional object type, then returns every matching record in a flat, structured row. It is built for researchers, curators, and data analysts who need bulk exports of cultural heritage metadata without writing code.

| Who uses it | What they scrape Yale LUX for |
|---|---|
| Art historians | Gathering metadata on all works by a specific artist or from a particular period for a research corpus. |
| Digital humanities scholars | Building a dataset of cultural objects to analyze trends in materials, makers, or classifications across centuries. |
| Museum curators | Comparing Yale's holdings with their own collection for loan or exhibition planning. |
| Antiquarian book dealers | Checking provenance and cataloging details of rare manuscripts and early printed books. |
| Genealogists | Finding portraits, documents, or personal artifacts linked to a family name or historical figure. |

### What it does

This Actor searches Yale LUX cultural object records by free-text query and optional classification filter, and returns each matching record as a flat row with its descriptive metadata.

- 🔍 **Free-text search:** any keyword matches across titles, makers, classifications, and descriptions, from 'Van Gogh' to 'cuneiform tablet'.
- 🏷️ **Object type filter:** narrow results to a specific classification like 'paintings', 'photographs', 'manuscripts', or 'sculpture'.
- 📦 **Bulk export:** collect up to one million records per run and download as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Yale LUX data

**📚 Build a research corpus.**

A digital humanities scholar searches for 'manuscript' with object type 'manuscripts' and exports 5,000 records to analyze production dates and places.

**🖼️ Audit an artist's catalog.**

An art historian queries 'Rembrandt' across all object types and downloads every attributed work with its medium, date, and accession number for a catalogue raisonné project.

**🏛️ Plan an exhibition.**

A curator searches for 'Japanese print' and filters to 'prints' to review Yale's holdings and identify potential loan objects for an upcoming show.

**📖 Trace family history.**

A genealogist searches a surname and collects portraits, letters, and personal artifacts that mention the family, then cross-references dates and locations.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key needed** | Reads the public LUX catalog directly, no registration or authentication required. |
| **Cross-collection search** | Searches across the Yale University Art Gallery, Yale Center for British Art, Yale Peabody Museum, and Yale Library special collections in one query. |
| **Structured output** | Every record arrives as a flat row with consistent fields, ready for analysis in any spreadsheet or database. |
| **Scalable collection** | Set a maximum from one record to one million, and the Actor stops cleanly when the limit is reached. |

### How it compares

No other Store actor targets Yale LUX the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Yale LUX Cultural Objects Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Yale LUX changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a free-text search query and an optional object type filter. Both filters are applied as the catalog is read, so only matching records reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "query": "painting",
  "maxItems": 10
}
```

A larger pull:

```json
{
  "query": "painting",
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.009 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.90 |
| 1,000 results | $9.00 |
| 10,000 results | $90.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Yale LUX Cultural Objects Scraper](https://apify.com/parseforge/yale-lux-collections-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Yale LUX through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/yale-lux-collections-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your search query is spelled correctly and is not too narrow. Try a broader term first, then add the object type filter. Some very specific queries may match no records in the catalog.

**The Actor stopped before reaching my maxItems limit.**

The Actor stops when the catalog returns no more matching records. Your query and filter combination may have fewer total results than the limit you set. Try broadening your search term or removing the object type filter.

**Some records are missing fields like maker or date.**

This is expected. Not every cultural object record in LUX has complete metadata. Older or less-documented objects may lack certain fields. The Actor returns whatever data is publicly available.

**The run is taking a long time.**

Large maxItems values mean more records to collect. The Actor respects the source website's response time. Reduce your maxItems or narrow your query to speed up the run.

### FAQ

| Question | Answer |
|---|---|
| What is Yale LUX? | Yale LUX is a cross-collection search platform that unites digitized records from Yale's museums, libraries, and archives, including the University Art Gallery, Center for British Art, Peabody Museum, and Beinecke Library. |
| Do I need a Yale login or API key to scrape LUX? | No. This Actor reads the public LUX catalog interface directly. No Yale affiliation, login, or API key is required. |
| What data fields does each record include? | Each record returns the object title, maker or creator, production date, medium or materials, classification, accession number, and any linked image URLs, among other descriptive metadata fields. |
| Can I search for a specific artist or maker? | Yes. The search query matches against maker and creator fields, so a query like 'Van Gogh' or 'Hokusai' returns objects attributed to that person. |
| How do I filter by object type? | Use the optional object type filter with a classification term such as 'paintings', 'photographs', 'sculpture', or 'manuscripts'. Leave it empty to search all types. |
| How many records can I collect in one run? | You can set the maximum from 1 up to 1,000,000 records. The Actor stops when it reaches your limit or when no more results match. |
| What export formats are supported? | You can export your dataset as CSV, JSON, Excel, or XML from the Apify platform after the run completes. |
| Does this Actor download the actual images? | No. It collects the image URLs linked to each record. You can use a separate Apify Actor or script to download the images from those URLs if needed. |
| Can I search in languages other than English? | The LUX catalog contains records primarily in English, but you can search using non-English terms that appear in titles or descriptions, such as artist names or foreign-language object titles. |
| Is this Actor affiliated with Yale University? | No. This is an independent tool built on the Apify platform that reads publicly accessible data from the Yale LUX website. It is not endorsed by or affiliated with Yale University. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Yale University. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `query` (type: `string`):

Free-text search across Yale LUX cultural objects, for example 'painting', 'dog', 'manuscript', or 'Van Gogh'. Matches titles, makers, classifications, and descriptions.

## `objectType` (type: `string`):

Optional classification term to narrow results, for example 'paintings', 'photographs', 'manuscripts', or 'sculpture'. Leave empty to search every object type.

## `maxItems` (type: `integer`):

How many collection records to collect per run.

## Actor input object example

```json
{
  "query": "painting",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "query": "painting",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/yale-lux-collections-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 = {
    "query": "painting",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/yale-lux-collections-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "painting",
  "maxItems": 10
}' |
apify call parseforge/yale-lux-collections-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/yale-lux-collections-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DFdtuP1rFN6Tr5G01/builds/DFNlbea01kvngaqAJ/openapi.json
