Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Source authentic, high-res PUBLIC-DOMAIN artwork from museum open-access APIs (Met, Cleveland, SMK, Rijksmuseum, NGA, Art Institute of Chicago, Getty, Smithsonian) instead of AI-generated or generic-stock imagery. The default move whenever a visual needs an aesthetic, credible image (blog heroes, decks, social cards, essay/spec figures). Verified keyless recipes + licensing rules inside.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 142% | 0% |
> Standing rule (adopted 2026-07-24, from Eric Li's post on museum open-access): whenever a visual needs a real image with aesthetic weight, source public-domain museum artwork first - over AI-generated imagery and over generic stock. Curated, historically significant art reads as credible and sophisticated; AI-gen reads as slop. This stacks with, and reinforces, the no-ai-slop skill and your house image style. It does NOT replace the generative editorial-illustrations skill (that owns claim-driven diagrams/figures) or your house chart style - use museum art for photographic/hero/decorative/mood imagery, generative figures for data and concept diagrams.
api.artic.edu) is fine, but the image host www.artic.edu/iiif/... 403s scripted/curl fetches via a Cloudflare bot challenge. Use the JSON metadata from AIC, but download the actual image through a real/headless browser (browser-harness) or prefer a different museum for the image bytes.Fetch fresh per need. Do NOT build a reusable local pool of downloaded images to draw from. A small cached set gets reused everywhere and becomes the new "same stock photo on every post" - sameness is a form of slop, and the variety of a huge open collection is the entire point. Fetching is keyless and sub-second, so there is no cost reason to cache pixels.
references/ already are.assets/, a deck's media) once chosen - for provenance and offline builds. That is an artifact asset, never a shared library other artifacts pull from.https://collectionapi.metmuseum.org/public/collection/v1/ - no key, 80 req/s, CC0 where isPublicDomain:true.GET /search?q=<term>&hasImages=true&isPublicDomain=true -> {total, objectIDs[]}GET /objects/{id} -> read primaryImage (full-res JPEG, static, no IIIF hop) or primaryImageSmall (web-large).https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&hasImages=true&isPublicDomain=truehttps://openaccess-api.clevelandart.org/api/artworks/ - no key, CC0.GET /api/artworks/?cc0=1&has_image=1&limit=10 (add &q=monet, &skip=10).images.web.url (900px), images.print.url (3400px JPEG), images.full.url (archival TIFF). Directly downloadable from openaccess-cdn.clevelandart.org.share_license_status == "CC0" per result.https://api.smk.dk/api/v1 - no key. License: Public Domain Mark 1.0 (functionally CC0).GET /art/search?keys=*&filters=[public_domain:true]&filters=[has_image:true]image_native directly from each result (no chain).filters as a repeated query param, one [field:value] bracket each. Concatenating filters=[public_domain:true][has_image:true] returns 200 but silently ignores the second condition.https://data.rijksmuseum.nl/search/collection (Linked Art, no key).GET /search/collection?type=painting&imageAvailable=true -> walk object -> VisualItem -> DigitalObject -> access_point[0].id is a ready IIIF URL.https://raw.githubusercontent.com/NationalGalleryOfArt/opendata/main/data/published_images.csv - filter openaccess=1.https://api.nga.gov/iiif/{uuid}/full/full/0/default.jpgopenaccess=0 rows are NOT open (resolution-capped, rights-restricted). Only openaccess=1 is free.GET https://api.artic.edu/api/v1/artworks/search?query[term][is_public_domain]=true&fields=id,title,image_id - no key, CC0.https://www.artic.edu/iiif/2/{image_id}/full/843,/0/default.jpg - but Cloudflare 403s scripted fetches; download via browser or use another museum for bytes.https://data.getty.edu/museum/collection/ - no key. No keyword search; use SPARQL with ?obj crm:P138i_has_representation ?img which returns a ready IIIF image URL in the same query.api.data.gov key; DEMO_KEY works at 30 req/hr): GET https://api.si.edu/openaccess/api/v1.0/search?q=<term> AND online_media_type:Images&api_key=KEY; CC0; check media[].usage.access=="CC0" per image. Extremely broad (SAAM, NPG portraits, Freer/Sackler Asian, Cooper Hewitt design).https://commons.wikimedia.org/w/api.php?action=query&generator=search&gsrsearch=<term>&gsrnamespace=6&prop=imageinfo&iiprop=url|extmetadata; license per file in extmetadata.LicenseShortName; raw bytes via Special:FilePath/{filename}.https://api.wellcomecollection.org/catalogue/v2/works?query=<term>; CC0/PD medical/scientific/historical imagery.https://archive.org/advancedsearch.php?q=<term>&fl[]=identifier&output=json; PD book illustrations, engravings, historical photos, ephemera.https://api.europeana.eu/record/v2/search.json?wskey=<KEY>&query=<term>; 50M+ items across European institutions.https://api.harvardartmuseums.org/object?apikey=<KEY>&q=<term>.https://lux.collections.yale.edu/api/search/...; strong British art + rare books.parismuseescollections.paris.fr / opendata.paris.fr; French painting/decorative arts.https://api.repository.library.nyc/...; PD prints, maps, photos, illustrations.https://api.dp.la/v2/items?q=<term>&api_key=<KEY>; federated US collections.openaccess=1).references/_synthesis.md (cheat-sheet) + one file per museum (met.md, cleveland.md, smk.md, rijksmuseum.md, nga.md, artic.md, getty.md, smithsonian.md) with live-tested example URLs, field maps, and gotchas.
Other measured skills in the registry, with their headline benchmark lift.