changedInput schema / properties / dateBegin / description
Previous value: -"Earliest object date (year, inclusive). Negative integers for BCE (e.g., -500 for 500 BCE). Requires dateEnd. The range is a partial index like the other filters: it omits some objects whose own record dates them inside it."New value: +"Earliest object date (year, inclusive). Negative integers for BCE (e.g., -500 for 500 BCE). Requires dateEnd."
changedInput schema / properties / dateEnd / description
Previous value: -"Latest object date (year, inclusive). Negative integers for BCE. Requires dateBegin. The range is a partial index like the other filters: it omits some objects whose own record dates them inside it."New value: +"Latest object date (year, inclusive). Negative integers for BCE. Requires dateBegin."
changedInput schema / properties / departmentId / description
Previous value: -"Restrict results to one curatorial department. Valid IDs come from met_list_departments — the Met exposes a sparse set (roughly 1–21, with gaps); an unrecognized ID is rejected with an invalid_department error rather than silently returning no matches. A partial index like the other filters: it omits some objects whose own record names the department. Can be combined with other filters; combining with isPublicDomain works but returns far fewer results than expected."New value: +"Restrict results to one curatorial department. Valid IDs come from met_list_departments — the Met exposes a sparse set (roughly 1–21, with gaps); an unrecognized ID is rejected with an invalid_department error rather than silently widening the search. Can be combined with other filters."
changedInput schema / properties / geoLocation / description
Previous value: -"Filter by geographic origin. Each value is matched broadly against geography fields and artist nationality. Multiple values are AND-combined — [\"France\", \"Egypt\"] returns objects associated with both, not either, so more values narrow the result set. A partial index like the other filters: it omits some objects whose own geography fields name the location. Works best with the Egyptian Art, Greek and Roman Art, and similar departments that have well-populated geography fields."New value: +"Filter by geographic origin: one country, region, or city, as a one-element array (e.g., [\"France\"]). The value is matched broadly against geography fields and artist nationality. Works best with the Egyptian Art, Greek and Roman Art, and similar departments that have well-populated geography fields."
addedInput schema / properties / geoLocation / maxItems
Added value: +1
changedInput schema / properties / hasImages / description
Previous value: -"When true, restricts results to objects that have at least one associated image, including copyrighted works whose images cannot be reproduced. A partial index like every filter here: it omits some objects that do have images, so absence from the results is not evidence an object has none. isPublicDomain is the nearest filter for freely reusable CC0 images — confirm per object from the isPublicDomain and hasCC0Image fields on met_get_object."New value: +"When true, restricts results to objects that have at least one associated image, including copyrighted works whose images cannot be reproduced; false restricts them to objects with none. For freely reusable CC0 images, confirm per object from the isPublicDomain and hasCC0Image fields on met_get_object."
changedInput schema / properties / isHighlight / description
Previous value: -"Opt-in filter, true only — omit it rather than passing false, which the upstream index answers unsoundly. Selects objects the Met has designated as highlights — major works central to the collection. A partial index like isPublicDomain: it omits objects whose own record reports isHighlight true, so absence from the results is not evidence a work is not a highlight."New value: +"Opt-in filter, true only — omit it rather than passing false, which the search ignores. Selects objects the Met has designated as highlights — major works central to the collection."
changedInput schema / properties / isOnView / description
Previous value: -"When true, restricts results to objects currently on display in a Met gallery. A partial index like the other filters — it omits some objects that are on view, so absence from the results is not evidence a work is off display. The GalleryNumber field on the met_get_object record identifies the specific gallery."New value: +"When true, restricts results to objects currently on display in a Met gallery; false restricts them to objects not on view. The GalleryNumber field on the met_get_object record identifies the specific gallery."
removedInput schema / properties / isPublicDomain
Removed value: -{
- "const": true,
- "description": "Opt-in filter, true only — omit it rather than passing false, which the upstream index answers unsoundly. Selects objects released under CC0 open access, which return direct high-resolution image URLs in met_get_object. A partial index, not exhaustive coverage: it omits objects whose own record reports isPublicDomain true — object 436580 matches the query \"sunflower\" and is public domain, yet the filtered search does not return it — so absence from the results is not evidence an object lacks CC0 status. Combining it with departmentId narrows it further; when a search returns nothing, retry without the filter.",
- "type": "boolean"
-}
changedInput schema / properties / limit / description
Previous value: -"Maximum number of object IDs to return from the full result set. The Met search returns every match (up to tens of thousands); this caps how many IDs are returned."New value: +"Maximum number of object IDs to return in this page. Paging reaches only the first 10,000 matches, so a page that would cross 10,000 is cut short there."
changedInput schema / properties / medium / description
Previous value: -"Filter by object classification (e.g., \"Paintings\", \"Drawings\", \"Prints\", \"Ceramics\", \"Sculpture\", \"Photographs\", \"Textiles\"). Maps to the classification field on the object, not the materials/medium text field — pass a classification category name, not a material description like \"Oil on canvas\". A partial index like the other filters: it omits some objects that carry the classification on their own record."New value: +"Filter by object classification, case-sensitive and spelled as the Met spells it (e.g., \"Paintings\", \"Drawings\", \"Prints\", \"Ceramics\", \"Sculpture\", \"Photographs\", \"Textiles\") — \"paintings\" or \"Painting\" matches nothing. Maps to the classification field on the object, not the materials text, so a material description like \"Oil on canvas\" matches nothing either; met_get_object returns an object’s classification."
changedInput schema / properties / offset / description
Previous value: -"Zero-based index into the full result set to start from (default 0). The nextOffset from a previous response is the value to pass here for the next page; a broad query carries the same timeout risk on every page, so narrow it with filters if paging times out. An offset at or beyond total returns an empty page, not an error."New value: +"Zero-based index of the first match to return (default 0); pass the nextOffset from a previous response to continue paging. Only the first 10,000 matches are reachable, so an offset at or beyond 10,000, or at or beyond a nonzero total, returns an empty page rather than an error. Matches with tied relevance can change order between requests, so an ID can occasionally repeat or be skipped at a page boundary."
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `no_results`: total is 0 — the API returned null objectIDs for the query, or nothing the filters returned also matched the query. `invalid_date_range`: dateBegin or dateEnd is provided without the other, or dateBegin > dateEnd. `invalid_filter`: q is whitespace-only, or medium or geoLocation was supplied blank — an empty array, or an entry with no non-whitespace characters. `invalid_department`: departmentId is provided but is not one of the Met department IDs. `search_timeout`: The keyword+filter result set is too large to download within the request timeout — a broad query with few or no filters. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_results`: total is 0 — no object matches the keyword, or none of its matches survives the filters. `invalid_date_range`: dateBegin or dateEnd is provided without the other, or dateBegin > dateEnd. `invalid_filter`: q is whitespace-only, or medium or geoLocation was supplied blank — an empty array, or an entry with no non-whitespace characters. `invalid_department`: departmentId is provided but is not one of the Met department IDs. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "no_results",
- "invalid_date_range",
- "invalid_filter",
- "invalid_department",
- "search_timeout"
-]New value: +[
+ "no_results",
+ "invalid_date_range",
+ "invalid_filter",
+ "invalid_department"
+]
changedOutput schema / properties / nextOffset / description
Previous value: -"The offset to pass on the next call to continue paging, or null when the result set is exhausted (truncated is false)."New value: +"The offset to pass on the next call to continue paging, or null when no further page is reachable (truncated is false)."
changedOutput schema / properties / notice / description
Previous value: -"Present only when a filtered search could not be checked against the unfiltered query. That check is best-effort; when it does not complete the page is returned uncorrected and may contain objects unrelated to the keyword."New value: +"Present only when total exceeds 10,000: states that only the first 10,000 matches are reachable by paging, and that filters or a more specific keyword bring the rest into reach."
changedOutput schema / properties / offset / description
Previous value: -"The resolved offset this page was read from — the offset input after its default of 0. Compare it against total: when offset is greater than or equal to total the page is empty because the offset ran past the end of the result set, not because the query has nothing left to return."New value: +"The resolved offset this page was read from — the offset input after its default of 0. When it is at or beyond the smaller of total and 10,000, the page is empty because the offset ran past what paging reaches, not because the search found nothing."
changedOutput schema / properties / remaining / description
Previous value: -"Count of matching object IDs after this page: total − (offset + returned), floored at 0. 0 means this is the last page."New value: +"Count of reachable matches after this page: the smaller of total and 10,000, minus (offset + returned), floored at 0. 0 means no further page exists."
changedOutput schema / properties / returned / description
Previous value: -"Count of object IDs in this response — may be less than `total` when the full result set was truncated by `limit`."New value: +"Count of object IDs in this page."
changedOutput schema / properties / total / description
Previous value: -"Total number of matching objects in the Met collection (may far exceed the returned IDs)."New value: +"Total number of objects in the Met collection matching the search. Can exceed 10,000, the most that paging reaches."
changedOutput schema / properties / truncated / description
Previous value: -"True when matching IDs remain beyond this page (offset + returned < total); false when this page is the last."New value: +"True when reachable matches remain after this page (offset + returned < the smaller of total and 10,000); false when this page is the last one paging reaches."