BYTETOOLS

Art Institute of Chicago API

Free Art Institute of Chicago API with no key: 130,000+ artworks with IIIF images, colour data, artist info and rich metadata. Well documented. Tested example.

No API key requiredCORS enabledHTTPSFree tier

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

What is the Art Institute of Chicago API?

The Art Institute of Chicago API is a free, key-free API covering over 130,000 artworks with IIIF-compliant image delivery, artist and provenance metadata, and unusual extras such as dominant colour analysis.

This is arguably the best-engineered museum API available. It offers proper full-text search, field selection to trim responses, clean pagination, and IIIF image delivery so you can request any size or crop by URL.

The `color` field is a distinctive touch: each artwork carries its dominant colour in HSL, which makes it possible to build colour-based browsing — showing all the blue paintings, for instance — without running your own image analysis.

Quick facts

Base URL
https://api.artic.edu/api/v1
Authentication
No API key required. A descriptive User-Agent with contact details is requested.
Rate limit
No published hard limit; the museum asks for reasonable use and a contact User-Agent.
Pricing
Free. Public-domain images are CC0; other works are metadata-only.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Art Institute of Chicago 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 artworks from the collection

GET https://api.artic.edu/api/v1/artworks?limit=1

curl
curl 'https://api.artic.edu/api/v1/artworks?limit=1'
JavaScript (fetch)
const res = await fetch("https://api.artic.edu/api/v1/artworks?limit=1");
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://api.artic.edu/api/v1/artworks?limit=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "pagination": {
    "total": 132681,
    "limit": 1,
    "offset": 0,
    "total_pages": 132681,
    "current_page": 1,
    "next_url": "https://api.artic.edu/api/v1/artworks?page=2&limit=1"
  },
  "data": [
    {
      "id": 281901,
      "api_model": "artworks",
      "api_link": "https://api.artic.edu/api/v1/artworks/281901",
      "is_boosted": false,
      "title": "Boys in Boxes, Dublin",
      "alt_titles": null,
      "thumbnail": {
        "lqip": "data:image/gif;base64,R0lGODlhBwAFAPUAACcmIispJi8uKTAuKjMxLTg2MDo3MTk3Mjw6ND48OT89OUA+OUE/OUA+OkRCPEZEPklHQk1LRE5MRU9MSVBNSFBOSlJQS1NRS1VSTFhVT1hWUVpYVFtZVl9cVmBdWWZkYG1qZnh1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAAIf8LSW1hZ2VNYWdpY2sOZ2FtbWE9MC40NTQ1NDUALAAAAAAHAAUAAAYhQIMB8TAMApkJiELhADqhywKiEDwcC81noYhEMBeOhxAEADs=",
        "width": 8440,
        "height": 5738,
        "alt_text": "A work made of gelatin silver print."
      },
      "main_reference_number": "2026.69",
      "has_not_been_viewed_much": true,
      "boost_rank": null,
      "date_start": 1968,
      "date_end": 1968,
      "date_display": "1968",
      "date_qualifier_title": "",
      "date_qualifier_id": null,
      "artist_display": "Mark Cohen\nAmerican, born 1943",
      "place_of_origin": null,
      "description": null,
      "short_description": null,
      "dimensions": "21.6 × 30.5 cm (8 1/2 × 12 in.)",
      "dimensions_detail": [
        {
          "depth": null,
          "width": 30,
          "height": 21,
          "diameter": null,

Parameters

ParameterTypeRequiredDescription
limitintegerOptionalResults per page, max 100. 10
pageintegerOptionalPage number. 2
qstringOptionalFull-text search across the collection. monet
fieldsstringOptionalComma-separated fields to return, shrinking the payload. id,title,image_id

Response fields

paginationobject
Total results, current page and next page URL.
data[].titlestring
Artwork title.
data[].artist_displaystring
Artist name with dates and nationality.
data[].image_idstring
IIIF image identifier — build the URL from config.iiif_url.
data[].is_public_domainboolean
Whether the image may be reused freely.
data[].colorobject
Dominant colour in HSL plus population count.
config.iiif_urlstring
Base URL for constructing IIIF image requests.

What you can build with the Art Institute of Chicago API

  • Build an art browser with colour-based filtering
  • Request precisely sized artwork images via IIIF without post-processing
  • Create art history teaching resources
  • Source CC0 artwork for design and editorial use

Common errors and how to fix them

No image URL in the response

Images are served via IIIF and must be constructed.

Fix: Combine config.iiif_url with image_id: {iiif_url}/{image_id}/full/843,/0/default.jpg

Very large responses

Full artwork records contain dozens of fields.

Fix: Use the `fields` parameter to request only what you render.

Blocked requests

Missing or generic User-Agent.

Fix: Send a User-Agent naming your project with contact details, as the museum requests.

Art Institute of Chicago API — frequently asked questions

Is the Art Institute of Chicago API free?

Yes, free with no API key. The museum asks that you send a descriptive User-Agent with contact details.

How do I get an image URL?

Images use IIIF. Combine the config.iiif_url from the response with the artwork's image_id, for example {iiif_url}/{image_id}/full/843,/0/default.jpg — you can request any width by changing that segment.

What is the color field?

The dominant colour of the artwork in HSL along with its population count, computed by the museum. It enables colour-based browsing without running your own image analysis.

Can I use the images commercially?

Where is_public_domain is true, the images are CC0 and freely reusable. Works still in copyright are metadata-only.

Tools that pair with this API

Art Institute of Chicago 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.