Metropolitan Museum of Art API

⭐ Beginner's Pick Art & Design / No Auth Required Beginner HTTPS
Free to Use Varies (check documentation)

Overview

The Metropolitan Museum of Art API provides open access to over 470,000 art objects from the Met collection including paintings, sculptures, and artifacts, along with high-resolution image URLs and rich metadata. It is entirely free with no API key, making it one of the best public APIs for building arts education tools or practicing API integration. You can search by medium, culture, period, or artist.

💡

Beginner Tip

Start with https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&hasImages=true to get object IDs, then fetch details from /objects/{objectID}. No API key or account needed.

Available Data

Use case: Integrate met museum of art data into web and mobile applications
Metropolitan Museum of Art data via REST API
JSON-formatted response data
Freely accessible without authentication

Example Response

JSON Response
{
  "route": "Line 1",
  "origin": "Station A",
  "destination": "Station B",
  "departure": "08:30",
  "arrival": "09:15",
  "status": "On Time",
  "delays_min": 0
}

Field Reference

objectID Unique identifier for the artwork in the Met collection
title Title of the artwork
artistDisplayName Name of the artist or maker as displayed in the museum
primaryImage URL to the high-resolution primary image; empty string if no public domain image is available
objectDate Date or date range when the object was created, e.g. "ca. 1886"
isPublicDomain True if the artwork image is free to use without copyright restrictions

Implementation Example

const url = "https://metmuseum.github.io/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

CORS blocked in browser The Met API does not send CORS headers on all endpoints
Make requests from a Node.js backend or use a CORS proxy for browser-based projects
primaryImage URL is empty string Many objects have rights restrictions and cannot display images publicly
Filter results where isPublicDomain is true and primaryImage is not empty before displaying images
Large search result sets A broad search term can return tens of thousands of object IDs
Add filters like hasImages=true or departmentId to narrow results; paginate by slicing the returned ID array

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 20/20
🔒 Security 15/15
🛠 Developer XP 20/20
✓ Reliability 7/15
Response Time 37ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS NO
Category Art & Design
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →