Design Museum Gent API
Home
endpoints
policy
Github
Swagger
Home
endpoints
policy
Github
Swagger
  • Design Museum Gent API Endpoints

Design Museum Gent API

The Design Museum Gent API provides access to collection data, agents, concepts, exhibitions, and curated sets. Data is exposed in JSON-LD format, making use of Linked Art, CIDOC-CRM, and OSLO standards.


Overview

Within the REST service (V1) we distinguish two main categories:

  • Collections: Paginated lists of objects sharing a similar schema, e.g., all objects of a certain type, filtered by color, or on display.
  • Single entities: Metadata for a single object, agent, concept, or exhibition, used to populate subject pages or detailed views.

Collections endpoints support pagination and filters. Single entities are retrieved using unique identifiers.


Collections

Pagination

Collection endpoints use Hydra Core Vocabulary for pagination. Each response includes a hydra:view component:

FieldDescription
hydra:firstLink to the first page
hydra:lastLink to the last page
hydra:previousLink to the previous page (null if first page)
hydra:nextLink to the next page (null if last page)

EDTF

Time-based fields use the Extended Date/Time Format (EDTF) to describe precise periods. See the official documentation for details.


Fetching Data Examples

Shell

curl -H "Accept: application/json" \
  "https://data.designmuseumgent.be/v1/id/objects?fullRecord=true&license=ALL&pageNumber=1"

python

endpoint="https://data.designmuseumgent.be/v1/id/exhibitions" # url to start crawl

def connect(endpoint): 
  r = requests.get(endpoint)
  #check status code 
  if r.status_code == 200:
    data = r.json()
    return data 
  else:
    print("error connecting to API")

def crawl(endpoint): 
  payload = connect(endpoint)
  print(payload["hydra:view"]["@id"])
  ## DO SOMETHING HERE 
  
  
  # iterate over pages of payload
  if payload["hydra:view"].get("hydra:next"):
      print("next page: " + payload["hydra:view"]["hydra:next"])
      crawl(payload["hydra:view"]["hydra:next"])
  else:
      print(payload)
      print("done")

JavaScript

const endpoint = 'https://data.designmuseumgent.be/v1/id/objects';

async function connect(endpoint) {
    try {
        const response = await fetch(endpoint);
        if (response.ok) {
            return await response.json();
        } else {
            console.error('Error connecting to API');
            return null;
        }
    } catch (error) {
        console.error('Error:', error);
        return null;
    }
}

async function crawl(endpoint) {
    const payload = await connect(endpoint);
    if (!payload) return;

    console.log(payload["hydra:view"]["@id"]);

    // DO SOMETHING HERE WITH THE PAYLOAD

    if (payload["hydra:view"]["hydra:next"]) {
        console.log("next page: " + payload["hydra:view"]["hydra:next"]);
        await crawl(payload["hydra:view"]["hydra:next"]);
    } else {
        console.log(payload);
        console.log("done");
    }
}

crawl(endpoint);

objects

The objects collection API provides access to all the published objects in the collection of Design Museum Gent. The number of exposed objects grows daily. Currently, 7761 have been exposed.

endpoint:

GET https://data.designmuseumgent.be/v1/id/objects

response format

The API returns JSON-LD formatted data with the following context:

  • Cultureel Erfgoed Object (OSLO)
  • Cultureel Erfgoed Event (OSLO)
  • Hydra Core Vocabulary
codedescription
200succesful request containing a paginated collection of all the objects (metadata + digital reproduction) in JSON-LD format making use of Linked Art and CIDOC-CRM
422the syntax of the GET request is correct but the record doesn't exist.
429rate limit exceeed

filters

ParameterDescriptionExample
pageNumberPage number (starts at 1)?pageNumber=1
itemsPerPageNumber of objects per page?itemsPerPage=10
fullRecordShow complete record?fullRecord=true
licenseFilter by license type?license=ALL
onDisplayReturn only items that are currently on display (ex:onDisplay = true)?onDisplay=true
hasImageFilter out the items that have a digital reproduction?hasImage=true
colorsInclude extracted color information (ex:colors, ex:colorNames)?colors=true

These filters can be combined. To combine a filter they can be chained using the & character. The example below shows how to combine the filters onDisplay and hasImage to retrieve only objects that are on display and have a digital reproduction.

GET https://data.designmuseumgent.be/v1/id/objects?onDisplay=true&hasImage=true

entities

  • gecureerdeSet.bestaatUit contains an array with single entities. For further information on how to handle these objects nd what they contain take a look at the object API.
additional metadata

