Base URL: https://api.geteridian.com/v1. Keys: eridian_sk_. Models: gpt, gemini, auto. Send project_id or X-Eridian-Project.
Scopes
| Scope | Access |
|---|
legal:read | GET matters, contracts, clauses, mappings, redlines |
legal:write | Create and mutate the same objects |
audit:read | Evidence export (shared with Core) |
Matters and documents
| Method | Path |
|---|
POST | /v1/legal/matters |
GET | /v1/legal/matters |
GET | /v1/legal/matters/{id} |
PUT | /v1/legal/matters/{id}/members |
POST | /v1/legal/matters/{id}/close |
POST | /v1/legal/matters/{id}/legal-hold |
POST | /v1/legal/documents |
GET | /v1/legal/documents/{id} |
Contracts
| Method | Path |
|---|
POST | /v1/legal/contracts |
POST | /v1/legal/contracts/batch |
GET | /v1/legal/contracts/{id} |
POST | /v1/legal/contracts/{id}/brief |
POST | /v1/legal/contracts/{id}/reparse |
Clauses, mapping, precedent, redlines
| Method | Path |
|---|
POST | /v1/legal/clauses/extract |
POST | /v1/legal/clauses/search |
POST | /v1/legal/clauses/compare |
GET | /v1/legal/catalogs |
POST | /v1/legal/mappings |
POST | /v1/legal/mappings/{id}/report |
POST | /v1/legal/precedents/search |
POST | /v1/legal/redlines |
POST | /v1/legal/redlines/{id}/confirm |
POST | /v1/legal/redlines/{id}/revise |
GET | /v1/legal/redlines/{id}/content |
Objects
object | Id prefix |
|---|
eridian.legal.matter | mtr_ |
eridian.legal.document | doc_ |
eridian.legal.contract | ctr_ |
eridian.legal.clause | cls_ |
eridian.legal.mapping | map_ |
eridian.legal.redline | rdl_ |
eridian.legal.precedent.search | pre_ |
Errors
| HTTP | Code | When |
|---|
| 413 | document_too_large | Upload or page cap |
| 403 | residency_violation | Matter vs document region |
| 409 | matter_closed | Write on a closed matter |
| 409 | legal_hold | Destructive action under hold |
| 422 | structured_output_failed | Parse schema invalid after retry |
Python
from eridian import Eridian
client = Eridian(api_key="eridian_sk_...", project_id="prj_legal_001")
contract = client.legal.contracts.create(
matter_id="mtr_4821",
document_id="doc_msa_4821",
model="auto",
features=["pii_redaction", "structured_output"],
)
print(contract.id, contract.parties, contract.eridian.route)
TypeScript
import { Eridian } from "@eridian/sdk";
const client = new Eridian({
apiKey: process.env.ERIDIAN_API_KEY!,
projectId: "prj_legal_001",
});
const mapping = await client.legal.mappings.create({
matterId: "mtr_4821",
contractId: "ctr_4821",
catalogIds: ["cat_pdpl_uae", "cat_gdpr"],
model: "gpt",
});
List endpoints use Pagination. Idempotent POSTs: Idempotency.