Clause Extraction
Extract, search, and compare clauses across the library.
Clauses are first-class objects. Parse writes them. Search retrieves them. Comparison diffs two spans. Counsel can trust an id in a brief because it hashes to a document SHA.
Extract
Extraction runs during contract parse. You can also extract a single document:
POST /v1/legal/clauses/extract
Authorization: Bearer eridian_sk_...
{
"project_id": "prj_legal_001",
"matter_id": "mtr_4821",
"document_id": "doc_msa_4821",
"model": "auto",
"types": [
"indemnification",
"limitation_of_liability",
"data_protection",
"termination",
"assignment",
"audit_rights"
]
}
{
"object": "list",
"data": [
{
"id": "cls_19",
"object": "eridian.legal.clause",
"type": "indemnification",
"cap_usd": 1000000,
"text": "Each party shall indemnify...",
"page": 14,
"sha256": "aa11...",
"document_id": "doc_msa_4821"
}
]
}
Search
POST /v1/legal/clauses/search
Authorization: Bearer eridian_sk_...
{
"project_id": "prj_legal_001",
"query": "indemnification clauses with a cap at or below 1000000 USD",
"filters": {
"types": ["indemnification"],
"matter_ids": ["mtr_4821"],
"governing_law": ["UAE", "England"]
},
"model": "auto",
"limit": 25
}
Search is hybrid: structured filters plus retrieval. The query string is not executed as SQL. limit max is 100.
Results include score and citations. Empty hits return data: [], not a generated clause.
Compare
POST /v1/legal/clauses/compare
Authorization: Bearer eridian_sk_...
{
"left": "cls_19",
"right": "cls_std_indemnity_v4",
"model": "gpt"
}
{
"id": "cmp_cls_01",
"object": "eridian.legal.clause_diff",
"deviations": [
{
"topic": "cap",
"left": "1000000 USD",
"right": "5000000 USD",
"severity": "high"
}
]
}
Use compare before redlines. The playbook clause should be a precedent object, not a prompt.
Library scope
Search can span matters in the same project and region when privilege allows. Cross-matter search on privileged matters requires legal:write plus a desk that is a member of every matter in the filter. Otherwise 403 insufficient_scope.
PII
Clause text is stored according to the matter retention clock. With PII redaction, names and account numbers are masked in the stored span when pii_config.persist_strategy is masked. The original bytes remain on the document object until the clock or ZDR says otherwise.
See Precedent Search when the right-hand side is a prior deal, not a playbook id.
Production API credentials are issued with an institution workspace. Contact sales if you need access.