VeredAi

VeredAi Knowledge API

Search the VeredAi legal knowledge base programmatically: Dutch legislation at article level, case law with full decision texts and European legislation, complemented with live results from the official sources.

What you can build

Integrate up-to-date statutory articles and case law into your own applications, case management systems or internal tools. Search bilingually (Dutch and English), filter by jurisdiction and document type, and retrieve full documents with a verifiable source reference.

Authentication

Create an API key under Account, API keys. Every key is bound to exactly one workspace and requires a subscription with API access. Send the key as a Bearer token.

Authorization: Bearer vk_<jouw-sleutel>

Endpoints

GET /api/knowledge/searchq, lang (nl|en), jurisdiction (NL|BE|DE|EU), type (wetgeving|rechtspraak|eu|decentraal), area, law, date_from (JJJJ-MM-DD), date_to (JJJJ-MM-DD), limit (1-25), offset
GET /api/knowledge/documents/{uuid}id, source, external_id, title, summary, body, url, language, jurisdiction, law_area, document_type, decision_date
GET /api/knowledge/healthstatus, latency_ms, last_success_at, failures_24h

Example

curl -H "Authorization: Bearer vk_..." \
  "https://veredai.i-sight.nl/api/knowledge/search?q=transitievergoeding+ontslag&lang=nl&jurisdiction=NL&limit=5"

Response format

Every search result contains a clickable source URL, the external identifier (BWB number with article, ECLI or CELEX number) and metadata about language, jurisdiction and document type. The meta block shows the total, the consulted sources and the freshness of the internal knowledge index.

{
  "data": [
    {
      "id": "7f0c2b1e-2f56-4a3e-9a53-1c9f4f2a6b77",
      "source": "wetten.overheid.nl",
      "external_id": "BWBR0005290:673",
      "title": "Burgerlijk Wetboek Boek 7, artikel 673",
      "snippet": "De werkgever is aan de werknemer een transitievergoeding verschuldigd indien ...",
      "url": "https://wetten.overheid.nl/jci1.3:c:BWBR0005290&artikel=673",
      "language": "nl",
      "jurisdiction": "NL",
      "document_type": "wetsartikel",
      "decision_date": "",
      "score": 6
    }
  ],
  "meta": {
    "total": 14,
    "sources_consulted": ["wetten.overheid.nl", "Rechtspraak.nl"],
    "index_freshness": {"wetten": {"documents": 12500, "last_harvested": "2026-07-05 04:15:02"}}
  }
}

Code examples

The same call in PHP and JavaScript. Replace vk_... with your own API key.

PHP

$ch = curl_init('https://veredai.i-sight.nl/api/knowledge/search?q=' . urlencode('transitievergoeding ontslag') . '&limit=5');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer vk_...'],
]);
$result = json_decode((string) curl_exec($ch), true);
curl_close($ch);

JavaScript

const response = await fetch(
  'https://veredai.i-sight.nl/api/knowledge/search?q=transitievergoeding+ontslag&limit=5',
  { headers: { Authorization: 'Bearer vk_...' } }
);
const result = await response.json();

Limits and costs

Each key has a configurable rate limit per minute. Depending on the platform configuration, credits may be deducted from the workspace per request.

Administrators can configure that a fixed number of requests together costs one credit, for example 1 credit per 10 requests. The current limit and costs for your workspace are shown on the Account, API keys page.

Error handling

Errors always follow the same JSON format with a code and a readable message.

{"error": {"code": "rate_limit_exceeded", "message": "..."}}
401 missing_api_key | 401 invalid_api_key | 402 insufficient_credits
403 plan_required | 404 not_found | 422 invalid_parameters | 429 rate_limit_exceeded

Full OpenAPI specification