Developer
Open Archive API
Static JSON endpoints for every work in the archive. No key, no rate limit, no authentication — just plain files served over HTTPS. Stable URLs you can cite, link, and build on indefinitely.
https://jfsn.com/api/v1/All responses are
Content-Type: application/json; charset=utf-8 with
Access-Control-Allow-Origin: *. Safe to call from any browser or script.
Endpoints
Start here. Returns catalog metadata, all endpoint URLs, license, and citation string. Rebuild date is updated every time build_catalog.py runs.
{
"api_version": "1",
"generated": "2026-05-26T14:36:01Z",
"artist": "Jeffrey F. S. Neumann",
"counts": {
"cataloged": 140,
"total_including_stubs": 1084
},
"endpoints": {
"works": "https://jfsn.com/api/v1/works.json",
"work": "https://jfsn.com/api/v1/works/{id}.json",
… themes, series, motifs, palette
},
"license": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/",
"citation": "Jeffrey F. S. Neumann Archive. https://jfsn.com/api/v1/meta.json"
}
Full catalog as a JSON array wrapped in an envelope. Only includes works with complete metadata — excludes uncataloged stubs. Sorted by artwork ID (stable across rebuilds).
{
"api_version": "1",
"generated": "2026-05-26T14:36:01Z",
"count": 140,
"works": [
{
"file": "art0001.avif",
"title": "Effigy in Red",
"year": 1970,
"work_type": "collage",
"palette": ["vermilion", "gold", "ivory", "black"],
"themes": ["Mr. Snowmann", "Totems"],
… description, motifs, materials, series, keywords
},
… 139 more works
]
}
Full metadata for a single work, with direct links to image assets. {id} is the zero-padded artwork identifier, e.g. art0001. These are the URLs to cite in papers, Wikipedia, or external databases — they will not change.
{
"api_version": "1",
"id": "art0005",
"work": {
"file": "art0005.avif",
"title": "Dive",
"year": 1990,
"work_type": "collage",
"description": "Two gold compact discs … ",
"palette": ["gold", "black", "ivory"],
"motifs": ["compact-disc", "warplane-topdown"],
"themes": ["Mr. Snowmann", "Aviation"],
"series": null,
"keywords": ["dive-bomber-formation", "disc-halo"],
"featured": false,
"schema_version": "1"
},
"links": {
"image": "https://jfsn.com/artworks/full/art0005.avif",
"thumb": "https://jfsn.com/artworks/thumbs/art0005.avif",
"mini": "https://jfsn.com/artworks/mini/art0005.avif",
"page": "https://jfsn.com/artwork.html?id=art0005"
}
}
All 14 controlled themes with work counts and IDs. Sorted by frequency descending. Each entry includes the archive browse URL for that theme.
{
"api_version": "1",
"count": 14,
"themes": [
{
"name": "Aviation",
"slug": "aviation",
"count": 60,
"series_url": "https://jfsn.com/series.html?theme=Aviation",
"work_ids": ["art0005", "art0006", "art0008", …]
},
… 13 more themes
]
}
The three named bodies of work: XXIII, Squadron, and Guernica. Includes all member work IDs.
{
"api_version": "1",
"series": [
{
"name": "XXIII",
"count": 38,
"series_url": "https://jfsn.com/series.html?series=XXIII",
"work_ids": […]
}
]
}
Same structure as themes.json. motifs.json covers 30 motifs (e.g. compact-disc, warplane-topdown). palette.json covers 20 controlled colors (e.g. vermilion, gold, ultramarine). Each entry lists all work IDs where that term appears.
{
"api_version": "1",
"count": 30,
"motifs": [
{
"name": "compact-disc",
"slug": "compact-disc",
"count": 101,
"work_ids": […]
},
…
]
}
Work field reference
| Field | Description | Type / values |
|---|---|---|
| file | AVIF filename, used as the stable record key | string — art{NNNN}.avif |
| title | Work title, max 4 words (evocative) or Untitled variant | string |
| year | Year extracted from visual evidence on the work; null if undated | integer 1900–2100 or null |
| work_type | Medium | collage · sculpture · painting · photograph |
| description | Two-sentence catalog prose, max 55 words, objective tone | string |
| palette | Dominant colors, most prominent first | array — 20-term controlled vocab, 3–5 items |
| motifs | Clearly identifiable recurring visual elements | array — 30-term controlled vocab |
| materials | Identifiable physical materials | array — 15-term controlled vocab |
| composition | Short compositional description, max 8 words | string |
| themes | Iconographic and contextual themes, max 4 | array — 14-term controlled vocab |
| series | Named body of work membership | XXIII · Squadron · Guernica · null |
| keywords | Specific long-tail search terms unique to this work | array, 2–4 items |
| featured | Selected for homepage display; set manually | boolean |
| schema_version | Schema version for forward-compatibility | string — currently "1" |
Usage examples
curl
# All cataloged works
curl https://jfsn.com/api/v1/works.json
# Single work
curl https://jfsn.com/api/v1/works/art0005.json
# All Aviation works
curl https://jfsn.com/api/v1/themes.json \
| jq '.themes[] | select(.name=="Aviation") | .work_ids'
JavaScript (fetch)
// Fetch a single work
const res = await fetch(
'https://jfsn.com/api/v1/works/art0005.json'
);
const { work, links } = await res.json();
// All Aviation works
const t = await fetch(
'https://jfsn.com/api/v1/themes.json'
).then(r => r.json());
const aviation = t.themes.find(
x => x.name === 'Aviation'
);
Python
import requests, json
# List all works with palette including 'gold'
works = requests.get('https://jfsn.com/api/v1/works.json').json()['works']
gold_works = [w for w in works if 'gold' in w.get('palette', [])]
print(f"{len(gold_works)} works featuring gold")
# Download metadata for a specific work
work = requests.get('https://jfsn.com/api/v1/works/art0001.json').json()
print(work['work']['title'], '—', work['work']['description'])
Versioning & stability
https://jfsn.com/api/v1/works/{id}.json will exist for as long as this archive exists. Artwork IDs are never reassigned or deleted; new works get new IDs.
"api_version": "1". If the schema changes incompatibly, a new /api/v2/ path is introduced; v1 is kept frozen. The schema_version inside each work record tracks the AI cataloging schema independently.
License & citation
Catalog metadata (titles, descriptions, themes, keywords, dates) is released under CC BY 4.0. You may use, redistribute, and build upon it freely with attribution. The artwork images themselves remain copyright Jeffrey F. S. Neumann — contact for licensing.
Suggested citation
Jeffrey F. S. Neumann Archive (jfsn.com). Catalog metadata, CC BY 4.0.
Retrieved from https://jfsn.com/api/v1/meta.json, [date accessed].