### Execute GraphQL Query with Cooper Hewitt API Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B++object+%28identifier%3A+%221997-66-1-a%2Fc%22%29%7B++++title++++summary++++identifier++++classification++++date++++department++++description++++exhibition++++inscription++++geography++++legal++++medium++++measurements++++multimedia++++name++++note++++period++++provenance++++status++++maker+%7B++++++id++++++summary++++%7D++%7D%7D+ This example demonstrates how to formulate and execute a GraphQL query against the Cooper Hewitt API. It shows a sample query for retrieving object details, including title, summary, and identifier. The query is intended to be used within an interactive environment like GraphiQL. ```graphql { object (identifier: "1997-66-1-a/c") { title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } } } ``` -------------------------------- ### GET /objects/{id} Source: https://apidocs.cooperhewitt.org/the-api Retrieves the multimedia details for a specific object, including image artifacts and their associated metadata. ```APIDOC ## GET /objects/{id} ### Description Retrieves detailed information about an object, specifically focusing on the multimedia array which contains image artifacts, dimensions, and URLs. ### Method GET ### Endpoint /objects/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier for the object. ### Response #### Success Response (200) - **data** (object) - The root object containing the requested record. - **multimedia** (array) - A list of media artifacts associated with the object. - **large** (object) - Contains URL, format, and measurement details for the large version of the image. - **preview** (object) - Contains URL, format, and measurement details for the preview version of the image. #### Response Example { "data": { "object": [ { "id": "object-9346", "multimedia": [ { "id": "media-122215", "type": "image", "large": { "url": "https://ciim-static-media.s3.us-east-1.amazonaws.com/122/215/large_CHSDM_F50C19FA59A32_000001.jpg", "format": "jpeg" } } ] } ] } } ``` -------------------------------- ### GET /iiif/3/{id}/info.json Source: https://apidocs.cooperhewitt.org/the-api Retrieve the IIIF manifest for zoomable images associated with an object. ```APIDOC ## GET /iiif/3/{id}/info.json ### Description Resolves the IIIF manifest for a zoomable image by appending /info.json to the image URL. ### Method GET ### Endpoint /iiif/3/{id}/info.json ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier for the image file. ### Request Example https://ch-api.ch-dev-use.link/iiif/3/138%2f845%2fCHSDM_283851_04.ptif/info.json ### Response #### Success Response (200) - **@context** (string) - IIIF context URL. - **id** (string) - Image identifier. - **width** (integer) - Image width. - **height** (integer) - Image height. ``` -------------------------------- ### GET /terms Source: https://apidocs.cooperhewitt.org/the-api Retrieve term information including hierarchy, parent, and thesaurus details. ```APIDOC ## POST /graphql ### Description Retrieve structured term data including hierarchy and thesaurus associations. ### Method POST ### Endpoint /graphql ### Request Body - **query** (string) - Required - The GraphQL query requesting term fields: hierarchy, id, parent, summary, term, and thesaurus. ### Request Example { "query": "{ term { hierarchy id parent summary term thesaurus } }" } ### Response #### Success Response (200) - **data** (object) - The requested term records. ``` -------------------------------- ### GET /graphql/object Source: https://apidocs.cooperhewitt.org/the-api Retrieves a comprehensive record for a specific object, including title, identifiers, classification, and associated exhibition data. ```APIDOC ## POST /graphql ### Description Retrieves a detailed object record from the Cooper Hewitt collection using a GraphQL query. This includes descriptive titles, accession numbers, classification, and historical context. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **query** (string) - Required - The GraphQL query string to fetch object details. ### Request Example { "query": "{ object(id: \"2018-22-51\") { title { value } identifier { value type } description { value type } } }" } ### Response #### Success Response (200) - **data** (object) - The requested object record containing metadata, classification, and exhibition history. #### Response Example { "data": { "object": [ { "title": [{"type": "Descriptive title", "value": "Videosphere Model 3240 Portable Television"}], "identifier": [{"value": "2018-22-51", "type": "accession number"}], "summary": {"title": "Videosphere Model 3240 Portable Television"} } ] } } ``` -------------------------------- ### GET /aggregations Source: https://apidocs.cooperhewitt.org/the-api Quantify commonalities between records using aggregation facets. ```APIDOC ## POST /graphql ### Description Perform aggregations (facets) on search results to quantify data across categories like department or maker. ### Method POST ### Endpoint /graphql ### Request Body - **query** (string) - Required - The GraphQL query including the aggregations parameter. ### Request Example { "query": "{ object(_general:\"chair\" aggregations: [\"department\", \"maker\"]) { id summary } }" } ### Response #### Success Response (200) - **extension** (object) - Contains the 'aggregations' block with 'buckets' and 'doc_count' for each requested facet. ``` -------------------------------- ### GET /object Source: https://apidocs.cooperhewitt.org/the-api Retrieve detailed information about museum objects, including metadata fields such as title, classification, and associated agents. ```APIDOC ## POST /graphql ### Description Retrieve a list of museum objects with specific fields. Note that there is a limit of 250 results per request. ### Method POST ### Endpoint /graphql ### Request Body - **query** (string) - Required - The GraphQL query string requesting object fields like title, summary, classification, and agent details. ### Request Example { "query": "{ object { title summary id classification } }" } ### Response #### Success Response (200) - **data** (object) - The collection of object records. #### Response Example { "data": { "object": [ { "id": "123", "title": "Example Object", "summary": "A historical artifact" } ] } } ``` -------------------------------- ### GET /relationships Source: https://apidocs.cooperhewitt.org/the-api Query linked entities between objects and agents using nested GraphQL queries. ```APIDOC ## POST /graphql ### Description Fetch linked data between objects and agents, such as finding all agents associated with a specific object or objects associated with a specific agent. ### Method POST ### Endpoint /graphql ### Request Body - **query** (string) - Required - The GraphQL query defining the nested relationship structure. ### Request Example { "query": "{ agent(name: \"Frank Lloyd Wright\") { id object (relationship: \"maker\"){ id summary } } }" } ### Response #### Success Response (200) - **data** (object) - The nested object and agent records. ``` -------------------------------- ### GET /object (with media filter) Source: https://apidocs.cooperhewitt.org/the-api Retrieve object records that contain associated media assets by using the hasImages filter. ```APIDOC ## POST /graphql ### Description Filter objects to return only those that have associated media files. ### Method POST ### Endpoint /graphql ### Query Parameters - **hasImages** (boolean) - Optional - Set to true to filter objects containing images. ### Request Example { "query": "{ object(hasImages:true) { id title multimedia } }" } ### Response #### Success Response (200) - **multimedia** (array) - List of media assets associated with the object. #### Response Example { "data": { "object": [ { "id": "123", "title": "Object with Media", "multimedia": [...] } ] } } ``` -------------------------------- ### Constructing Zoomable Image URL (IIIF Manifest) Source: https://apidocs.cooperhewitt.org/the-api This snippet shows how to construct a URL for a zoomable image's IIIF manifest by appending '/info.json' to a base URL. This is essential for integrating with IIIF-compatible viewers. ```url https://ch-api.ch-dev-use.link/iiif/3/138%2f845%2fCHSDM_283851_04.ptif/info.json ``` -------------------------------- ### Object Pagination and Searching Source: https://apidocs.cooperhewitt.org/the-api Demonstrates how to paginate through object results and combine search criteria with sorting. ```APIDOC ## Pagination The API has an upper limit of 250 objects, agents or tags that can be returned in a single response. To access larger datasets, use pagination. ### Request Example ```graphql { object(size: 100, page:12){ identifier title summary } } ``` ### Parameters - **size** (int) - Optional - The number of records to return. - **page** (int) - Optional - The starting point for records. ## More complex searches You can combine multiple search criteria, and sorting, in the same query. ### Request Example ```graphql { object(title:"Drawing", sort:[{year:"asc"}]){ identifier title department } } ``` ``` -------------------------------- ### Paginate and Sort Collection Objects Source: https://apidocs.cooperhewitt.org/the-api Demonstrates how to retrieve a specific page of objects with a defined size and apply sorting criteria. This is essential for managing large datasets within the 250-object response limit. ```graphql { object(size: 100, page: 12, title: "Drawing", sort: [{year: "asc"}]) { identifier title summary department } } ``` -------------------------------- ### Basic GraphQL Query Structure Source: https://apidocs.cooperhewitt.org/the-api Demonstrates the fundamental structure of a GraphQL query. Queries are used to request specific data fields from the API. ```graphql { object (arguments) { fields } } ``` -------------------------------- ### POST /graphql (Agent Query) Source: https://apidocs.cooperhewitt.org/the-api Retrieve information about agents (makers) and the objects they have created based on nationality or relationship. ```APIDOC ## POST /graphql ### Description Queries the museum database for agents and their associated objects. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **query** (string) - Required - The GraphQL query string. ### Request Example { "query": "{ agent(nationality: \"French\", relationship:\"maker\") { id summary object { id summary } } }" } ### Response #### Success Response (200) - **data** (object) - The requested agent and object data. #### Response Example { "data": { "agent": [ { "id": "456", "summary": "Designer Name", "object": [{ "id": "789", "summary": "Vase" }] } ] } } ``` -------------------------------- ### Querying Cooper Hewitt API for Objects with Images Source: https://apidocs.cooperhewitt.org/try-it-out A sample GraphQL query used to fetch the title and description of objects that contain images. This query is intended for use within the GraphiQL interface provided on the documentation page. ```graphql { object(hasImages:true) { title description } } ``` -------------------------------- ### Execute GraphQL Query with Cooper Hewitt API Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B++object+%28identifier%3A+%225846.1.2017%22%29%7B++++title++++summary++++identifier++++classification++++date++++department++++description++++exhibition++++inscription++++geography++++legal++++medium++++measurements++++multimedia++++name++++note++++period++++provenance++++status++++maker+%7B++++++id++++++summary++++%7D++%7D%7D+ This snippet demonstrates a sample GraphQL query to retrieve object details from the Cooper Hewitt API. It specifies the fields to fetch, such as title, summary, and identifier. The query is intended for use within an API exploration tool like GraphiQL. ```graphql { object (identifier: "5846.1.2017") { title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } } } ``` -------------------------------- ### Execute GraphQL Query with Cooper Hewitt API Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B%0D%0A++object+%28identifier%3A+%225846.1.2017%22%29%7B%0D%0A++++title%0D%0A++++summary%0D%0A++++identifier%0D%0A++++classification%0D%0A++++date%0D%0A++++department%0D%0A++++description%0D%0A++++exhibition%0D%0A++++inscription%0D%0A++++geography%0D%0A++++legal%0D%0A++++medium%0D%0A++++measurements%0D%0A++++multimedia%0D%0A++++name%0D%0A++++note%0D%0A++++period%0D%0A++++provenance%0D%0A++++status%0D%0A++++maker+%7B%0D%0A++++++id%0D%0A++++++summary%0D%0A++++%7D%0D%0A++%7D%0D%0A%7D+ This snippet demonstrates a sample GraphQL query to retrieve object details from the Cooper Hewitt API. It includes fields for title, summary, identifier, and classification. The query is intended to be executed within an environment like GraphiQL. ```graphql { object (identifier: "5846.1.2017"){ title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } } } ``` -------------------------------- ### Execute Object Query via GraphQL Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B%0D%0A++object+%28identifier%3A+%222002-11-51%22%29%7B%0D%0A++++title%0D%0A++++summary%0D%0A++++identifier%0D%0A++++classification%0D%0A++++date%0D%0A++++department%0D%0A++++description%0D%0A++++exhibition%0D%0A++++inscription%0D%0A++++geography%0D%0A++++legal%0D%0A++++medium%0D%0A++++measurements%0D%0A++++multimedia%0D%0A++++name%0D%0A++++note%0D%0A++++period%0D%0A++++provenance%0D%0A++++status%0D%0A++++maker+%7B%0D%0A++++++id%0D%0A++++++summary%0D%0A++++%7D%0D%0A++%7D%0D%0A%7D+ A sample GraphQL query to retrieve metadata for a specific object in the Cooper Hewitt collection. It requests fields such as title, summary, classification, and maker information based on a unique identifier. ```graphql { object(identifier: "2002-11-51") { title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } } } ``` -------------------------------- ### GraphiQL Interface Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B%0D%0A++object+%28identifier%3A+%221997-66-1-a%2Fc%22%29%7B%0D%0A++++title%0D%0A++++summary%0D%0A++++identifier%0D%0A++++classification%0D%0A++++date%0D%0A++++department%0D%0A++++description%0D%0A++++exhibition%0D%0A++++inscription%0D%0A++++geography%0D%0A++++legal%0D%0A++++medium%0D%0A++++measurements%0D%0A++++multimedia%0D%0A++++name%0D%0A++++note%0D%0A++++period%0D%0A++++provenance%0D%0A++++status%0D%0A++++maker+%7B%0D%0A++++++id%0D%0A++++++summary%0D%0A++++%7D%0D%0A++%7D%0D%0A%7D+ Use the GraphiQL interface to formulate and execute GraphQL queries against the Cooper Hewitt API. The results of your query will be displayed in the results text area. ```APIDOC ## GraphiQL - Cooper Hewitt API ### Description Use the GraphiQL interface to interact with the Cooper Hewitt API. Formulate your GraphQL queries in the left-side editor and execute them by pressing the 'Execute query' button. The API's response will be displayed in the results text area. ### Method POST (typically for GraphQL queries) ### Endpoint /api/v1/graphql (example endpoint, actual may vary) ### Parameters No direct parameters for the interface itself, queries are defined within the editor. ### Request Example ```json { "query": "{ object (identifier: \"1997-66-1-a/c\"){ title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } }}" } ``` ### Response #### Success Response (200) - **data** (object) - Contains the results of the query. - **errors** (array) - Contains error messages if the query failed. #### Response Example ```json { "data": { "object": { "title": "Example Object Title", "summary": "A brief summary of the object.", "identifier": "1997-66-1-a/c", "classification": "Example Classification", "date": "Example Date", "department": "Example Department", "description": "Detailed description of the object.", "exhibition": "Exhibition details.", "inscription": "Inscription text.", "geography": "Geographical origin.", "legal": "Legal information.", "medium": "Medium of the object.", "measurements": "Measurements of the object.", "multimedia": [ { "id": "multimedia_id_1" } ], "name": "Object Name", "note": "Additional notes.", "period": "Period of origin.", "provenance": "Provenance details.", "status": "Object status.", "maker": { "id": "maker_id_1", "summary": "Maker summary." } } } } ``` ``` -------------------------------- ### POST /graphql (Object Query) Source: https://apidocs.cooperhewitt.org/the-api Retrieve museum objects based on filters such as maker, date range, subject, or exhibition. ```APIDOC ## POST /graphql ### Description Queries the museum database for objects based on specific criteria like maker, date, or exhibition. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **query** (string) - Required - The GraphQL query string defining the fields to retrieve and filters to apply. ### Request Example { "query": "{ object(maker:\"Dieter Rams\", yearRange:{from:1960, to:1969}) { id summary date } }" } ### Response #### Success Response (200) - **data** (object) - The requested object data. #### Response Example { "data": { "object": [ { "id": "123", "summary": "Chair", "date": "1965" } ] } } ``` -------------------------------- ### POST / Source: https://apidocs.cooperhewitt.org/the-api The primary GraphQL endpoint for querying the Cooper Hewitt collection database. ```APIDOC ## POST / ### Description Access the Cooper Hewitt collection data using GraphQL queries. This endpoint allows for flexible data retrieval of items, people, and organizations. ### Method POST ### Endpoint https://api.cooperhewitt.org/ ### Parameters #### Request Body - **query** (string) - Required - The GraphQL query string defining the requested fields and arguments. ### Request Example { "query": "{ object(id: 123) { title, date } }" } ### Response #### Success Response (200) - **data** (object) - The requested collection data structured according to the query. #### Response Example { "data": { "object": { "title": "Example Object", "date": "2023" } } } ``` -------------------------------- ### GraphQL Query to Filter Media Artifacts Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query demonstrates how to limit the returned data to specific media artifacts, such as 'id' and 'preview', when generating grids of thumbnail images. This optimizes data transfer by fetching only necessary fields. ```graphql { object(hasImages:true) { summary media { id preview } } } ``` -------------------------------- ### Execute GraphQL Query with Cooper Hewitt API Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B%0D%0A++object+%28identifier%3A+%221997-66-1-a%2Fc%22%29%7B%0D%0A++++title%0D%0A++++summary%0D%0A++++identifier%0D%0A++++classification%0D%0A++++date%0D%0A++++department%0D%0A++++description%0D%0A++++exhibition%0D%0A++++inscription%0D%0A++++geography%0D%0A++++legal%0D%0A++++medium%0D%0A++++measurements%0D%0A++++multimedia%0D%0A++++name%0D%0A++++note%0D%0A++++period%0D%0A++++provenance%0D%0A++++status%0D%0A++++maker+%7B%0D%0A++++++id%0D%0A++++++summary%0D%0A++++%7D%0D%0A++%7D%0D%0A%7D+ This snippet demonstrates how to execute a GraphQL query against the Cooper Hewitt API using a specific object identifier. It shows the structure of a query and the expected response format. ```GraphQL { object (identifier: "1997-66-1-a/c"){ title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } } } ``` -------------------------------- ### Retrieve Multimedia Object Record Structure Source: https://apidocs.cooperhewitt.org/the-api This JSON snippet demonstrates the structure of an object record containing multimedia data. It includes nested objects for different image sizes (large, original, preview) along with their respective dimensions and URLs. ```json { "data": { "object": [ { "id": "object-9346", "summary": { "title": "Drawing" }, "multimedia": [ { "cc0": true, "datatype": { "actual": "image", "base": "media" }, "id": "media-122215", "large": { "format": "jpeg", "measurements": { "dimensions": [ { "dimension": "height", "units": "pixels", "value": 1024 }, { "dimension": "width", "units": "pixels", "value": 1451 } ], "filesize": { "units": "bytes", "value": 282572 } }, "url": "https://ciim-static-media.s3.us-east-1.amazonaws.com/122/215/large_CHSDM_F50C19FA59A32_000001.jpg" }, "type": "image" } ] } ] } } ``` -------------------------------- ### POST /graphql Source: https://apidocs.cooperhewitt.org/try-it-out Execute a GraphQL query to retrieve object data from the Cooper Hewitt collection. ```APIDOC ## POST /graphql ### Description Retrieves specific data fields for objects within the Cooper Hewitt collection using a GraphQL query. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **query** (string) - Required - The GraphQL query string to execute. ### Request Example { "query": "{ object(hasImages:true) { title description } }" } ### Response #### Success Response (200) - **data** (object) - The requested object data in JSON format. #### Response Example { "data": { "object": { "title": "Example Object", "description": "A detailed description of the object." } } } ``` -------------------------------- ### Retrieving Aggregation Facets Source: https://apidocs.cooperhewitt.org/the-api Shows how to request aggregations to quantify search results. The response includes buckets with doc_count values to help categorize data by specific fields like department. ```json "aggregations": { "department": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "Drawings, Prints, and Graphic Design Department", "doc_count": 129079 }, { "key": "Product Design and Decorative Arts Department", "doc_count": 28924 } ] } } ``` -------------------------------- ### POST /graphql Source: https://apidocs.cooperhewitt.org/try-it-out?new_query=%7B%0D%0A++object+%28identifier%3A+%222002-11-51%22%29%7B%0D%0A++++title%0D%0A++++summary%0D%0A++++identifier%0D%0A++++classification%0D%0A++++date%0D%0A++++department%0D%0A++++description%0D%0A++++exhibition%0D%0A++++inscription%0D%0A++++geography%0D%0A++++legal%0D%0A++++medium%0D%0A++++measurements%0D%0A++++multimedia%0D%0A++++name%0D%0A++++note%0D%0A++++period%0D%0A++++provenance%0D%0A++++status%0D%0A++++maker+%7B%0D%0A++++++id%0D%0A++++++summary%0D%0A++++%7D%0D%0A++%7D%0D%0A%7D+ Executes a GraphQL query to retrieve object details from the Cooper Hewitt collection. ```APIDOC ## POST /graphql ### Description Retrieves detailed information about a specific object in the Cooper Hewitt collection using a GraphQL query. ### Method POST ### Endpoint /graphql ### Request Body - **query** (string) - Required - The GraphQL query string containing the fields to retrieve (e.g., title, summary, identifier, classification). ### Request Example { "query": "{ object (identifier: \"2002-11-51\"){ title summary identifier classification date department description exhibition inscription geography legal medium measurements multimedia name note period provenance status maker { id summary } }}" } ### Response #### Success Response (200) - **data** (object) - The requested object record containing the specified fields. #### Response Example { "data": { "object": { "title": "Example Object Title", "identifier": "2002-11-51", "classification": "Example Classification" } } } ``` -------------------------------- ### POST /graphql (Search Objects) Source: https://apidocs.cooperhewitt.org/the-api Search for collection objects using specific identifiers, general keywords, or date ranges. ```APIDOC ## POST /graphql ### Description Search for objects within the Cooper Hewitt collection using various filter criteria. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **identifier** (string) - Optional - Search by accession number. - **general** (string) - Optional - Search across all searchable fields. - **yearRange** (object) - Optional - Filter by date range (from: YYYY, to: YYYY). ### Request Example { "object" (identifier: "2018-22-51") { identifier title description } } ### Response #### Success Response (200) - **object** (object) - The collection object matching the criteria. #### Response Example { "data": { "object": { "identifier": "2018-22-51", "title": "Example Object", "description": "A detailed description of the object." } } } ``` -------------------------------- ### Performing Nested Entity Queries Source: https://apidocs.cooperhewitt.org/the-api Demonstrates how to link entities such as agents and objects. These queries allow for retrieving related records and specifying fields for both the primary and nested entities. ```graphql { object { id agent { id name } } } { agent(name: "Frank Lloyd Wright") { id object (relationship: "maker"){ id summary } } } ``` -------------------------------- ### GraphQL Query to Search Object by General Field Source: https://apidocs.cooperhewitt.org/the-api This query demonstrates searching for objects using the 'general' field, which allows a broad text search across all searchable fields. It returns the identifier, title, and description of matching objects. ```graphql { object (general: "swivel chair") { identifier title description } } ``` -------------------------------- ### GraphQL Query for Object Media Details Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query retrieves detailed media information for objects, including IDs, large image URLs, previews, zoom URLs, and original image URLs. It's useful for applications that need to display or access various image formats. ```graphql { object(hasImages:true) { media { id large preview zoom original } } } ``` -------------------------------- ### Query Objects by Complex Filters Source: https://apidocs.cooperhewitt.org/the-api Searches for objects based on name, material, date range, and display status. This demonstrates multi-parameter filtering. ```graphql { object(name: "chair", material: "wood", yearRange: {from: 1950, to: 1960}, onDisplay: true) { id summary location maker { id summary } } } ``` -------------------------------- ### GraphQL Object Record Response Structure Source: https://apidocs.cooperhewitt.org/the-api A sample JSON response representing a single museum object query. It demonstrates how various attributes like titles, identifiers, and exhibition data are nested within the object data structure. ```json { "data": { "object": [ { "title": [ { "type": "Descriptive title", "value": "Videosphere Model 3240 Portable Television" }, { "type": "Model number", "value": "3240" }, { "type": "Series/book title", "value": "Videosphere" } ], "summary": { "title": "Videosphere Model 3240 Portable Television" }, "identifier": [ { "value": "2018-22-51", "type": "accession number" }, { "value": "285978", "type": "tms id" } ], "classification": [ { "datatype": { "base": "classification" }, "id": "classification-204", "summary": { "title": "appliances & tools" } } ], "date": [ { "from": "1970", "to": "1970", "value": "1970" } ], "department": [ { "collectionsOnlineId": "35347475", "datatype": { "base": "department" }, "id": "department-1", "identifier": [{ "type": "tms id", "value": "1" }], "summary": { "title": "Product Design and Decorative Arts Department" } } ], "description": [ { "type": "digital table text", "value": "Inspired by the helmets worn by the first astronauts to walk on the moon, the Videosphere is made of synthetic materials that perfectly suit its cosmic aesthetic." }, { "type": "general description", "value": "Spherical red television (a) with convex screen at front and control knobs and hanging/carrying chain in indentation at top; chrome-plated telescoping attenna, top right." } ] } ] } } ``` -------------------------------- ### Searchable Fields List Source: https://apidocs.cooperhewitt.org/the-api This list enumerates all fields that can be used for searching objects via the API. It includes identifiers, descriptive fields, and temporal ranges, providing a comprehensive reference for query construction. ```text general: string agentId: string agent: string collectionsOnlineId: string country: string culture: string department : string departmentId: string displayed: boolean dynasty: string exhibition: string exhibitionId: string geography: string hasImages: boolean identifier: string id: string loaned: boolean maker: string makerId: string material: string name: string onDisplay: boolean period: string provenance: string reign: string summary: string subject: string subjectId: string title: string year: YYYY yearRange: {from:YYYY, to:YYYYY} ``` -------------------------------- ### Query Museum Objects by Subject Source: https://apidocs.cooperhewitt.org/the-api Fetches objects associated with a specific subject name. It returns the object ID, summary, and the subject details. ```graphql { object (subject:"Winslow Homer"){ id summary subject{name} } } ``` -------------------------------- ### Query Object Records with Media - GraphQL Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query demonstrates how to filter object records to include only those with attached media. It retrieves the ID, title, summary, and multimedia references for matching objects. This is useful for finding objects that have associated images, videos, or audio. ```graphql { object(hasImages:true) { id title summary multimedia } } ``` -------------------------------- ### Agent API Source: https://apidocs.cooperhewitt.org/the-api Details on retrieving agent information, searching by various fields, and sorting results. ```APIDOC ## Agents Agents are the people, organizations, and companies related to the creation of a work in the collection. ### Request Example ```graphql { agent { birth classification collectionsOnlineId death description dissolved founded id identifier name nationality role summary vocation object { id summary } } } ``` ## Search for agents You can search for an agent by passing an argument in the query. ### Request Example ```graphql { agent(id:"agent-773") { id name description } } ``` ### Searchable Fields - **general** (string) - **collectionsOnlineId** (string) - **date** (YYYY) (string) - **dateRange** ({from:YYYY, to:YYYY}) (object) - **description** (string) - **identifier** (string) - **id** (string) - **name** (string) - **nationality** (string) - **summary** (string) - **relationship** (string) - **vocation** (string) ## Sorting agents Agent records can be sorted. ### Request Example ```graphql { agent(sort:[{id: "asc"}]){ id name } } ``` ### Sortable Fields - **birth** (string) - **death** (string) - **id** (string) - **name** (string) ### Multiple Sorting Arguments Multiple sorting arguments can be requested. ### Request Example ```graphql { agent(sort: [{surename: "asc"}, {forename: "asc"}]) { id name birth } } ``` ### Sorting combined with searching Sorting can be combined with searching. ### Request Example ```graphql { agent(name:"Rob", sort:[{surename: "desc"}]) { name birth } } ``` ``` -------------------------------- ### Query and Search Agents Source: https://apidocs.cooperhewitt.org/the-api Retrieves agent details including biographical information and associated objects. Supports searching by specific fields like identifier and sorting by multiple attributes. ```graphql { agent(id: "agent-773", sort: [{surename: "asc"}, {forename: "asc"}]) { id name description birth } } ``` -------------------------------- ### GraphQL Response Structure Source: https://apidocs.cooperhewitt.org/the-api Illustrates the typical structure of data returned by the Cooper Hewitt API in response to a GraphQL query. The response mirrors the query structure. ```graphql { "data": { "object": { "field": value } } } ``` -------------------------------- ### Query Museum Objects by Maker and Date Source: https://apidocs.cooperhewitt.org/the-api Retrieves object summaries for a specific maker within a defined decade. This query uses the object type with maker and yearRange arguments. ```graphql { object (maker:"Deiter Rams" yearRange:{from:1960, to:1969}) { id summary date } } ``` -------------------------------- ### Query Objects by Exhibition Source: https://apidocs.cooperhewitt.org/the-api Retrieves objects linked to a specific exhibition title, including information about the makers involved. ```graphql { object(exhibition: "The Jazz Age") { id summary maker { summary role } } } ``` -------------------------------- ### Query Agents by Nationality and Relationship Source: https://apidocs.cooperhewitt.org/the-api Finds agents based on their nationality and their relationship to objects, returning the agent and the associated objects. ```graphql { agent(nationality: "French", relationship:"maker") { id summary object { id summary } } } ``` -------------------------------- ### GraphQL Query to Search Object by Identifier Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query searches for a specific object using its accession number as an identifier. It returns the object's identifier, title, and description, enabling direct retrieval of known objects. ```graphql { object (identifier: "2018-22-51") { identifier title description } } ``` -------------------------------- ### GraphQL Query to Search Objects within a Year Range Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query filters objects based on a specified year range, using the 'from' and 'to' parameters. It retrieves the identifier, title, and description of objects created within that period. ```graphql { object(yearRange:{from:1960, to:1970}){ identifier title description } } ``` -------------------------------- ### Sortable Fields List Source: https://apidocs.cooperhewitt.org/the-api This list specifies the fields that can be used for sorting API query results. It includes 'id', 'summary', and 'year', allowing users to order data according to their needs. ```text id summary year ``` -------------------------------- ### Query All Object Fields - GraphQL Source: https://apidocs.cooperhewitt.org/the-api This GraphQL query retrieves all available fields for museum objects. It demonstrates the structure for accessing nested data like agents, collectors, and subjects. Note that results are paginated with a default limit. ```graphql { object { title summary identifier id classification culture date department description exhibition inscription geography legal loaned location material medium measurements multimedia name note period provenance status agent { id summary } collector { id summary } maker { id summary } subject { id summary } tag { id summary } } } ``` -------------------------------- ### Retrieve Department Data Source: https://apidocs.cooperhewitt.org/the-api Fetches information about museum departments and their associated objects. Supports filtering and sorting based on fields like collectionsOnlineId and summary. ```graphql { department { collectionsOnlineId id identifier summary object { id summary } } } ``` -------------------------------- ### GraphQL Query to Sort Objects by ID Source: https://apidocs.cooperhewitt.org/the-api This query demonstrates how to sort search results by the object's ID in ascending order ('asc'). It returns the ID and summary of the sorted objects, useful for ordered listings. ```graphql { object(sort:[{id: "asc"}]){ id summary } } ``` -------------------------------- ### Department API Source: https://apidocs.cooperhewitt.org/the-api Endpoints for querying department information, including search and sort capabilities. ```APIDOC ## Department Departments are the functional sections that the museum is subdivided into. ### Request Example ```graphql { department { collectionsOnlineId id identifier summary object { id summary } } } ``` ### Searchable and Sortable Fields - **page** (int) - **size** (int) - **sort** ([{arg1: order}, {arg2: order}]) (object) - **general** (string) - **collectionsOnlineId** (string) - **id** (string) - **summary** (string) ``` -------------------------------- ### GraphQL Query for Color Search Source: https://apidocs.cooperhewitt.org/the-api This query searches for objects containing a specific color, identified by its hex code. It returns the object's ID, its associated colors, and multimedia information. This is useful for visual search functionalities. ```graphql { object(colors:"#8eabae") { id colors multimedia } } ``` -------------------------------- ### Executing Aggregated Searches Source: https://apidocs.cooperhewitt.org/the-api Combines multiple aggregation requests and keyword searches. This allows applications to filter results while simultaneously retrieving facet counts for UI navigation. ```graphql { object(aggregations: ["department", "maker"]) { id summary } } { object(_general:"chair" aggregations: ["department", "maker"]) { id summary } } ``` -------------------------------- ### Cooper Hewitt API GraphQL Endpoint Source: https://apidocs.cooperhewitt.org/the-api The Cooper Hewitt API uses GraphQL. This is the primary endpoint for making API requests. Any GraphQL compatible client can be used. ```text https://api.cooperhewitt.org/ ``` -------------------------------- ### Exhibition API Source: https://apidocs.cooperhewitt.org/the-api Provides access to exhibition data, including details about staged exhibitions and displayed objects, with search and sort options. ```APIDOC ## Exhibitions The Exhibitions dataset provides a record of the many exhibitions that the Cooper Hewitt Museum has staged. ### Request Example ```graphql { exhibition { category collectionsOnlineId id identifier label location summary title object { id summary } } } ``` ### Searchable Fields - **general** (string) - **category** (string) - **id** (string) - **identifier** (string) - **label** (string) - **location** (string) - **locationId** (string) - **summary** (string) ### Sortable Fields - **id** (string) - **summary** (string) ``` -------------------------------- ### Query Exhibitions and Locations Source: https://apidocs.cooperhewitt.org/the-api Accesses exhibition records and location data to understand object placement or display history. Both entities support specific search and sort parameters. ```graphql { exhibition { title location object { id summary } } location { site title description } } ``` -------------------------------- ### Tag API Source: https://apidocs.cooperhewitt.org/the-api Access taxonomic grouping data for items in the collection, including tags, with search options. ```APIDOC ## Tags The items in the Cooper Hewitt’s collection have three levels of taxonomic grouping “Terms” and “Tags”. ### Request Example ```graphql { tag { id name summary } } ``` ### Searchable Fields - **id** (string) - **summary** (string) ``` -------------------------------- ### Querying Term Data Source: https://apidocs.cooperhewitt.org/the-api Retrieves detailed information about terms including their hierarchy, ID, and thesaurus classification. This query is used to fetch structured metadata for specific terms. ```graphql { term { hierarchy id parent summary term thesaurus } } ```