Criterica Intelligence — production models trained on real court records, not synthetic data
Developers · The Criterica connector

Send files. Receive scores, bands and reports. The models never leave the house.

The connector is a small web service. Each call carries your files and a few settings, runs one job and returns the finished deliverables with a record of what was sent and what came back.

How it works

One key, one job per call, one synchronous answer.

  1. 1.Criterica issues a key for your connection. Send it on every call in the header X-Criterica-Key. The key is tied to your organization and to the job types connected to it.
  2. 2.Send one job per call as multipart form data: your files under the field names for that job type, and settings as form fields. Anything not listed for the job type is rejected.
  3. 3.Every call is synchronous. A job takes seconds to about a minute and returns the finished job.
  4. 4.A successful call returns the job id, the status, the outputs (name, sha256, page count, download path), the method version that produced them and your usage for that job type this quarter.
  5. 5.Every call is recorded. Results are visible only to the key that requested them.
Endpoints

Five calls.

MethodPathWhat it does
POST/v1/jobs/{job_type}Upload files and settings as multipart form data. Returns the finished job.
GET/v1/jobs/{job_id}The record of one job: what was sent, when, what came back.
GET/v1/jobs/{job_id}/files/{name}Download one deliverable.
GET/v1/usage?quarter=2026Q4Your statement for a quarter. Defaults to the current quarter.
GET/v1/healthService version and the job types it offers.

Uploads are limited to 50 MB per call, one job per call. Dates are written YYYY-MM-DD.

Job types

What you can send and what comes back.

Files are sent under the field names below and settings as form fields. Defaults are shown in brackets.

Job typeFiles (field names)Settings (default)Comes back
closed_tape_readtapehurdle (0.20), hurdle_basis (total or annual; total), servicing (0.02), cutoff (auto or a date; auto)Closed-tape read, PDF
closed_docket_readdocketcutoff (auto)Closed-docket read for a law firm, PDF
product_economicstapehurdle (0.20), hurdle_basis (total), servicing (0.02), cutoff (auto)Product economics, PDF
decline_rulestapehurdle (0.20), cutoff (auto)Decline rules read, PDF
snapshotschedule, evidencematter (required), cutoffOne-matter snapshot, PDF
underwriteschedule, evidencematter (required), cutoffOne-matter underwriting memo, PDF
portfolioschedule, evidenceadvance_pct (0.20), rate (0.18), cutoffPortfolio report, PDF, plus the model and scenarios CSVs
capitalmodel; optional scenariosadvance (0.20), rate (0.18), fee (0.02), servicing (0.01), maturity (36 months), compounding (false), sweep (0), sweep_trigger (1.0), funder, cutoffCapital pack, PDF
marksmodel, prior_model; optional scenarios, prior_scenariosquarter (required), fund, cohort_field (filing_date), cutoff, prior_cutoffMark pack, PDF
monitor_runwatchlistas_of (required), source (live)Alert files for the day
monitor_packwatchlistas_of (required), prior (required), source (live)Monitor pack, PDF, plus alert files
read_judgeevidencematter (optional; must match the evidence file)Judge intelligence, PDF
read_counselevidencematter (optional; must match the evidence file)Opposing counsel and defendant profile, PDF
read_settlement_windowevidencematter (optional; must match the evidence file)Settlement window and comparables, PDF
read_venueevidencematter (optional; must match the evidence file)Venue and forum analysis, PDF
read_motionevidencematter (optional; must match the evidence file)Motion read, PDF
read_trialevidencematter (optional; must match the evidence file)Trial read, PDF
read_defendantevidencematter (optional; must match the evidence file)Defendant read, PDF
read_internationalevidencematter (optional; must match the evidence file)International read, PDF
deep_diveschedule, evidence, questionsmatter (required)One-matter deep dive with question scenarios, PDF
reunderwriteschedule, evidence, prior_schedule, prior_evidencecutoff (required), prior_cutoff (required), advance_pct (0.20), rate (0.18)Portfolio re-underwriting against the prior pack, PDF
collateral_readfacility, termsnoneCollateral read for a lender facility, PDF
lien_readtape_liennoneLien read, PDF
closing_notelogengagement (required)Financing support closing note, PDF
File specifications

What each file must look like.

The intake specifications are named below. Each spec is sent with your key.

