Search Artwork
search_artworkFilter the Rijksmuseum collection by subject, material, technique, date, place, or person to find matching artworks with titles, creators, dates, and total result counts.
Instructions
Structured filter search — artworks matching ALL given filters. Filters cover 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'), subject has the highest recall — it searches the large majority of the collection via structured Iconclass vocabulary. 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 for the user).
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: fewer than one artwork in twenty has an English title. 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. | |
| 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 — roughly 48K, about 6% of the collection. 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 |