{"openapi":"3.1.0","info":{"title":"Harvard Art Museums (BYOK) API","version":"0.1.0","description":"Harvard Art Museums (BYOK) lets an AI assistant read your own Harvard Art Museums data through the Harvard Art Museums API with a key you supply (Harvard Art Museums API key). Read-only: 9 tools (search_objects, get_object, search_people, get_person, list_exhibitions, get_exhibition, list_classifications, list_cultures, list_galleries). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-harvardart.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-harvardart/docs"},"termsOfService":"https://connectorbay.com/byok-harvardart/terms"},"servers":[{"url":"https://byok-harvardart.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-harvardart/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_objects":{"post":{"operationId":"search_objects","summary":"Search artworks and objects in the Harvard Art Museums collection by keyword, classification, culture, century, person o","description":"Search artworks and objects in the Harvard Art Museums collection by keyword, classification, culture, century, person or year made; returns title, date, medium, artists, credit line and image URL. Use for \"Find Dutch paintings from the 17th century in the Harvard Art Museums\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Words searched in titles, artists, descriptions, classification, culture, medium and credit line, for example 'rabbit'.","title":"Keyword"},"classification":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Classification name or id, for example 'Paintings' or 'Prints' (see list_classifications).","title":"Classification"},"culture":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Culture name or id, for example 'Dutch' (see list_cultures).","title":"Culture"},"century":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Century name, for example '17th century'.","title":"Century"},"person":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Person id or name of an artist or other associated person.","title":"Person"},"yearmade":{"anyOf":[{"maxLength":9,"type":"string"},{"type":"null"}],"default":null,"description":"A four-digit year or a range 'YYYY-YYYY', for example '1850-1900'.","title":"Yearmade"},"hasimage":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"1 for objects with an image, 0 for those without.","title":"Hasimage"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, or 'random'; combine with sortorder.","title":"Sort"},"sortorder":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sortorder"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":"objectid,objectnumber,title,dated,classification,culture,century,medium,department,creditline,people,url,primaryimageurl,imagecount,accesslevel","description":"Comma-separated fields to return.","title":"Fields"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"search_objectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_object":{"post":{"operationId":"get_object","summary":"Get the full record of one object by its object id: title, date, medium, technique, dimensions, provenance, credit line,","description":"Get the full record of one object by its object id: title, date, medium, technique, dimensions, provenance, credit line, people, colors count and image URL. Use for \"Tell me about Harvard Art Museums object 304069\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_id":{"description":"Numeric object id (the objectid of a search result), for example 304069.","minimum":1,"title":"Object Id","type":"integer"}},"required":["object_id"],"title":"get_objectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_people":{"post":{"operationId":"search_people","summary":"Search people and organisations associated with the collection (artists, donors, authors) by name, culture or other fiel","description":"Search people and organisations associated with the collection (artists, donors, authors) by name, culture or other fields; returns name, dates, culture and object count. Use for \"Find Rembrandt in the Harvard Art Museums people list\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Elasticsearch query string such as 'displayname:rembrandt' or 'culture:Dutch'.","maxLength":200,"title":"Q","type":"string"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example 'objectcount'; combine with sortorder.","title":"Sort"},"sortorder":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sortorder"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["q"],"title":"search_peopleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_person":{"post":{"operationId":"get_person","summary":"Get one person record by id: names, dates, culture, birth and death places, roles and external identifiers. Use for \"Tel","description":"Get one person record by id: names, dates, culture, birth and death places, roles and external identifiers. Use for \"Tell me about Harvard Art Museums person 27650\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"person_id":{"description":"Numeric person id (the personid of a search result), for example 27650.","minimum":1,"title":"Person Id","type":"integer"}},"required":["person_id"],"title":"get_personArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_exhibitions":{"post":{"operationId":"list_exhibitions","summary":"List exhibitions in the Harvard Art Museums records with title, dates and short description; filter by status or keyword","description":"List exhibitions in the Harvard Art Museums records with title, dates and short description; filter by status or keyword. Use for \"What exhibitions are on now at the Harvard Art Museums\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["current","past","upcoming"],"type":"string"},{"type":"null"}],"default":null,"description":"current, past or upcoming.","title":"Status"},"keyword":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Words searched in exhibition titles, descriptions and related people.","title":"Keyword"},"venue":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"'HAM' for exhibitions at the Harvard Art Museums, or a venue id or name.","title":"Venue"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, or 'chronological'.","title":"Sort"},"sortorder":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sortorder"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_exhibitionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_exhibition":{"post":{"operationId":"get_exhibition","summary":"Get one exhibition by id with title, dates, descriptions and image. Use for \"Tell me about Harvard Art Museums exhibitio","description":"Get one exhibition by id with title, dates, descriptions and image. Use for \"Tell me about Harvard Art Museums exhibition 4236\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exhibition_id":{"description":"Numeric exhibition id, for example 4236.","minimum":1,"title":"Exhibition Id","type":"integer"}},"required":["exhibition_id"],"title":"get_exhibitionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_classifications":{"post":{"operationId":"list_classifications","summary":"List object classifications (Paintings, Prints, Sculpture ...) with the number of objects in each. Use for \"What classif","description":"List object classifications (Paintings, Prints, Sculpture ...) with the number of objects in each. Use for \"What classifications of objects does the Harvard Art Museums have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_classificationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_cultures":{"post":{"operationId":"list_cultures","summary":"List cultures (Dutch, Japanese ...) used for objects with the number of objects in each. Use for \"Which cultures are in ","description":"List cultures (Dutch, Japanese ...) used for objects with the number of objects in each. Use for \"Which cultures are in the Harvard Art Museums collection\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_culturesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_galleries":{"post":{"operationId":"list_galleries","summary":"List gallery rooms of the Harvard Art Museums building, optionally for one floor (0 to 5). Use for \"What galleries are o","description":"List gallery rooms of the Harvard Art Museums building, optionally for one floor (0 to 5). Use for \"What galleries are on floor 2 of the Harvard Art Museums\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"floor":{"anyOf":[{"maximum":5,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Floor number, 0 to 5.","title":"Floor"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_galleriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}