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:
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.
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.