Agents
Info
The agents collection endpoint provides paginated access to all agents (persons and organisations) related to the Design Museum Gent collection. For full metadata on a single agent, use the agent endpoint.
endpoint:
GET https://data.designmuseumgent.be/v2/id/agents
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
itemsPerPage | integer | 10 | Number of agents per page (max 100) |
fullRecord | boolean | false | Return full CIDOC-CRM records instead of lightweight stubs |
modifiedSince | date | — | Only return records modified on or after this date. Format: YYYY-MM-DD |
q | string | — | Full text search on agent names and IDs |
nationality | string | — | Filter by nationality (Dutch country name). Comma-separated for multiple (AND). Use /v2/id/nationalities to discover available values |
role | string | — | Filter by role in the collection. Available: designer, producer. Use /v2/id/roles to discover available values |
hasBio | boolean | false | Only return agents that have at least one Wikipedia biography |
language | string | — | Filter by available Wikipedia biography language. Only return agents that have a biography in the specified language. Supported: NLD, FRA, ENG |
Full text search — ?q=
The q parameter supports natural language search syntax:
| Query | Description | Example |
|---|---|---|
| Single word | Matches any record containing the word | ?q=Sabino |
| Multiple words | Matches records containing all words | ?q=Andries Copier |
| Exact phrase | Matches the exact phrase | ?q="Andries Dirk Copier" |
| OR | Matches records containing either word | ?q=Sabino OR Memphis |
| Negation | Excludes records containing the word | ?q=designer -onbekend |
GET https://data.designmuseumgent.be/v2/id/agents?q=Sabino
GET https://data.designmuseumgent.be/v2/id/agents?q="Andries Dirk Copier"
GET https://data.designmuseumgent.be/v2/id/agents?q=Sabino&fullRecord=true
Biography filters
Use hasBio and language to filter agents by Wikipedia coverage:
# agents with any Wikipedia biography
GET https://data.designmuseumgent.be/v2/id/agents?hasBio=true
# agents with a French biography
GET https://data.designmuseumgent.be/v2/id/agents?language=FRA
# Belgian designers with a French biography
GET https://data.designmuseumgent.be/v2/id/agents?language=FRA&nationality=België&role=designer
# how many agents have a French biography?
GET https://data.designmuseumgent.be/v2/id/agents?language=FRA&itemsPerPage=1
# → check hydra:totalItems
?language=FRA is sufficient on its own — it already implies a biography exists. ?hasBio=true is useful when you want agents with any biography regardless of language.
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/agents?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.
Examples:
GET https://data.designmuseumgent.be/v2/id/agents?page=1&itemsPerPage=10
GET https://data.designmuseumgent.be/v2/id/agents?page=1&itemsPerPage=50&fullRecord=true
GET https://data.designmuseumgent.be/v2/id/agents?nationality=België&role=designer
GET https://data.designmuseumgent.be/v2/id/agents?hasBio=true&language=FRA
Response format
Data is returned as a Hydra Collection with CIDOC-CRM members.
| Prefix | Namespace |
|---|---|
crm | http://www.cidoc-crm.org/cidoc-crm/ |
hydra | http://www.w3.org/ns/hydra/core# |
rdfs | http://www.w3.org/2000/01/rdf-schema# |
owl | https://www.w3.org/2002/07/owl# |
| Code | Description |
|---|---|
| 200 | Successful request returning a paginated collection |
| 400 | Invalid modifiedSince date format |
| 500 | Server error |
Pagination — hydra:view
| Field | Description |
|---|---|
hydra:totalItems | Total number of agents matching the current filters |
hydra:first | Link to the first page |
hydra:last | Link to the last page |
hydra:previous | Link to the previous page (omitted on first page) |
hydra:next | Link to the next page (omitted on last page) |
All active filters are preserved in pagination links. An RFC 8288 Link header is also included on every response.
Harvesting the full collection
async function harvest(url) {
const res = await fetch(url)
const data = await res.json()
// process data["hydra:member"]
if (data["hydra:view"]["hydra:next"]) {
await new Promise(r => setTimeout(r, 250)) // polite delay
await harvest(data["hydra:view"]["hydra:next"])
}
}
harvest('https://data.designmuseumgent.be/v2/id/agents?fullRecord=true&itemsPerPage=50')
Members — hydra:member
Lightweight stub (default)
| Field | Description | Example |
|---|---|---|
@id | Internal DMG URI — resolvable to full record | https://data.designmuseumgent.be/v2/id/agent/DMG-A-00162 |
@type | CIDOC-CRM class | crm:E39_Actor |
rdfs:label | Default label (full name) | "Memphis" |
Full record (?fullRecord=true)
Each member contains the complete CIDOC-CRM JSON-LD record including authority links, birth/death events, nationality, Wikipedia biographies, thumbnail image and exhibition participation. The structure is identical to the single agent endpoint.
Info
?fullRecord=true with itemsPerPage=50 is the recommended approach for bulk harvesting.
Warning
Full records return significantly larger payloads. Use a lower itemsPerPage if you experience timeouts.
Example response (lightweight)
{
"@context": {
"crm": "http://www.cidoc-crm.org/cidoc-crm/",
"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/agents",
"@type": "hydra:Collection",
"hydra:totalItems": 5432,
"hydra:view": {
"@id": "https://data.designmuseumgent.be/v2/id/agents?page=1&itemsPerPage=10",
"@type": "hydra:PartialCollectionView",
"hydra:first": "https://data.designmuseumgent.be/v2/id/agents?page=1&itemsPerPage=10",
"hydra:last": "https://data.designmuseumgent.be/v2/id/agents?page=544&itemsPerPage=10",
"hydra:next": "https://data.designmuseumgent.be/v2/id/agents?page=2&itemsPerPage=10"
},
"hydra:member": [
{
"@id": "https://data.designmuseumgent.be/v2/id/agent/DMG-A-00001",
"@type": "crm:E39_Actor",
"rdfs:label": "Copier, Andries Dirk"
},
{
"@id": "https://data.designmuseumgent.be/v2/id/agent/DMG-A-00002",
"@type": "crm:E39_Actor",
"rdfs:label": "Memphis"
}
]
}