BYTETOOLS

Metropolitan Museum of Art API

Free Metropolitan Museum of Art API with no key: 470,000+ artworks with high-resolution public-domain images, artist data and full object metadata. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the Metropolitan Museum of Art API?

The Metropolitan Museum of Art Collection API is a free, key-free API providing access to more than 470,000 artworks, including high-resolution images for public-domain pieces, artist information and complete object metadata.

The Met released its entire collection dataset under open access, and the API reflects that: no key, no quota, and genuinely high-resolution images for anything in the public domain — usable commercially without a licence fee.

The one field to check before using an image is `isPublicDomain`. Objects still in copyright return metadata but no usable image URL, so filter on that boolean rather than assuming every record has a picture you can display.

Quick facts

Base URL
https://collectionapi.metmuseum.org/public/collection/v1
Authentication
No API key required.
Rate limit
80 requests per second, which is generous. The Met asks that you cache rather than re-fetch.
Pricing
Free. Public-domain images are released under CC0.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Metropolitan Museum of Art API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. Fetch an artwork by object ID

GET https://collectionapi.metmuseum.org/public/collection/v1/objects/45734

curl
curl 'https://collectionapi.metmuseum.org/public/collection/v1/objects/45734'
JavaScript (fetch)
const res = await fetch("https://collectionapi.metmuseum.org/public/collection/v1/objects/45734");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://collectionapi.metmuseum.org/public/collection/v1/objects/45734", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "objectID": 45734,
  "isHighlight": false,
  "accessionNumber": "36.100.45",
  "accessionYear": "1936",
  "isPublicDomain": true,
  "primaryImage": "https://images.metmuseum.org/CRDImages/as/original/DP251139.jpg",
  "primaryImageSmall": "https://images.metmuseum.org/CRDImages/as/web-large/DP251139.jpg",
  "additionalImages": [
    "https://images.metmuseum.org/CRDImages/as/original/DP251138.jpg",
    "https://images.metmuseum.org/CRDImages/as/original/DP251120.jpg"
  ],
  "constituents": [
    {
      "constituentID": 11986,
      "role": "Artist",
      "name": "Kiyohara Yukinobu",
      "constituentULAN_URL": "http://vocab.getty.edu/page/ulan/500034433",
      "constituentWikidata_URL": "https://www.wikidata.org/wiki/Q11560527",
      "gender": "Female"
    }
  ],
  "department": "Asian Art",
  "objectName": "Hanging scroll",
  "title": "Quail and Millet",
  "culture": "Japan",
  "period": "Edo period (1615–1868)",
  "dynasty": "",
  "reign": "",
  "portfolio": "",
  "artistRole": "Artist",
  "artistPrefix": "",
  "artistDisplayName": "Kiyohara Yukinobu",
  "artistDisplayBio": "Japanese, 1643–1682",
  "artistSuffix": "",
  "artistAlphaSort": "Kiyohara Yukinobu",
  "artistNationality": "Japanese",
  "artistBeginDate": "1643",
  "artistEndDate": "1682",
  "artistGender": "Female",
  "artistWikidata_URL": "https://www.wikidata.org/wiki/Q11560527",
  "artistULAN_URL": "http://vocab.getty.edu/page/ulan/500034433",
  "objectDate": "late 17th century",
  "objectBeginDate": 1667,
  "objectEndDate": 1682,
  "medium": "Hanging scroll; ink and color on silk",
  "dimensions": "4

Parameters

ParameterTypeRequiredDescription
objects/<id>pathOptionalFetch one artwork by its object ID. 45734
search?q=stringOptionalSearch the collection, returning matching object IDs. sunflowers
hasImagesbooleanOptionalRestrict search to objects with images. true
departmentIdintegerOptionalRestrict to a curatorial department. 11

Response fields

objectIDinteger
Unique object identifier.
titlestring
Artwork title.
artistDisplayNamestring
Artist name, empty for anonymous works.
isPublicDomainboolean
Whether the image is CC0 and freely usable — always check this.
primaryImagestring
High-resolution image URL, empty when not public domain.
primaryImageSmallstring
Web-sized version of the same image.
objectDate / medium / dimensionsstring
Creation date, materials and physical size.

What you can build with the Metropolitan Museum of Art API

  • Build an art gallery or virtual museum experience
  • Source high-resolution public-domain images for design work
  • Create art education and quiz applications
  • Add a daily artwork feature to a site or newsletter

Common errors and how to fix them

Empty primaryImage

The object is still in copyright.

Fix: Filter on isPublicDomain before rendering; not every record has a usable image.

Search returns IDs only

The search endpoint returns objectIDs, not full records.

Fix: Fetch each object individually — expect an N+1 pattern and cache results.

404

Unknown object ID.

Fix: IDs are not contiguous; many numbers in the range do not exist.

Metropolitan Museum of Art API — frequently asked questions

Is the Met Museum API free?

Yes, completely free with no API key. Public-domain images are released under CC0, so they can be used commercially without a licence fee.

Can I use the images commercially?

Only where isPublicDomain is true — those are CC0. Objects still in copyright return metadata but no usable image URL.

Why does search only return numbers?

The search endpoint returns matching object IDs. You then fetch each object individually, which means an N+1 request pattern — cache aggressively.

How many artworks are available?

Over 470,000 objects spanning 5,000 years, though only a subset have public-domain images attached.

Tools that pair with this API

Metropolitan Museum of Art is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.