Legal, Compliance & GovTech
Contract Intelligence API
Your customers' obligations are sitting in PDFs nobody has opened since signature. The expensive ones are the dates.
- Legal software vendors
- Contract lifecycle platforms
- Procurement software
- In-house legal teams
- Managed legal service providers
What your customers would see
example interfaceMockupIllustrative mockup of the interface we would build. Figures shown are examples, not results from a live deployment.
The problem this solves
A mid-sized company signs a few thousand agreements and then loses track of them. Not the documents — those are in a folder somewhere — but what they commit to. Which contracts auto-renew and when notice must be given. Where liability is uncapped. Which customer agreements contain a most-favoured-nation clause that an upcoming price change would breach. Which supplier can terminate on thirty days' notice if there is a change of control.
The usual discovery mechanism is an incident. A renewal passes unnoticed and locks in another year at an unfavourable rate, or a transaction triggers a diligence exercise and three weeks of paralegal time goes into reading a cabinet. Contract review is well understood as legal work; the problem is that nobody has time to do it continuously across a whole portfolio.
Extraction is now genuinely tractable, with one important caveat. Identifying a limitation of liability clause and pulling out the cap is reliable; deciding whether that cap is acceptable given the counterparty, the jurisdiction and the deal is judgement, and it belongs to a lawyer. A system that blurs the two produces confident output on questions it cannot answer, which is worse than producing nothing.
Who buys this
Legal software vendors, Contract lifecycle platforms, Procurement software, In-house legal teams, Managed legal service providers
What the API returns
What comes back
- Extracted clauses by type, with the exact source text and page location
- Key terms as structured fields — term, renewal mechanism, notice period, liability cap, governing law
- Obligation register with owner, trigger and due date where the contract states one
- Renewal and notice calendar with lead-time alerts
- Deviation flags against your own playbook or standard positions
- Counterparty-level rollup across all agreements with the same party
- Confidence per extraction, with low-confidence items routed for human review
- Change comparison between versions or against a prior executed agreement
Endpoints
| Method | Path | Returns |
|---|---|---|
| POST | /v1/contracts | Ingest a contract document for extraction |
| GET | /v1/contracts/{id}/clauses | Extracted clauses with source text and locations |
| GET | /v1/contracts/{id}/obligations | Structured obligation register |
| GET | /v1/calendar/renewals | Upcoming renewals and notice deadlines across the portfolio |
| POST | /v1/playbook/check | Compare a contract against your standard positions |
| POST | /v1/compare | Diff two versions by clause rather than by text |
Request and response
illustrativeRequest
{
"contract_id": "ctr_55218",
"document_url": "s3://tenant-77/contracts/msa-northfield-2024.pdf",
"playbook": "supplier-msa-v3",
"extract": ["key_terms", "obligations", "deviations"],
"jurisdiction_hint": "GB"
}Response
{
"contract_id": "ctr_55218",
"document": { "pages": 41, "parsed": "text_layer" },
"parties": [
{ "role": "supplier", "name": "Northfield Logistics Ltd" },
{ "role": "customer", "name": "Tenant 77 Holdings" }
],
"key_terms": {
"effective_date": "2024-04-01",
"initial_term_months": 36,
"renewal": { "type": "automatic", "period_months": 12,
"notice_days": 90, "notice_deadline": "2026-12-31" },
"liability_cap": { "basis": "12_months_fees", "amount": null,
"carve_outs": ["data protection", "wilful misconduct"] },
"governing_law": "England and Wales"
},
"obligations": [
{ "obligation": "quarterly service review", "owner": "customer",
"frequency": "quarterly", "next_due": "2026-12-15",
"source": { "clause": "9.3", "page": 17 } }
],
"deviations": [
{ "position": "uncapped indemnity for IP infringement",
"playbook_expectation": "capped at fees paid",
"severity": "high", "source": { "clause": "14.2", "page": 26 } }
],
"review_queue": [
{ "field": "liability_cap.amount", "confidence": 0.46,
"reason": "cap expressed by cross-reference to schedule 4" }
]
}Where the data comes from
| Your customers' contract repositories | The executed agreements themselves, which stay under the customer's control and confidentiality obligations |
| Your clause playbook | Standard positions and fallbacks, which is what turns extraction into a deviation report rather than a list of clauses |
| Public contract corpora | Filed material agreements and published public-sector contracts, usable for model development where the terms permit it |
| Legal taxonomies and clause ontologies | Shared clause type definitions, so 'limitation of liability' means the same thing across the portfolio |
| Entity reference data | Company registry identifiers for counterparty resolution across name variants and group structures |
| Jurisdiction reference data | Governing law and dispute resolution conventions, which affect how certain clauses are read |
The intelligence layer
The difference between a demo and a service is mostly in this section. These are the parts that keep the answer trustworthy once real traffic is hitting it.
- Layout-aware document parsing with OCR fallback, because a scanned 1990s agreement with a fax header is a normal input in this portfolio
- Clause segmentation and typing against an explicit ontology, keeping the exact source span so every extracted field is traceable to text on a page
- Structured field extraction with per-field confidence, and cross-reference resolution for terms defined in a schedule rather than in the clause
- Deliberate separation of extraction from assessment — the API reports what the contract says and how it deviates from your stated playbook, and does not opine on whether a position is acceptable
- Human-in-the-loop review queue driven by confidence thresholds you set, with corrections fed back as training data for your own tenant
- Obligation normalisation into owner, trigger, frequency and date, with ambiguous dates flagged rather than guessed
- Evaluation against a lawyer-annotated holdout set, reported per clause type, since average accuracy hides that indemnities are much harder than governing law
- Per-tenant model and data isolation, which clients in this market will ask about before anything else
What it changes for the business
Renewals caught in time
A notice calendar across the whole portfolio removes the most common and most avoidable contract loss.
Faster diligence
Portfolio-wide clause queries turn a three-week paralegal exercise into a filtered list with citations.
Visible risk concentration
Counterparty rollups show where uncapped liability and termination rights actually sit.
Playbook enforcement
Deviation reporting makes a standard position something measurable rather than aspirational.
How it fits into your product
How it embeds
- REST ingestion with webhooks on extraction completion, since long documents are not a synchronous operation
- Clause-level citations your UI can deep-link to the exact page and span in the source document
- Review queue endpoints so low-confidence extractions land in your existing legal workflow
- Deployment inside your infrastructure or a dedicated tenant, which is the usual requirement for privileged material
- Calendar and webhook integration pushing notice deadlines into the tools lawyers already live in
- Per-tenant playbooks and clause definitions, versioned so a deviation report can be reproduced later
Included in every build
- Authentication, scoped API keys and per-customer rate limiting
- Input validation with predictable, documented error responses
- Versioned endpoints so your integration never breaks without notice
- Request and response logging for audit and dispute resolution
- Latency, error-rate and usage monitoring with alerting
- OpenAPI specification, sandbox environment and client examples
- Backups, failover design and a documented recovery procedure
- An agreed support arrangement once the service is live
How we would build it
about 20 weeksDiscovery and feasibility
Weeks 1–3
This one depends heavily on data access, so we start by proving the sources exist, can be licensed for your use, and actually carry the signal the model needs. If they do not, you find out here.
Architecture and baseline model
Weeks 4–6
A written architecture and a baseline model measured against a holdout period, so you know what accuracy you are buying before the full build starts.
Production build
Weeks 7–16
Data pipelines, model training and serving, historical archive, validation harness, API, security, monitoring and documentation.
Validation and integration
Weeks 17–20
Backtesting against held-out history, accuracy reporting your team can audit, integration support and an agreed retraining cadence.
Commercial models
There is no fixed price list, because the cost is driven by data complexity, integration count, model requirements, request volume and the support level you need. Scope is agreed in writing before development starts.
Fixed-scope prototype
A defined slice of the service, built and priced as one piece of work. The usual first step when the business case needs proving internally.
Fixed-price build
An agreed scope against a written architecture, delivered for an agreed price. Best when the requirements are already clear.
Build then retainer
We build the service, then operate and improve it under a monthly agreement covering monitoring, updates and model maintenance.
White-label product
The service runs under your brand, your domain and your pricing, with MLPivot invisible to your customers.
Questions buyers ask
Does this give legal advice?
No. It extracts what a contract says, locates it, and compares it against standard positions you define. Whether a clause is acceptable in context is legal judgement, and it stays with a qualified lawyer. We would build the citation and review workflow precisely so that judgement is supported rather than displaced, and we would push back on framing that implies otherwise.
How accurate is the extraction?
It varies sharply by clause type, and we report it that way. Governing law, term and renewal mechanics extract very reliably. Liability caps expressed by cross-reference, bespoke indemnities and heavily negotiated change-of-control language are materially harder. The API returns per-field confidence and routes low-confidence fields to review rather than presenting a uniform accuracy claim.
What about scanned and badly formatted documents?
OCR handles most of it, and a layout-aware parser recovers structure from a surprising amount of old material. Some documents simply will not parse reliably — poor scans, handwritten amendments, missing schedules — and those are flagged as unparsed rather than extracted with low quality and presented as data.
Will our contracts be used to train models for other customers?
No. Per-tenant isolation is the default for this build, and corrections your lawyers make improve your tenant only. Shared model development uses public corpora where the licence permits it. We would put that in writing rather than in a settings page.
Can it track obligations the contract does not state explicitly?
Only where they are derivable from stated terms, such as a notice deadline computed from a renewal date. Implied obligations, statutory overlays and industry practice are not in the document and we do not infer them — inferring them is exactly where an extraction tool starts quietly practising law.
Related blueprints
Regulatory Change Monitoring API
Monitoring of regulatory and legislative change, mapped to the functions it affects, delivered as an alert feed inside compliance software.
Corporate Ownership Intelligence API
Ownership graphs, officer relationships and registry records resolved across jurisdictions, as an API for compliance, onboarding and diligence tools.
Litigation Intelligence API
Case search, filing summaries and trend analysis over court records, as a research layer inside legal software or an insurer's claims system.
Want this built for your platform?
Tell us what your product does today and what you want another system to be able to ask it. We will come back with an approach, a scope and a price.