The Art Institute of Chicago publishes its full collection of 130,000+ objects as a versioned, keyless REST API (api.artic.edu/api/v1) built on the same data that powers its own website and mobile app, with IIIF-based endpoints for zoomable, high-resolution images. A live GET against a real artwork record returned genuine JSON carrying Access-Control-Allow-Origin: *, reconfirming both auth None and cors yes with no key required.
The Art Institute of Chicago publishes its full collection — 130,000+ objects — as a versioned, keyless REST API. A live GET this run against /artworks/27992?fields=id,title,artist_display,date_display,image_id returned genuine JSON for Seurat's "A Sunday on La Grande Jatte", plus a config.iiif_url block the caller has to combine with the record's image_id to assemble the actual image URL — the API never returns a ready-made image link directly.
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.
GreatAPIs Score
Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months
Embed this badge
<a href="https://greatapis.com/api/art-institute-of-chicago/"><img src="https://greatapis.com/badge/art-institute-of-chicago.svg" alt="Scored 94 on greatapis.com"></a>
Auth quickstart
No API key, signup, or credit card required. A live GET this run against a real artwork record returned genuine JSON while carrying access-control-allow-origin: *, confirming both keyless auth and open CORS with nothing to configure first.
Stored keyNo key stored
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Servers
https://api.artic.edu/api/v1
agent-roles2
GET/agent-roles
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/agent-roles/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
agent-types2
GET/agent-types
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/agent-types/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
agents3
GET/agents
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/agents/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/agents/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
articles3
GET/articles
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/articles/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/articles/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
artists2
GET/artists
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artists/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
artwork-date-qualifiers2
GET/artwork-date-qualifiers
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artwork-date-qualifiers/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
artwork-place-qualifiers2
GET/artwork-place-qualifiers
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artwork-place-qualifiers/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
artwork-types2
GET/artwork-types
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artwork-types/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
artworks3
GET/artworks
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artworks/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/artworks/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
category-terms3
GET/category-terms
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/category-terms/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/category-terms/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
digital-publication-articles3
GET/digital-publication-articles
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/digital-publication-articles/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/digital-publication-articles/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
digital-publications3
GET/digital-publications
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/digital-publications/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/digital-publications/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
educator-resources3
GET/educator-resources
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/educator-resources/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/educator-resources/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
event-occurrences3
GET/event-occurrences
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/event-occurrences/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/event-occurrences/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
event-programs3
GET/event-programs
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/event-programs/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/event-programs/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
events3
GET/events
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/events/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/events/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
exhibitions3
GET/exhibitions
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/exhibitions/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/exhibitions/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
galleries3
GET/galleries
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/galleries/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/galleries/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
generic-pages3
GET/generic-pages
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/generic-pages/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/generic-pages/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
highlights3
GET/highlights
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/highlights/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/highlights/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
hours3
GET/hours
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/hours/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/hours/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
images3
GET/images
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/images/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/images/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
landing-pages3
GET/landing-pages
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/landing-pages/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/landing-pages/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
mobile-sounds3
GET/mobile-sounds
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/mobile-sounds/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/mobile-sounds/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
places3
GET/places
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/places/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/places/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
press-releases3
GET/press-releases
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/press-releases/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/press-releases/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
printed-publications3
GET/printed-publications
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/printed-publications/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/printed-publications/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
products3
GET/products
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/products/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/products/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
publications3
GET/publications
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/publications/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/publications/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
search1
GET/searchSearch all data in the aggregator
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
sections3
GET/sections
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sections/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sections/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
sites3
GET/sites
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sites/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sites/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
sounds3
GET/sounds
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sounds/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/sounds/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
static-pages3
GET/static-pages
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/static-pages/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/static-pages/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
texts3
GET/texts
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/texts/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/texts/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
tours3
GET/tours
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/tours/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/tours/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
videos3
GET/videos
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/videos/search
Parameters
Name
In
Required
Type
q
query
no
string
query
query
no
string
sort
query
no
string
from
query
no
string
size
query
no
string
facets
query
no
string
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
GET/videos/{id}
Parameters
Name
In
Required
Type
id
path
yes
—
Responses
Status
Description
Schema
200
Successful operation
—
default
error
—
Try it
Developer reference
Base URLhttps://api.artic.edu/api/v1
Rate limit
60 requests/minute for anonymous/unauthenticated users, per api.artic.edu/docs (own API documentation)
Key endpoints
GET/artworks
GET/artworks/{id}
GET/artworks/search
Gotchas & limits
?limit=101 on the collection listing doesn't clamp or 400 — a live GET this run against /artworks?limit=101 returned HTTP 403 with {"status":403,"error":"Invalid limit","detail":"You have requested too many resources per page. Please set a smaller limit."}. Keep limit at 100 or below.
A nonexistent artwork id 404s with a structured body, not an empty one — a live GET this run against /artworks/999999999 returned HTTP 404 {"status":404,"error":"Not found","detail":"The item you requested cannot be found."}.
/artworks/search results are lean hits, not full records — a live GET this run against /artworks/search?q=seurat&limit=1 returned only {"_score":...,"id":27992,"api_model":"artworks","api_link":"...","title":"...","thumbnail":{...},"timestamp":"..."} per result, with none of the sparse-fieldset fields (artist_display, date_display, image_id) present. A full record needs either ?fields= on the search itself or a follow-up /artworks/{id} fetch.
The image is never inline — image_id is a bare UUID with no extension or host; you must combine it with config.iiif_url yourself using IIIF Image API path syntax (see the example note) rather than expecting a direct URL field.
You cannot paginate past 10,000 results in the search endpoints, and the ceiling is a hard error rather than an empty page — a live GET this run against /artworks/search?q=painting&limit=10&page=1001 (result 10,010) returned HTTP 403 {"status":403,"error":"Invalid number of results","detail":"You have requested too many results. Please refine your parameters."}, while the same query at page=100 returned 200. Artic's docs direct anyone needing a larger result set to its nightly data dumps instead.
Availability
Uptime100%
Median latency666 ms
Last checkUp · 200 · Sep 2026
4 checks since Aug 2026. A person runs this check by hand, not an automated monitor.