FileSpecification
tapeThe Criterica intake spec "Funder tape" (sent with your key). Also used by product_economics and decline_rules.
docketThe Criterica intake spec "Firm docket".
scheduleThe Criterica intake spec "Matter schedule".
evidenceThe evidence pack JSON, schema criterica.evidence_pack.v1, supplied or agreed with Criterica.
watchlistThe Criterica watchlist spec.
evidence (read_* jobs)One matter’s applied-read evidence JSON, per the reads evidence spec (sent with your key).
questions (deep_dive)A JSON list of questions, each with question_id, question, category and an evidence block.
prior_schedule, prior_evidence (reunderwrite)The schedule and evidence pack from the earlier cutoff.
facility, terms (collateral_read)The Criterica intake spec "Lender facility" and its terms JSON.
tape_lienThe Criterica intake spec "Lien tape".
log (closing_note)The question log CSV (date_received, type, question, answer_summary, sources, date_answered).
model, scenarios (capital, marks)The two CSVs a portfolio job returns; send them back unchanged.
Validation

A file that fails the intake check is not run.

The call returns status 422 with the problems in plain words, for example missing columns: law_firm or resolved_date: 3 rows are blank or not a date (use YYYY-MM-DD). Fix the file and send it again. Rejected files are not billed.

{
  "job_id": "<job id>",
  "status": "rejected",
  "problems": ["missing columns: law_firm"],
  "method_version": "<method version>"
}
StatusMeaning
401A valid X-Criterica-Key header is required.
403This key is not connected to that job type.
404Unknown job type, no such job or no such file.
413Upload exceeds 50 MB.
415Send files and parameters as multipart/form-data.
422The file did not pass the intake check. The problems are listed in plain words. Rejected files are not billed.
Job record and integrity

Every call leaves a record you can check.

For each job the record holds the job id, your key id, the job type, when it was received, the names, sizes and sha256 of every file you sent, the settings used, the outcome (rejected, done or failed), the problems if any, the name, sha256 and page count of every deliverable, the method version, and start and finish times.

The record is kept in an append-only ledger. Compare the sha256 of a downloaded file with the record to confirm it is the file that was issued.

Usage statement

Your statement for the quarter.

A call to the usage endpoint returns, for each job type on your key, the number of jobs delivered in the quarter, your allowance and any overage, plus the matters and advances counted, for example matters under watch. Work past the allowance is not blocked. It is flagged overage: true on the job and billed on the statement. Only delivered jobs count. Rejected and failed jobs are not billed.

Example

A request and a response.

curl -X POST "https://<connector host, sent with your key>/v1/jobs/closed_tape_read" \
  -H "X-Criterica-Key: <your key>" \
  -F "tape=@funder_tape.csv" \
  -F "hurdle=0.20" \
  -F "hurdle_basis=total" \
  -F "servicing=0.02" \
  -F "cutoff=auto"
{
  "job_id": "<job id>",
  "status": "done",
  "outputs": [
    {
      "name": "<deliverable file name>",
      "sha256": "<sha256 of the file>",
      "pages": "<page count>",
      "url": "/v1/jobs/<job id>/files/<deliverable file name>"
    }
  ],
  "method_version": "<method version>",
  "usage": "<your usage for this job type this quarter>",
  "overage": false
}

Placeholders in angle brackets are filled by the service or by you. The download path in each output retrieves the deliverable with your key.

Coverage and limits

What the service says plainly.

  • Live monitoring reads federal dockets only. Matters outside that coverage are listed as not covered; nothing is estimated for them.
  • A matter without evidence in the pack is returned as not rated. It is never filled in.
  • Deliverables are analytical work product, not guarantees of outcome, value, financing or timing.
Data rights

Your files stay yours. The models stay here.

  • Your files are used to produce your results and do not train a generalized model without a separate written agreement.
  • Results are visible only to the key that requested them.
  • You receive results: reports, bands, scores and the files listed for your job. You do not receive, and the service cannot return, the models, their settings, the rules behind a rating or anything else that is not a deliverable of your job.
  • Retention follows your agreement with Criterica.
Request access

Ask for a key.

Tell us which job types you want to connect and what you plan to send. We reply within one business day.

I am a

Connect your files to the record.

FAQ

Questions

Keep reading