Skip to content

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 ​

EigenschapWaarde
Base URL…
Versie1.0.0
AuthenticatieBearer Token (OAuth 2.0)
FormatenJSON, JSON-LD, CSV, RDF, Turtle, N-Triples

Endpoints ​

De API biedt de volgende endpoints:

Config ​

MethodeEndpointBeschrijving
GET/configHaal configuratie op

Entities ​

MethodeEndpointBeschrijving
GET/entitiesLijst van entiteiten ophalen
POST/entitiesNieuwe entiteit aanmaken
POST/entities/filterEntiteiten filteren
POST/entities/filter/resolvedEntiteiten 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:

bash
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 HeaderFormaat
application/jsonJSON (standaard)
application/ld+jsonJSON-LD (Linked Data)
text/csvCSV
application/rdf+xmlRDF/XML
text/turtleTurtle
application/n-triplesN-Triples

Voorbeeld: JSON-LD response ​

bash
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:

bash
# Eerste 20 resultaten
/entities?limit=20&skip=0

# Volgende 20 resultaten
/entities?limit=20&skip=20

Filteren ​

Types ​

Filter op entiteiten hun subtypes:

Werken ​

bash
/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_file

Expressies ​

bash
/entities?type=easy_reading
/entities?type=reading
/entities?type=listening
/entities?type=playing
/entities?type=watching
/entities?type=orienting

Manifestaties ​

bash
/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_file

Haal 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:

json
    {
        "type": "date",
        "key": ["vlacc:1|audit.updated.at"],
        "value": {"min": "2026-03-26", "included": true},
        "match_exact": true
    }
  • Included wijst op de vraag of entiteiten die bewerkt zijn op de meegegeven datum ook mee in het resultaat komen te staan.
  • Door een max key-value toe te voegen bij de value van de filter kan er tussen 2 datums gefilterd worden.
  • Deze filter kan met een POST op het endpoint entities/filter of entities/filter/resolved uitgevoerd worden.
    • TIP: Hierbij moet steeds een type- of selection filter toegevoegd worden om de betrokken entiteitstypes mee te geven.

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_relations van de entiteit.
  • Met ?inbound_limit=50 kan 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 een by_type object, met het relatietype als key. Zo'n relatie heeft dan geen type op het hoogste niveau. by_type staat er enkel als er meerdere relatietypes zijn.
  • Met ?resolve_inbound=false worden enkel de opgeslagen relaties teruggegeven.
json
"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 ​

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 ​

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 ​

Powered by Elody - Open Source Semantic Data Platform