The following additional metadata is exposed for each object using the filters described above:

  • ex:colors: contains an array with colors that are detected in the digital reproduction using open-cv. These colors are returned as hex values.
  • ex:colorNames: returns an array of https://www.w3schools.com/colors/colors_names.asp. These are used to cluster the objects in a more manageable and indexable fashion (instead of having all possible HEX values). A full list of the used css colors and there corresponding HEX code can be retrieved using the color-api.
  • ex:onDisplay: returns a boolean value indicating whether the object is currently on display or not.

non-public objects

the objects collection api only contains objects that have been made publicly available. For specific cases and applications the museum can make an exception and provide access to the whole collection (including non-public objects). This API however, is only made accessible on demand and needs a specific API Key.

endpoint:

GET https://data.designmuseumgent.be/v1/id/private-objects/?apiKey=API_KEY

agents

the Agents collections API provides access to all the agents in the collection of Design Museum Gent. This means that the API contains information on artists, curators, organizations, ... that have contributed to, or are related to objects in the collection.

endpoint:

GET https://data.designmuseumgent.be/v1/id/agents

response format

The API returns JSON-LD formatted data with the following context:

  • Cultureel Erfgoed Object (OSLO)
  • Cultureel Erfgoed Event (OSLO)
  • Hydra Core Vocabulary
codedescription
200succesful request containing a paginated collection of all the agents (metadata) in JSON-LD format making use of Linked Art and CIDOC-CRM
422the syntax of the GET request is correct but the record doesn't exist.
429rate limit exceeed

filters

ParameterDescriptionExample
pageNumberPage number (starts at 1)?pageNumber=1
itemsPerPageNumber of objects per page?itemsPerPage=10
fullRecordShow complete record?fullRecord=true

entities

  • gecureerdeSet.bestaatUit contains an array with single entities. For further information on how to handle these objects nd what they contain take a look at the agent API.

concepts

the concepts collection API provides access to all the concepts in the collection of Design Museum Gent. This means that the API contains information on concepts that are used to describe objects in the collection.

endpoint:

GET https://data.designmuseumgent.be/v1/id/concepts

response format

the API returns a JSON-LD formatted object with the following context:

  • Generiek Basis (OSLO)
  • Hydra Core Vocabulary
  • CIDOC-CRM vocabulary
  • Linked Art vocabulary
