TL;DR
The Metropolitan Museum of Art Collection API provides programmatic access to over 490,000 artworks and objects from the Met's collection. Search by keyword, department, artist, culture, period, or medium. Each record includes a high-resolution image (when available), title, artist, date, medium, dimensions, credit line, and classification. It's one of the most comprehensive museum APIs available.
Quick start: https://collectionapi.metmuseum.org/public/collection/v1/objects/437133
No API key needed — just make a request!
How to Use This API
1. Search for Artworks
https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&hasImages=true
Search the full collection by keyword. Add hasImages=true to filter only objects with images.
2. Get Object Details by ID
https://collectionapi.metmuseum.org/public/collection/v1/objects/437133
Returns full details for object ID 437133 (Van Gogh's "Sunflowers"). Includes primaryImage, artistDisplayName, medium, dimensions, creditLine, classification, and more.
3. Search by Department
https://collectionapi.metmuseum.org/public/collection/v1/search?departmentId=11&q=painting&hasImages=true
Search within a specific department. Department IDs include: 1 (American Decorative Arts), 6 (Asian Art), 9 (Drawings and Prints), 10 (Egyptian Art), 11 (European Paintings), 19 (Modern Art), 21 (Photographs).
4. List All Departments
https://collectionapi.metmuseum.org/public/collection/v1/departments
Returns all museum departments with IDs and display names for filtering.
5. JavaScript — Art Search
async function searchMet(query, departmentId) {
const params = new URLSearchParams({
q: query,
hasImages: true
});
if (departmentId) params.set('departmentId', departmentId);
const resp = await fetch(
`https://collectionapi.metmuseum.org/public/collection/v1/search?${params}`
);
const searchData = await resp.json();
// Fetch details for first 5 results
const details = await Promise.all(
searchData.objectIDs?.slice(0, 5).map(async id => {
const r = await fetch(
`https://collectionapi.metmuseum.org/public/collection/v1/objects/${id}`
);
return r.json();
}) || []
);
return details.map(o => ({
title: o.title,
artist: o.artistDisplayName,
date: o.objectDate,
medium: o.medium,
image: o.primaryImage
}));
}
searchMet('water lilies', 11).then(artworks => {
artworks.forEach(a => {
console.log(`${a.title} — ${a.artist} (${a.date})`);
});
});
6. Python — Get Artwork with Image
import requests
def get_artwork(object_id):
resp = requests.get(
f'https://collectionapi.metmuseum.org/public/collection/v1/objects/{object_id}'
)
obj = resp.json()
print(f"Title: {obj['title']}")
print(f"Artist: {obj.get('artistDisplayName', 'Unknown')}")
print(f"Date: {obj.get('objectDate', 'N/A')}")
print(f"Medium: {obj.get('medium', 'N/A')}")
print(f"Dimensions: {obj.get('dimensions', 'N/A')}")
print(f"Classification: {obj.get('classification', 'N/A')}")
if obj.get('primaryImage'):
print(f"Image: {obj['primaryImage']}")
return obj
get_artwork(436535) # Starry Night
https://collectionapi.metmuseum.org/public/collection/v1/objects/436535
Frequently Asked Questions
- How many objects are in the API?
- The API covers over 490,000 objects from the Met's collection. Not all objects have images — use
hasImages=trueto filter for those that do. - What image sizes are available?
- The
primaryImagefield returns a high-resolution JPG URL. The Met also provides additional image sizes through their IIIF image server — modify the URL for different resolutions. - What search fields are supported?
- Full-text keyword search across title, artist, culture, period, medium, description. Also supports
artistOrCulture=trueandmediumfilters. - Can I use the images commercially?
- The Met's Open Access Policy makes all public domain works freely available for any use, including commercial. Check the
isPublicDomainfield — if true, the image is free to use. - Are there rate limits?
- No strict rate limits, but the API is rate-limited to prevent abuse. Reasonable usage for educational and hobby projects is fine.
- How do I find object IDs to start with?
- Use the search endpoint first, or browse the Met's online collection to find specific object IDs.
API Details
- API URL
https://collectionapi.metmuseum.org/public/collection/v1- Documentation
- metmuseum.github.io
- Category
- Art
- Authentication
- Not Required
- Geographic Coverage
- Global — Art from all cultures and periods in the Met collection
What You Can Build
- Virtual museum gallery app with high-res artwork images
- Art history research tool — search by artist, period, or medium
- Daily art widget that shows a random masterpiece
- Art style comparison tool across different cultures
- Digital collage maker using public domain artworks