API Documentatie
De DAMS Collection API biedt programmatische toegang tot Open Vlacc. Deze RESTful API stelt ontwikkelaars in staat om entiteiten te beheren, te zoeken en te integreren met externe systemen.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Base URL | … |
| Versie | 1.0.0 |
| Authenticatie | Bearer Token (OAuth 2.0) |
| Formaten | JSON, JSON-LD, CSV, RDF, Turtle, N-Triples |
Endpoints
De API biedt de volgende endpoints:
Config
| Methode | Endpoint | Beschrijving |
|---|---|---|
GET | /config | Haal configuratie op |
Entities
| Methode | Endpoint | Beschrijving |
|---|---|---|
GET | /entities | Lijst van entiteiten ophalen |
POST | /entities | Nieuwe entiteit aanmaken |
POST | /entities/filter | Entiteiten filteren |
POST | /entities/filter/resolved | Entiteiten filteren en relaties resolven |
GET | /entities/{id} | Specifieke entiteit ophalen |
PUT | /entities/{id} | Entiteit volledig bijwerken |
PATCH | /entities/{id} | Entiteit gedeeltelijk bijwerken |
DELETE | /entities/{id} | Entiteit verwijderen |
GET | /entities/wem/{manifestation_id} | WEM data voor manifestatie |
Authenticatie
De API gebruikt Bearer Token authenticatie. Voeg je token toe aan elke request:
curl -X GET \
"__API_BASE_URL__/entities" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Response formaten
De API ondersteunt meerdere output formaten via de Accept header:
| Accept Header | Formaat |
|---|---|
application/json | JSON (standaard) |
application/ld+json | JSON-LD (Linked Data) |
text/csv | CSV |
application/rdf+xml | RDF/XML |
text/turtle | Turtle |
application/n-triples | N-Triples |
Voorbeeld: JSON-LD response
curl -X GET \
"__API_BASE_URL__/entities" \
-H "Accept: application/ld+json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Paginering
Gebruik limit en skip voor paginering:
# Eerste 20 resultaten
/entities?limit=20&skip=0
# Volgende 20 resultaten
/entities?limit=20&skip=20Filteren
Types
Filter op entiteiten hun subtypes:
Werken
/entities?type=work_map
/entities?type=work_music
/entities?type=work_serial
/entities?type=work_footage
/entities?type=work_mixed_material
/entities?type=work_word
/entities?type=work_computer_fileExpressies
/entities?type=easy_reading
/entities?type=reading
/entities?type=listening
/entities?type=playing
/entities?type=watching
/entities?type=orientingManifestaties
/entities?type=manifestation_map
/entities?type=manifestation_music
/entities?type=manifestation_serial
/entities?type=manifestation_footage
/entities?type=manifestation_mixed_material
/entities?type=manifestation_word
/entities?type=manifestation_computer_fileHaal bewerkte entiteiten op
Met hulp van een date filter kan er in Elody gemakkelijk gefilterd worden op velden die een datum bevatten.
Om bevoorbeeld entiteiten op te halen die bewerkt zijn sinds een bepaalde datum, kan volgende filter ingesteld worden:
{
"type": "date",
"key": ["vlacc:1|audit.updated.at"],
"value": {"min": "2026-03-26", "included": true},
"match_exact": true
}Includedwijst op de vraag of entiteiten die bewerkt zijn op de meegegeven datum ook mee in het resultaat komen te staan.- Door een
maxkey-value toe te voegen bij de value van de filter kan er tussen 2 datums gefilterd worden. - Deze filter kan met een
POSTop het endpointentities/filterofentities/filter/resolveduitgevoerd worden.- TIP: Hierbij moet steeds een
type- of selection filtertoegevoegd worden om de betrokken entiteitstypes mee te geven.
- TIP: Hierbij moet steeds een
Relaties langs beide kanten
Een relatie wordt maar bij één van beide entiteiten opgeslagen. entities/filter/resolved geeft standaard ook de relaties terug die bij de gerelateerde entiteit opgeslagen zijn, bijvoorbeeld de werken van een persoon of de manifestaties van een expressie.
- Zo'n relatie heeft
"direction": "inbound". - Per relatietype worden maximaal 20 inkomende relaties teruggegeven. Zijn er meer, dan staat het relatietype met het totale aantal in
truncated_relationsvan de entiteit. - Met
?inbound_limit=50kan dat maximum aangepast worden. - Verwijst een entiteit via meerdere relatietypes naar dezelfde entiteit (bv. dezelfde persoon als auteur en als onderwerp), dan staan de gegevens van de gerelateerde entiteit (o.a.
value,label) op het hoogste niveau en de gegevens die per relatietype verschillen (o.a.metadata,direction) in eenby_typeobject, met het relatietype als key. Zo'n relatie heeft dan geentypeop het hoogste niveau.by_typestaat er enkel als er meerdere relatietypes zijn. - Met
?resolve_inbound=falseworden enkel de opgeslagen relaties teruggegeven.
"truncated_relations": {"ref_authors": 51},
"relations": {
"CORP-ZO35Q6A": {
"label": "corporation",
"value": "The Beatles",
"by_type": {
"ref_authors": {
"metadata": [{"key": "function_indication", "value": ["aut"]}, {"key": "main_author", "value": true}]
},
"ref_subjects": {
"metadata": [{"key": "on_label", "value": true}, {"key": "subject_type", "value": "vtr"}]
}
}
},
"E-0HWYJYPLDB": {
"type": "ref_work",
"direction": "inbound",
"label": "reading",
"value": "..."
}
}Code voorbeelden
Python
import requests
BASE_URL = "__API_BASE_URL__"
TOKEN = "your_access_token"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Accept": "application/json"
}
# Haal alle werken op
response = requests.get(
f"{BASE_URL}/entities",
headers=headers,
params={"type": "work", "limit": 10}
)
entities = response.json()
for entity in entities:
print(entity["title"])JavaScript
const BASE_URL = '__API_BASE_URL__';
const TOKEN = 'your_access_token';
async function getEntities(type = 'work', limit = 10) {
const response = await fetch(
`${BASE_URL}/entities?type=${type}&limit=${limit}`,
{
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Accept': 'application/json'
}
}
);
return response.json();
}
// Gebruik
const works = await getEntities('work', 10);
console.log(works);Interactive API Reference
Bekijk de volledige interactieve API documentatie:
Interactieve documentatie
Ga naar de API Reference voor de volledige interactieve API documentatie met Scalar.
Support
- 📧 Developers: developers@inuits.eu
- 📖 Source: GitLab Repository