codedescription
200succesful request containing a paginated collection of all the concepts (metadata in JSON-LD format making use of Linked Art and CIDOC-CRM

filters

ParameterDescriptionExample
pageNumberPage number (starts at 1)?pageNumber=1
itemsPerPageNumber of objects per page?itemsPerPage=10
fullRecordShow complete record?fullRecord=true

entities

gecureerdeSet.bestaatUit contains an array with single entities. For further information on how to handle these objects nd what they contain take a look at the concept API.


exhibitions

The exhibition collection API provides access to all the exhibitions in the collection of Design Museum Gent. This means that the API contains information on exhibitions that are related to objects in the collection. The Exhibition API also exposes relationships to objects from the collection shown in these exhibitions.

endpoint:

GET https://data.designmuseumgent.be/v1/id/exhibitions

response format

the API returns JSON-LD formatted data with the following context:

  • Cultureel Erfgoed Object (OSLO)
  • Cultureel Erfgoed Event (OSLO)
codedescription
200successful request containing a paginated collection of all the exhibitions (metadata) and links to to objects in the collection shown at this exhibition.

filters

ParameterDescriptionExample
pageNumberPage number (starts at 1)?pageNumber=1
itemsPerPageNumber of objects per page?itemsPerPage=10
fullRecordShow complete record?fullRecord=true

entities

gecureerdeSet.bestaatUit contains an array with single entities. For further information on how to handle these objects nd what they contain take a look at the exhibition API.

single entities

object

the object API provides access to information on a single object in the collection. This object can be retrieved using the corresponding identifier.

GET https://data.designmuseumgent.be/v1/id/object/{identifier}

response format

the API returns a JSON-LD formatted object with the following context:

  • Cultureel Erfgoed Object (OSLO)
  • Cultureel Erfgoed Event (OSLO)
  • Hydra Core Vocabulary
  • CIDOC-CRM vocabulary
  • Linked Art vocabulary

codedescription
200Returns a JSON-LD object containing exhaustive metadata on a single object from the collection of Design Museum Gent. The metadata exposes relationships to other data objects that are published by the museum such as other objects, agents, concepts, exhibitions, etc. Based on the parameters, this will be a complex object or an easy abstraction of the metadata of the object.
422the syntax of the GET request is correct but the record doesn't exist.
410the object has been permantly removed
429rate limit exceeed
metadata

note: although we try to provide a complete record, some fields are not always filled. In that case the fields are not in the returned metadata scheme. for a full overview of the scheme, please refer to the Swagger documentation.

Basic Identification
FieldDescriptionExample
@idUnique URI of the object"https://stad.gent/id/mensgemaaktobject/dmg/530004060/..."
@typeObject type (CIDOC-CRM class)"http://www.cidoc-crm.org/cidoc-crm/E22_Man-Made_Object"
prov:generatedAtTimeTimestamp of record generation"2023-12-06T00:01:11.291Z"
Object Identification
FieldDescriptionExample
ns/adms#identifierArray of identification numbers
└── prirefInternal database reference"530004060"
└── objectnummerPublic object number"0019_ROOD"
Descriptive Information
FieldDescriptionExample
cidoc-crm/P102_has_titleTitle of the object{"@value": "Opklapbare speeltafel met inlegwerk", "@language": "nl"}
cidoc-crm/P3_has_noteDescriptive text{"@value": "Gesloten is het tafelblad...", "@language": "nl"}
Physical Properties
FieldDescriptionExample
cidoc-crm/P43_has_dimensionDimensionsArray of height, width, depth
└── valueNumeric value"76.6"
└── unitTextUnit of measurement"cm"
└── typeType of measurement"hoogte", "breedte", "diepte"
Production & Provenance
FieldDescriptionExample
cidoc-crm/P108i_was_produced_byProduction information
└── P4_has_time-spanProduction period"1900/1920"
cidoc-crm/P50_has_current_keeperCurrent owner"http://www.wikidata.org/entity/Q1809071"
Digital Representation
FieldDescriptionExample
cidoc-crm/P129i_is_subject_ofLink to digital object
└── @idIIIF manifest URL"https://api.collectie.gent/iiif/presentation/v2/manifest/dmg:0019_ROOD"
Related objects

The objects in the collection are structured as "Koepelrecords" (object that has parts but is clustered for logistic reasons) and "Enkelvoudig records" (single entities). The API exposes links to the objects in the collection that are related to the object in question. For example a set of cutlery is a "koepelrecord" that has parts (cutlery pieces) that are related to the set of cutlery. The API exposes links to the parts of the set of cutlery.

these relationships are exposed in the following fields:

if it has parts (koepelrecord) fe. 2009-0082_0-8

"crm:P46_has_component": [
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_1-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_2-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_3-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_4-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_5-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_6-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_7-8"
    },
    {
      "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_8-8"
    }
  ]

if it is part of a set (koepelrecord): fe. 2009-0082_8-8

"crm:P46i_forms_part_of": {
    "@id": "https://data.designmuseumgent.be/v1/id/object/2009-0082_0-8"
  }

filters

ParameterDescriptionExample
easyswitch between FULL RECORD containing ALL METADATA or an abstracted, simplified view of the RECORD.?easy=false

agent

the agent API provides access to information on a single agent related to the collection of Design Museum Gent. This agent record can be retrieved using its corresponding identifier (PID)

GET https://data.designmuseumgent.be/v1/id/agent/{PID}

response format

Basic Identification
FieldDescriptionExample
@idUnique URI of the agent (Stad Gent URI)"https://stad.gent/id/agent/530020619/..."
@typeType of agent"http://purl.org/dc/terms/Agent"
prov:generatedAtTimeTimestamp of record generation"2024-11-13T02:04:44.281Z"
owl:sameAsLink to external authority record"http://www.wikidata.org/entity/Q28871672"
Agent Identification
FieldDescriptionExample
ns/adms#identifierArray of identification numbers
└── prirefInternal database reference"530020619"
└── referentienummerReference number"DMG-A-02055"
Personal Information
FieldDescriptionExample
foaf:givenNameFirst name"Lionel"
foaf:familyNameLast name"Milton"
persoon#volledigeNaamFull name"Milton, Lionel"
persoon#geslachtGender"http://publications.europa.eu/resource/authority/human-sex/MALE"
Birth Information
FieldDescriptionExample
persoon#heeftGeboorteBirth details
└── datumBirth date"1974"
└── plaatsBirth place"http://vocab.getty.edu/tgn/7014214"
Nationality
FieldDescriptionExample
persoon#heeftNationaliteitNationality information
└── P3_has_noteNationality description{"@value": "Amerikaans", "@language": "nl"}
Administrative Information
FieldDescriptionExample
prov:wasAttributedToInstitution responsible for the record"http://www.wikidata.org/entity/Q1809071"
skos:inSchemeConceptual scheme the agent belongs to"https://stad.gent/id/conceptscheme/agent"
dcterms:isVersionOfLink to base record"https://stad.gent/id/agent/530020619"
Biography

