Access high resolution

When the user asks about artworks, objects, or artists in the Met Museum's collection — titles, artists, dates, images, departments — reach for the Met Museum Collection API. Unauthenticated keyword search with follow-up object details.

access-high-resolution · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/access-high-resolution. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/access-high-resolution/SKILL.md.

When to use this skill

When the user asks about artworks, objects, or artists in the Metropolitan Museum of Art's collection — searching by keyword, retrieving object details, checking whether images are available, or asking cross-cutting questions like "French paintings from the 1880s with open-access images." The Met API returns titles, artist bios, media, dimensions, department classifications, and high-resolution image URLs for public-domain works. For auction prices, exhibition history, or provenance, look elsewhere.

Your best first call

curl "https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&isHighlight=true&hasImages=true"

No auth. No key. The /search endpoint requires the q parameter — there is no unfiltered browse mode. Stack filters to narrow: isHighlight for curator's picks, hasImages to ensure photos exist, departmentId for a wing, dateBegin/dateEnd for a year range. Search returns only object IDs; fetch the full record with /objects/{objectID}.

The search response:

{
  "total": 3,
  "objectIDs": [206989, 437261, 626692]
}

total gives the match count. objectIDs are the IDs you pass to /objects/{objectID}.

The object response (/objects/436532) is where the substance lives. Key fields:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can search the Met Museum's collection and retrieve artwork details — titles, artists, dates, images, departments — via unauthenticated GETs, but every search needs a keyword and a follow-up call per result for the full record.

APIs this skill uses

Met Museum Collection API · primary · verified

history

The Metropolitan Museum of Art Collection API provides access to information about artworks in The Met's collection. This API offers endpoints to search, filter, and retrieve detailed object data including images, artist information, and me…

Generated from

Met Museum Collection API tutorial Getting Started with the Met Museum Collection API

SKILL.md source (frontmatter + body)
---
name: access-high-resolution
description: When the user asks about artworks, objects, or artists in the Met Museum's collection — titles, artists, dates, images, departments — reach for the Met Museum Collection API. Unauthenticated keyword search with follow-up object details.
---

## When to use this skill

When the user asks about artworks, objects, or artists in the Metropolitan Museum of Art's collection — searching by keyword, retrieving object details, checking whether images are available, or asking cross-cutting questions like "French paintings from the 1880s with open-access images." The Met API returns titles, artist bios, media, dimensions, department classifications, and high-resolution image URLs for public-domain works. For auction prices, exhibition history, or provenance, look elsewhere.

## Your best first call

```bash
curl "https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&isHighlight=true&hasImages=true"
```

No auth. No key. The `/search` endpoint requires the `q` parameter — there is no unfiltered browse mode. Stack filters to narrow: `isHighlight` for curator's picks, `hasImages` to ensure photos exist, `departmentId` for a wing, `dateBegin`/`dateEnd` for a year range. Search returns only object IDs; fetch the full record with `/objects/{objectID}`.

The search response:

```json
{
  "total": 3,
  "objectIDs": [206989, 437261, 626692]
}
```

`total` gives the match count. `objectIDs` are the IDs you pass to `/objects/{objectID}`.

The object response (`/objects/436532`) is where the substance lives. Key fields:

- `title` — may include recto/verso info in parentheses (one object, two painted sides)
- `artistDisplayName`, `artistNationality` — artist metadata
- `objectDate`, `objectBeginDate`, `objectEndDate` — dating
- `medium`, `dimensions` — physical description
- `primaryImage` — high-resolution image URL (empty string when `isPublicDomain` is `false`)
- `isPublicDomain`, `isHighlight` — boolean access flags
- `tags` — array of `{term, AAT_URL, Wikidata_URL}` linking each tag to Getty and Wikidata
- `objectURL` — the Met's human-readable page

## Fallbacks (when the best call isn't enough)

- **All objects in a department without a keyword** → `/objects?departmentIds=11` returns every ID in that department. Use only when the user needs exhaustive coverage and has no search term.
- **Department names and IDs** → `/departments` returns 20 curatorial departments with numeric IDs. Call once and cache — the IDs are stable but non-sequential (gaps reflect historical reorganizations).

## Pitfalls

- `/objects` without parameters returns all 500,000+ object IDs in one response. Always filter with `departmentIds` or `metadataDate`, or use `/search` with a keyword instead.
- Search returns object IDs only — never object data. Every result requires a follow-up `/objects/{objectID}` call, and there is no option to embed details in the search response.
- When `isPublicDomain` is `false`, both `primaryImage` and `primaryImageSmall` are empty strings. An object having a record does not mean it has an image URL.
- The `title` field can contain parenthetical references to a painting's reverse side. "Self-Portrait with a Straw Hat (obverse: The Potato Peeler)" is one object tracking two painted sides — not two separate objects.

## One-line summary for the user

I can search the Met Museum's collection and retrieve artwork details — titles, artists, dates, images, departments — via unauthenticated GETs, but every search needs a keyword and a follow-up call per result for the full record.

« Back to all skills