Search Artwork
search_artworkSearch Rijksmuseum artworks with structured filters (subject, creator, material, technique, date, place) to find pieces meeting all criteria. Returns summaries with titles, creators, dates, and total results count.
Instructions
Structured filter search — artworks matching ALL given filters (subject, material, technique, date, place, person). Returns artwork summaries with titles, creators, and dates; every response includes totalResults (exact match count, not just the returned page). Not for free-text concept queries — use semantic_search for those. Not for artwork-to-artwork similarity — use find_similar with an objectNumber. For demographic person queries (gender, born/died, profession, birth/death place), use search_persons first to get a vocabId, then pass it as creator here. For provenance text and ownership history, use search_provenance. For aggregate counts and distributions, prefer collection_stats — one call vs compact=true loops.
Ranking: relevance (BM25) when text search (description, title, etc.) or geographic proximity is used; otherwise importance (image availability, curatorial attention, metadata richness). For concept-ranked results, use semantic_search.
At least one filter is required. There is no full-text search across all metadata. For concept or thematic searches (e.g. 'winter landscape', 'smell', 'crucifixion'), ALWAYS start with subject — it searches ~832K artworks tagged with structured Iconclass vocabulary and has by far the highest recall for conceptual queries. Use description for cataloguer observations (compositional details, specific motifs); use curatorialNarrative for curatorial interpretation and art-historical context. These three corpora can return complementary results. For broader concept discovery beyond structured vocabulary, use semantic_search — but combine it with search_artwork(type: 'painting', …) for painting queries since paintings are underrepresented there.
Array values are AND-combined (e.g. subject: ['landscape', 'seascape'] finds artworks with both). If many results share an object-number prefix (e.g. multiple folios of one sketchbook), a warnings note flags it; narrow with type/material filters or treat the shared prefix as the unit. Each result carries an objectNumber for follow-up calls to get_artwork_details (full metadata) or get_artwork_image (deep-zoom viewer — only when the user asks to see, show, or view an artwork; do not open the viewer for list/count/summary requests).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Order results by a column (with optional direction). Forms: 'height', 'height:desc' (default), 'dateEarliest:asc'. Overrides BM25 (text-match) and geo-proximity ordering when set. Cannot be used alone — needs at least one substantive filter. Columns: 'height' / 'width' (cm — 95% / 94% coverage; 0.0 sentinels are folded to NULL and ordered last), 'dateEarliest' / 'dateLatest' (year — 99.9% coverage; bracket the dating range, useful for hedged datings like 'c. 1660–1665'), 'recordModified' (ISO date — 62% coverage; ~7 implausibly future-dated rows lead a 'desc' sort, ~2K pre-1990 rows lead an 'asc' sort). Direction defaults to 'desc'. NULLs always sort last regardless of direction. Examples: largest paintings → 'height:desc'; earliest works → 'dateEarliest:asc'; most recently catalogued → 'recordModified:desc'. | |
| type | No | Filter by object type: 'painting', 'print', 'drawing', etc. | |
| query | No | Search by artwork title — matches against all title variants (brief, full, former × EN/NL). Note: only ~4% of artworks have an English title (~35K of 833K). For non-title text, use the specific field parameters (description, inscription, curatorialNarrative, creator, subject, etc.). | |
| facets | No | Facet dimensions to compute when results are truncated. Pass an array of dimension names (e.g. ["theme", "rights"]) to compute only those, or true for all dimensions. Available: type, material, technique, century, rights, imageAvailable, creator, depictedPerson, depictedPlace, productionPlace, theme, sourceType. Dimensions already filtered on are excluded automatically and reported in `warnings`. | |
| offset | No | Skip this many results (for pagination). Use with maxResults. | |
| compact | No | If true, returns only total count and IDs without resolving details (faster). | |
| creator | No | Search by artist name (e.g. 'Rembrandt van Rijn'), or pass a vocabId from search_persons (e.g. '210169673') for an exact match to that one person — preferred over the name when you have it, since shared names can match multiple distinct artists. | |
| groupBy | No | Collapse component records under their parent (sketchbook folios, album pages, print-series leaves). When 'parent' is set, any child record that appears in the result alongside its parent is dropped, and the parent gains a `groupedChildCount`. Only collapses when both child and parent match the query — children whose parent isn't a hit remain in the result. Applied after the BM25 page is selected, so a parent that ranks below the maxResults cutoff won't pull its children in. Closes #28. | |
| material | No | Filter by material: 'canvas', 'paper', 'wood', etc. | |
| dateMatch | No | How creationDate matches artwork date ranges. "overlaps" (default): artwork range overlaps query range — inclusive, but objects with broad ranges appear in multiple bins. "within": artwork range falls entirely within query range — exclusive bins, but drops broadly-dated objects (~43% of collection spans >1 decade). "midpoint": assigns each artwork to one bin by midpoint of its date range — every object counted exactly once with no data loss. Best for statistical comparisons and charts. | |
| technique | No | Filter by technique: 'oil painting', 'etching', etc. | |
| aboutActor | No | Search for artworks depicting or about a person (not the creator). E.g. 'Willem van Oranje'. Broader recall than depictedPerson — searches both subject and creator vocabulary, tolerant of cross-language name forms (e.g. 'Louis XIV' finds 'Lodewijk XIV'). Combinable with all other filters. depictedPerson is usually the better first choice (precise, depicted persons only); use aboutActor for broader person matching across depicted persons and creators. | |
| facetLimit | No | Maximum entries per facet dimension (1–50, default 5). | |
| maxResults | No | Maximum results to return (1-50, default 25). All results include full metadata. | |
| description | No | Full-text search on artwork descriptions (~510K artworks, 61% coverage). Cataloguer observations including compositional details, motifs, physical condition, and attribution remarks. Exact word matching, no stemming. | |
| creationDate | No | Filter by creation date. Exact year ('1642') or wildcard ('16*' for 1600s, '164*' for 1640s). | |
| objectNumber | No | Filter by object number. Exact match by default (e.g. 'SK-C-5' for The Night Watch). Supports wildcards: '*' matches any run of characters, '?' matches a single character — e.g. 'SK-C-5*' for the Night Watch group, 'RP-P-1906-*' for a print-acquisition series, 'BK-NM-*'. Case-sensitive (object numbers are predominantly uppercase). A wildcard pattern needs at least 2 literal characters. | |
| hasProvenance | No | If true, only return artworks that have parsed provenance records (~48K of 832K). Combine with other filters for cross-domain queries (e.g. type='painting' + hasProvenance=true). Cannot be used alone — combine with at least one other filter. | |
| imageAvailable | No | Filter by digitisation: true = only artworks with a digital image, false = only artworks lacking one (e.g. un-photographed works on paper). Cannot be used alone — combine with at least one other filter. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Object numbers (compact mode). | |
| error | No | ||
| facets | No | Counts per dimension (configurable via facetLimit, default top-5). Computed when results are truncated and facets is set. | |
| source | No | ||
| results | No | Artwork summaries. Absent when compact=true. | |
| warnings | No | ||
| totalResults | No | Total matching artworks (always present when vocabulary DB is available). Use with compact=true for efficient counting. | |
| referencePlace | No |