If there is a Wikipedia page for the agent, the API will harvest the biography (snippet) from this page using the wikipedia API. This information is not always available and can be empty. Together with the biography, the API also exposes links to the Wikipedia page and license.

LanguageExample Note (truncated)SourceLicense
nlOlivetti (voluit: Ing. C. Olivetti & Co., SpA.) is een Italiaanse fabriek van computers, printers en andere kantoormachines. Oprichtingsjaar 1908…nl.wikipedia.orgCC BY-SA 4.0
enOlivetti S.p.A. is an Italian manufacturer of computers, tablets, smartphones, printers and other business products. Known for innovative design…en.wikipedia.orgCC BY-SA 4.0
frOlivetti S.p.A. est une société italienne fondée par Camillo Olivetti en 1908 à Ivrée…fr.wikipedia.orgCC BY-SA 4.0

example response:

[
  {
    "@value": "Olivetti (voluit: Ing. C. Olivetti & Co., SpA.) is een Italiaanse fabriek van computers, printers en andere kantoormachines.\nOlivetti is in 1908 nabij Turijn opgericht door Camillo Olivetti als fabriek van schrijfmachines...",
    "@language": "nl",
    "dcterms:source": "https://nl.wikipedia.org/wiki/Olivetti",
    "dcterms:license": "https://creativecommons.org/licenses/by-sa/4.0/"
  },
  {
    "@value": "Olivetti S.p.A. is an Italian manufacturer of computers, tablets, smartphones, printers and other such business products...",
    "@language": "en",
    "dcterms:source": "https://en.wikipedia.org/wiki/Olivetti",
    "dcterms:license": "https://creativecommons.org/licenses/by-sa/4.0/"
  },
  {
    "@value": "Olivetti S.p.A. est une société italienne fondée par Camillo Olivetti en 1908 à Ivrée...",
    "@language": "fr",
    "dcterms:source": "https://fr.wikipedia.org/wiki/Olivetti",
    "dcterms:license": "https://creativecommons.org/licenses/by-sa/4.0/"
  }
]

concept

The concept API provides access to information on a single concept related to the collection of Design Museum Gent. This concept record can be retrieved using its corresponding identifier (PID)

endpoint:

GET https://data.designmuseumgent.be/v1/id/concept/{CONCEPT-PID}

response format

Basic Information
FieldDescriptionExample
@idUnique URI of the exhibition (Stad Gent URI)"https://stad.gent/id/concept/530006321/2023-02-21T00:00:20.385Z"
@typeType of the record"skos:Concept"
prov:generatedAtTimeTimestamp of record generation"2024-11-13T02:04:44.281Z"
Concept Identification
FieldDescriptionExample
skos:prefLabelpreffered label of the concept"meubilair (objectnaam)"
owl:sameAsLink to external authority record"http://www.wikidata.org/entity/Q28871672"
skos:broaderLink to broader terms (parents) in the terminology list"https://stad.gent/id/concept/530009038"
skos:narrowerlink to narrower terms (childs) in the terminology list"https://stad.gent/id/concept/530010589"

exhibition

The exhibition API provides access to information on a single exhibition related to the collection of Design Museum Gent. This exhibition record can be retrieved using its corresponding identifier (PID)

endpoint:

GET https://data.designmuseumgent.be/v1/id/exhibition/{EXHIBITION-PID}

response format

