Design Museum Gent API
Home
Developers
Policy
Github
Swagger
Home
Developers
Policy
Github
Swagger
  • Overview
  • DCAT
  • Overview
  • Object
  • Objects
  • Exhibition
  • Exhibitions
  • Agent
  • Agents
  • Concept
  • Concepts
  • Colors
  • Types
  • Nationalities
  • Materials

Concepts

Info

The concepts collection endpoint provides paginated access to the full Design Museum Gent thesaurus. Concepts are used to classify and describe objects in the collection — they include materials, techniques, object types, and other descriptive terms. For full metadata on a single concept, use the concept endpoint.

endpoint:

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

Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
itemsPerPageinteger10Number of concepts per page (max 100)
fullRecordbooleanfalseReturn full CIDOC-CRM records instead of lightweight stubs
modifiedSincedate—Only return records modified on or after this date. Format: YYYY-MM-DD
qstring—Full text search on preferred labels and scope notes
languagestring—Only return concepts with a label in the specified language. Supported: NLD, FRA, ENG

Full text search — ?q=

The q parameter supports natural language search syntax:

QueryDescriptionExample
Single wordMatches any concept containing the word?q=glas
Multiple wordsMatches concepts containing all words?q=roze glas
Exact phraseMatches the exact phrase?q="geschilderd glas"
ORMatches concepts containing either word?q=glas OR keramiek
NegationExcludes concepts containing the word?q=glas -keramiek

Search covers Dutch, French and English preferred labels and scope notes. Labels are weighted higher than scope notes.

GET https://data.designmuseumgent.be/v2/id/concepts?q=glas
GET https://data.designmuseumgent.be/v2/id/concepts?q="geschilderd glas"
GET https://data.designmuseumgent.be/v2/id/concepts?q=glas&fullRecord=true

Examples:

GET https://data.designmuseumgent.be/v2/id/concepts?page=1&itemsPerPage=10
GET https://data.designmuseumgent.be/v2/id/concepts?page=1&itemsPerPage=50&fullRecord=true

Incremental harvesting

Use modifiedSince combined with fullRecord=true to efficiently harvest only records that have changed since your last sync:

GET https://data.designmuseumgent.be/v2/id/concepts?modifiedSince=2026-05-01&fullRecord=true&itemsPerPage=50

The parameter is preserved in all Hydra pagination links so you can follow hydra:next as normal. An invalid date format returns 400 Bad Request.


Response format

Data is returned as a Hydra Collection with CIDOC-CRM + SKOS members.

PrefixNamespace
crmhttp://www.cidoc-crm.org/cidoc-crm/
skoshttp://www.w3.org/2004/02/skos/core#
hydrahttp://www.w3.org/ns/hydra/core#
rdfshttp://www.w3.org/2000/01/rdf-schema#
owlhttps://www.w3.org/2002/07/owl#
CodeDescription
200Successful request returning a paginated collection
500Server error

Pagination — hydra:view

FieldDescription
hydra:totalItemsTotal number of concepts in the thesaurus
hydra:firstLink to the first page
hydra:lastLink to the last page
hydra:previousLink to the previous page (omitted on first page)
hydra:nextLink to the next page (omitted on last page)

Harvesting the full thesaurus

To harvest all concepts, start at page 1 and follow hydra:next until it is absent:

const endpoint = 'https://data.designmuseumgent.be/v2/id/concepts?fullRecord=true&itemsPerPage=50';

async function harvest(url) {
    const res = await fetch(url);
    const data = await res.json();

    // do something with data["hydra:member"]

    if (data["hydra:view"]["hydra:next"]) {
        await harvest(data["hydra:view"]["hydra:next"]);
    } else {
        console.log('harvest complete')
    }
}

harvest(endpoint);

Pagination

See the objects documentation for full pagination documentation including Link header support and harvesting examples. The same pattern applies to all collection endpoints.


Members — hydra:member

Lightweight stub (default)

By default each member contains only the minimum needed to identify the concept and resolve to its full record:

FieldDescriptionExample
@idInternal DMG URI — resolvable to full recordhttps://data.designmuseumgent.be/v2/id/concept/530000049
@typeCIDOC-CRM classcrm:E55_Type
rdfs:labelDutch preferred label"pepervat"
"hydra:member": [
    {
        "@id": "https://data.designmuseumgent.be/v2/id/concept/530000049",
        "@type": "crm:E55_Type",
        "rdfs:label": "pepervat"
    },
    {
        "@id": "https://data.designmuseumgent.be/v2/id/concept/530000004",
        "@type": "crm:E55_Type",
        "rdfs:label": "MDF"
    }
]

Full record (?fullRecord=true)

When fullRecord=true each member contains the complete CIDOC-CRM + SKOS JSON-LD record including multilingual labels, scope notes, authority links, and broader/narrower hierarchy. The structure is identical to the single concept endpoint.

Multilingual labels

Labels and scope notes are available in Dutch, French and English where translations exist. French and English translations are being added as part of an ongoing translation project — not all concepts have translations yet.

Performance

fullRecord=true returns larger payloads as each record includes the full JSON-LD including hierarchy. Keep itemsPerPage at 50 or lower when using fullRecord=true.


Example response (lightweight)

{
    "@context": {
        "crm": "http://www.cidoc-crm.org/cidoc-crm/",
        "skos": "http://www.w3.org/2004/02/skos/core#",
        "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
        "hydra": "http://www.w3.org/ns/hydra/core#",
        "owl": "https://www.w3.org/2002/07/owl#"
    },
    "@id": "https://data.designmuseumgent.be/v2/id/concepts",
    "@type": "hydra:Collection",
    "hydra:totalItems": 5832,
    "hydra:view": {
        "@id": "https://data.designmuseumgent.be/v2/id/concepts?page=1&itemsPerPage=10",
        "@type": "hydra:PartialCollectionView",
        "hydra:first": "https://data.designmuseumgent.be/v2/id/concepts?page=1&itemsPerPage=10",
        "hydra:last": "https://data.designmuseumgent.be/v2/id/concepts?page=584&itemsPerPage=10",
        "hydra:next": "https://data.designmuseumgent.be/v2/id/concepts?page=2&itemsPerPage=10"
    },
    "hydra:member": [
        {
            "@id": "https://data.designmuseumgent.be/v2/id/concept/530000004",
            "@type": "crm:E55_Type",
            "rdfs:label": "MDF"
        },
        {
            "@id": "https://data.designmuseumgent.be/v2/id/concept/530000049",
            "@type": "crm:E55_Type",
            "rdfs:label": "pepervat"
        }
    ]
}
Last Updated:: 6/1/26, 9:13 AM
Contributors: Olivier.VanD'huynslager
Prev
Concept
Next
Colors