Zum Inhalt
HALOWERK

Bürowerk

terms diff

Takes two contract versions as text, public URLs or inline base64 — PDF, DOCX, ODT, HTML and Markdown are read — and reports what is different. Which passages changed is decided by a Myers shortest-edit-script over the paragraphs, not by a model: the deterministic comparison is the source of truth, and only afterwards is a model asked what changed in substance at those specific places. That order is the point. A model handed two whole contracts returns a plausible list of changes whose.

POST https://buero.halowerk.com/v1/terms-diff

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
aobjectJaThe earlier version. Exactly one of text, url or content_base64.
bobjectJaThe later version. Same shape as a.
document_charsintegerNeinOnly needed when a version arrives by url or content_base64: the combined length of both versions in characters, which is what you are billed for. Longer text is refused with the real length and nothing is charged.
max_changes_describedintegerNeinHow many changed passages the model describes. Beyond this the passages still come back with their before and after text, only without a description — what is dropped is counted, never silently cut.
ignore_whitespacebooleanNeinTreat runs of spaces and tabs as one space before comparing.
include_unchanged_countbooleanNeinReport how many paragraphs stayed identical.
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "required": [
    "a",
    "b"
  ],
  "additionalProperties": false,
  "properties": {
    "a": {
      "type": "object",
      "additionalProperties": false,
      "description": "The earlier version. Exactly one of text, url or content_base64.",
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 200000,
          "description": "The text directly. Cheapest and clearest — its length is billed as counted here."
        },
        "url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Public http(s) URL of a PDF, DOCX, ODT, HTML or text file. Private and local addresses are refused."
        },
        "content_base64": {
          "type": "string",
          "maxLength": 4000000,
          "description": "The file inline, base64."
        },
        "filename": {
          "type": "string",
          "maxLength": 260,
          "description": "Only consulted when the bytes carry no recognisable signature."
        },
        "format": {
          "type": "string",
          "enum": [
            "auto",
            "pdf",
            "docx",
            "odt",
            "html",
            "markdown",
            "rtf",
            "text"
          ],
          "default": "auto",
          "description": "Override the detected format. \"auto\" reads it from the bytes."
        }
      }
    },
    "b": {
      "type": "object",
      "additionalProperties": false,
      "description": "The later version. Same shape as a.",
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 200000,
          "description": "The text directly. Cheapest and clearest — its length is billed as counted here."
        },
        "url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Public http(s) URL of a PDF, DOCX, ODT, HTML or text file. Private and local addresses are refused."
        },
        "content_base64": {
          "type": "string",
          "maxLength": 4000000,
          "description": "The file inline, base64."
        },
        "filename": {
          "type": "string",
          "maxLength": 260,
          "description": "Only consulted when the bytes carry no recognisable signature."
        },
        "format": {
          "type": "string",
          "enum": [
            "auto",
            "pdf",
            "docx",
            "odt",
            "html",
            "markdown",
            "rtf",
            "text"
          ],
          "default": "auto",
          "description": "Override the detected format. \"auto\" reads it from the bytes."
        }
      }
    },
    "document_chars": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24000,
      "description": "Only needed when a version arrives by url or content_base64: the combined length of both versions in characters, which is what you are billed for. Longer text is refused with the real length and nothing is charged."
    },
    "max_changes_described": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "default": 25,
      "description": "How many changed passages the model describes. Beyond this the passages still come back with their before and after text, only without a description — what is dropped is counted, never silently cut."
    },
    "ignore_whitespace": {
      "type": "boolean",
      "default": true,
      "description": "Treat runs of spaces and tabs as one space before comparing."
    },
    "include_unchanged_count": {
      "type": "boolean",
      "default": true,
      "description": "Report how many paragraphs stayed identical."
    }
  }
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "a": {
    "text": "§ 2 Laufzeit\nDer Vertrag laeuft zwoelf Monate.\n\n§ 5 Haftung\nDie Haftung ist auf den Auftragswert begrenzt."
  },
  "b": {
    "text": "§ 2 Laufzeit\nDer Vertrag laeuft vierundzwanzig Monate.\n\n§ 5 Haftung\nDie Haftung ist auf den Auftragswert begrenzt.\n\n§ 8 Gerichtsstand\nGerichtsstand ist Berlin."
  }
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →