REST-API

Die API (Premium) liefert Suche, Verfahrensdetails und Watchlist-Verwaltung als JSON. Authentifizierung per API-Key (Header Authorization: Bearer im_live_…).

Endpunkte (v1)

GET /api/v1/searchVolltext-/Filter-Suche
GET /api/v1/proceedings/{id}Verfahrensdetail
GET/POST/DELETE /api/v1/watchlistWatchlist verwalten
GET/POST/DELETE /api/v1/webhooksWebhook-Endpunkte verwalten

Rate-Limit: 120 Anfragen/Minute. OpenAPI-Spezifikation unter /api/v1/openapi.json.

Webhooks verifizieren

Jeder Webhook trägt die Header X-Insomon-Signature und X-Insomon-Timestamp. Prüfen Sie die Signatur gegen Ihr Secret:

// Node.js — Webhook-Signatur prüfen (HMAC-SHA256)
import { createHmac, timingSafeEqual } from 'node:crypto';

export function verify(rawBody, headers, secret) {
  const ts = headers['x-insomon-timestamp'];
  const sig = headers['x-insomon-signature']; // "sha256=<hex>"
  // Replay-Schutz: Zeitstempel darf max. 5 Minuten alt sein
  if (Math.abs(Date.now() - Number(ts)) > 5 * 60_000) return false;
  const expected = 'sha256=' + createHmac('sha256', secret)
    .update(ts + '.' + rawBody).digest('hex');
  const a = Buffer.from(sig), b = Buffer.from(expected);
  return a.length === b.length && timingSafeEqual(a, b);
}