---
name: pull-met-art-scans
description: Search, verify, and download open-access artwork scans from The Metropolitan Museum of Art Collection API. Use for Met images, object IDs, public-domain JPEGs, provenance, or PPI. Never scrape Met HTML.
---

# Pull Met Art Scans

Use the Collection API, not presentation-page scraping. Run the script; do not reinvent the query order.

```
node scripts/pull-met.mjs --q "Rembrandt van Rijn" --artist "Rembrandt"
node scripts/pull-met.mjs --object 437393 --download
```

Downloads land in `tmp-scans/`. Then `catalog-work`. Traps: `known-source-failures`.

API root: `https://collectionapi.metmuseum.org/public/collection/v1`

Open Access policy: `https://www.metmuseum.org/hubs/open-access`

User-Agent: `MorganGoinsArchive/1.0 (+https://morgangoins.org/.well-known/image-sources.json)`

## Search

Keep `q` last. The endpoint has shown order-sensitive behavior.

```
/search?hasImages=true&q=Rembrandt+van+Rijn
```

Then fetch `/objects/{objectID}` and keep only records where:

- `artistDisplayName` matches the intended artist
- `isPublicDomain` is `true`
- `primaryImage` is non-empty

Do **not** start with `artistOrCulture=true&medium=Paintings`. That filter drops etchings and also misses some oils (including several Bierstadt paintings). Use the broad `hasImages` search, then filter in code.

If the API returns 403, back off several seconds. Do not hammer `/search` or `/objects`.

## Download

1. Download `primaryImage`, never `primaryImageSmall`.
2. Also inspect `additionalImages`. Compare pixel dimensions before replacing the primary; extras are often details, versos, or smaller historical photos.
3. Verify the response is a JPEG and record native pixel size.
4. Calculate effective PPI from pixels ÷ physical inches. Ignore embedded JPEG DPI.
5. Keep `objectID`, `objectURL`, title, artist, date, dimensions, repository, and the original image URL.

If an object lacks an eligible original, skip it. Do not scrape a thumbnail.

## Same-work rule

A higher-PPI file is useful only when it is the **same artwork** (same `objectID` / accession / canvas). Do not replace a catalogued painting with a different Met object, an etching, or a drawing to inflate PPI.

After Met, check Wikimedia Commons for a larger original of that same object (`pull-wikimedia-commons`). Bathsheba (object 437393) is the known case: Commons `5957×4467` beats Met `3810×2845`.

## Works in this archive

<!-- generated:archive-works -->
15 works. Written from `lib/collection.ts` by `node scripts/write-image-sources.mjs`. Do not hand-edit.

### bierstadt
- Study of a Tree — 1773 × 2034 px — 219 PPI — `ap1976.337.jpg`
- Mountain Scene — 3811 × 2628 px — 178 PPI — `DT9506.jpg`
- Nevada Falls, Yosemite — 2854 × 3722 px — 95 PPI — `DT9507.jpg`
- Merced River, Yosemite Valley — 3811 × 2742 px — 76 PPI — `DT2961.jpg`
- Sunrise on the Matterhorn — 2721 × 3722 px — 63 PPI — `DT218107.jpg`
- The Rocky Mountains, Lander's Peak — 3811 × 2284 px — 31 PPI — `DT82.jpg`
### rembrandt
- Lieven Willemsz van Coppenol — 2951 × 3722 px — 259 PPI — `DP146489.jpg`
- Man in a Red Cloak — 3118 × 3709 px — 245 PPI — `DP145928.jpg`
- Head of Christ — 2953 × 3722 px — 199 PPI — `DP145916.jpg`
- Christ and the Woman of Samaria — 2912 × 3722 px — 148 PPI — `DP145935.jpg`
- Portrait of a Woman — 2760 × 3721 px — 139 PPI — `DP145913.jpg`
- Man with a Beard — 3294 × 3757 px — 130 PPI — `DP146456.jpg`
- Herman Doomer — 2745 × 3722 px — 126 PPI — `DP145921.jpg`
- Portrait of a Man — 2790 × 3721 px — 125 PPI — `DP145938.jpg`
- Self-Portrait — 3298 × 4000 px — 124 PPI — `DP-16323-001.jpg`
<!-- /generated:archive-works -->