Basic Identification
FieldDescriptionExample
@idUnique URI of the exhibition (Stad Gent URI)"https://stad.gent/id/agent/530020619/..."
@typeType of the record"prov:Activity"
prov:generatedAtTimeTimestamp of record generation"2024-11-13T02:04:44.281Z"
Exhibition Identification
FieldDescriptionExample
ns/adms#identifierArray of identification numbers
└── prirefInternal database reference"530020619"
└── referentienummerReference number"TE_1988-001"
"cidoc:P1_is_identified_by"title of the exhibition"Kunst en tapijt. Traditie en vernieuwing in België"
"cidoc:P4_has_time-span"period when the exhibition took place (EDTF)`"1988-03-18/1988-05-29"
Links to the Collection

This API exposes links to more information on the objects that were also shown in the exhibition.

FieldDescriptionExample
cidoc:P16_used_specific_object(array of) objects that are shown in the collection
└── cidoc:P102_has_titletitle of the object (in @value)"Kunst en tapijt. Traditie en vernieuwing in België"
ns/adms#identifierArray of identification numbers
└── prirefInternal database reference"536003710"
└── referentienummerReference number"TE_1988-001_Affiche"

curated sets

Next to the "traditional" datasets and endpoints that closely resemble the data model of the authentic data, we also provide curated sets of data that are more focused on a specific topic, or are the result of a specific project such as an artist commission.

color api

The color API provides access to objects from the collection indexed by color. Via this API you can find objects that are colored in a specific way. fe. all objects that are colored red.

endpoint:

GET https://data.designmuseumgent.be/v1/color-api/{color}

to retrieve a list of the colors we use to tag:

GET https://data.designmuseumgent.be/v1/colors/

pattern api

The patterns API provides access to a selection of patterns derived from our collection. These patterns can be used for creative purposes of different sorts and are sorted in different subcollections which will and can be expanded on the base of projects that make use of them.

endpoint:

GET https://data.designmuseumgent.be/v1/pattern-api?collection={SUBCOLLECTION}

subcollections

At this point the provided subcollections are:

  • tegels (tiles)
  • panelen (wooden panels)

for example:

GET https://data.designmuseumgent.be/v1/pattern-api?collection=tegels

returns only patterns derived from tiles from the collection.

response format

FieldDescriptionExample
@idUnique URI of the object from which the pattern has been substracted"https://data.designmuseumgent.be/v1/id/object/1976-0013"
imagecrop of the image, containing te pattern, using IIIF"https://api.collectie.gent/iiif/image/iiif/2/22e9971481d352e495535de1d87539a9-transcode-1976-0013.jpg/760,193,1960,1940/full/0/default.jpg"

billboardseries

The billboard series API provides access to information on the billboards that were shown at the museum in collaboration with 019.

endpoint:

GET https://data.designmuseumgent.be/v1/id/exhibitions/billboardseries

response format

Exhibition Information
FieldDescriptionExample
@typetype of the record"Activtiet"
"Entiteit.type"type of the entity (Exhibition)"http://vocab.getty.edu/aat/300417531"
"Gebeurtenis.tijd"period when the billboard was shown (EDTF)"2019-11-15/2020-01-24"
"Gebeurtenis.plaats"location where the billboard was shown (always Design Museum Gent)"https://www.wikidata.org/entity/Q1809071"
Billboard information

"Activiteit.gebruiktObject" exposes extra information on the Billboard that was shown; who made it, when was it made, what does it show as well as a link to the digital reproduction (documentation).

FieldDescriptionExample
"@type""type of the object (always human-made-object)"MensgemaaktObject"
"MensgemaaktObject.titel"title of the artwork shown on the billboard"Phantom Radio"
"MaterieelDing.productie"information on how/be whome the artwork is made
└── Activiteit.uitgevoerdDoormaker(s) of the artwork (also link to wikidata)"Talking Letterheads"
"MensgemaaktObject.beschrijving"description of the work (in both dutch and english)"An interview marathon by Phantom Radio with contemporary Belgian graphic designers, hosted by Gerard Herman & Dylan Belgrado…eroen Wille. Part of the exhibition Off the Grid. Belgian Graphic Design from the 1960s and 1970s as Seen by Sara De Bondt."
"Entiteit.isHetOnderwerpVan"link to the digital produciton of the installation"https://019-ghent.org/wp-content/uploads/2020/04/MDC_019_BBDMG_talkingletterheads_001_LR-1.jpg"

lost in diffusion

data dumps

We offer data dumps for our collection endpoints. If you would like to make use of this service please send a message to olivier.vandhuynslager@stad.gent, and we will provide you with an access token. With a token you can request a data dump using the following endpoint:

GET https://data.designmuseumgent.be/v1/dump/:type?apiKey=APIKEY

response format

the dump will generate and download a json-ld file of all the objects in that collection. The structure of that response is the same as defined in the corresponding collection. The desired collection can be defined in the URL request:

objects

GET https://data.designmuseumgent.be/v1/dump/objects?apiKey=APIKEY

agents

GET https://data.designmuseumgent.be/v1/dump/agents?apiKey=APIKEY

exhibitions

GET https://data.designmuseumgent.be/v1/dump/exhibitions?apiKey=APIKEY

concepts

GET https://data.designmuseumgent.be/v1/dump/concepts?apiKey=APIKEY

CHAI-T

A custom endpoint built for the project CHAI-T. This endpoint aggregates concepts data from partnering institutions (VAI, MoMU and Design Museum Gent) and provides a single endpoint for all concepts.

response format

Last Updated:: 11/28/25, 4:15 PM
Contributors: oliviervd