Home · Markdown · OpenAPI

CT Injury Cases

Connecticut personal injury litigation data: motor vehicle (car accident) injury cases in Connecticut Superior Court, Hartford Judicial District, from public court records. Case outcomes and dispositions, time to disposition, trial rates, jury verdict and accepted settlement-offer amounts, motion rulings, and profiles of the judges, law firms, attorneys and medical experts involved. Free, over REST and MCP.

Derived from public Connecticut court records; not the official record; verify with the court.

describe_dataset

Start here. What the dataset covers (Connecticut Superior Court motor vehicle personal injury cases, Hartford Judicial District) and how current it is, every field, every stats metric and dimension, caveats, and example calls for each tool.

Not rate limited.

Parameters

ParameterTypeRequiredDescription
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
disclaimerstringHow to treat the data: derived, not the official record.
coverageobjectWhat the dataset covers and how current it is.
coverage.asOfstringDate of the latest fetch from the court website, YYYY-MM-DD; closedTo in windowed results.
coverage.totalCasesintegerCases in the dataset.
coverage.districtsobject[]Coverage per judicial district.
coverage.districts[].districtstringJudicial district.
coverage.districts[].casesintegerCases filed in the district.
coverage.districts[].readDocumentKindsstring[]Kinds of filed documents read for amounts and complaint facts.
coverage.caseTypesobject[]Cases per court case type code.
coverage.caseTypes[].valuestringThe value.
coverage.caseTypes[].casesintegerCases with that value.
coverage.filedYearsobject[]Cases per year filed.
coverage.filedYears[].valuestringThe value.
coverage.filedYears[].casesintegerCases with that value.
fieldsobjectField glossary.
fields.caseobject[]Fields of a case, as get_case returns them.
fields.case[].namestringField name.
fields.case[].descriptionstringWhat the field holds.
fields.complaintFactsobject[]Facts read from the complaint, usable only as stats dimensions and filters.
fields.complaintFacts[].namestringField name.
fields.complaintFacts[].descriptionstringWhat the field holds.
metricsobject[]Every stats metric.
metrics[].namestringMetric name, the stats metric argument.
metrics[].unitstringcase or ruling: what the metric counts.
metrics[].descriptionstringWhat the metric computes.
metrics[].nCountsstringWhat n in each group's values counts.
metrics[].closedInWindowbooleanTrue when the metric counts only closures from closedFrom to closedTo; false when it counts every case or ruling on record.
metrics[].caveatsstring[]What to keep in mind when reading the metric.
dimensionsobject[]Every stats dimension.
dimensions[].namestringDimension name, for group_by or as a filter.
dimensions[].unitsstring[]Units (case, ruling) the dimension applies to.
dimensions[].multiValuedbooleanTrue when one case can take several values, so groups overlap.
dimensions[].descriptionstringWhat the dimension is.
caveatsstring[]What to keep in mind across the dataset.
examplesstring[]One example call per tool: the tool name, then its arguments as JSON.

Example: https://ctinjurycases.com/v1/describe_dataset

search_cases

List auto-injury cases matching filters, in docket-number order, up to 50 per page. Use get_case for one case in full and stats for counts, rates and amounts across many.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
districtstringnoJudicial district, e.g. HARTFORD JD.
case_typestringnoCase type code: V01, V04 or V09.
litigation_typestringnothird_party, um_uim or subrogation.
filed_fromstringnoFiled on or after this date (YYYY-MM-DD).
filed_tostringnoFiled on or before this date (YYYY-MM-DD).
disposition_categorystringnoHow the case ended, e.g. withdrawal or plaintiff_verdict; pending for open cases.
trial_kindstringnojury, court or not_tried.
judge_keystringnoJudge key from search_judges; matches the judge who decided the disposition.
firm_juris_numberstringnoJuris number from search_firms; matches either side's lead firm.
cursorstringnonextCursor from the previous page; omit for the first page.
limitintegernoResults per page, at most 50 (the default).
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
resultsobject[]This page of matches.
results[].docketNumberstringConnecticut docket number, e.g. HHD-CV-21-6140000-S.
results[].districtstringJudicial district the case is filed in, e.g. HARTFORD JD.
results[].caseTypestringCourt case type code: V01 driver or passenger vs driver, V04 pedestrian vs driver, V09 other motor-vehicle torts.
results[].litigationTypestringthird_party (injured person vs at-fault driver), um_uim (claim against own uninsured/underinsured motorist carrier), subrogation (insurer suing to recover what it paid).
results[].fileDatestringDate the case was filed.
results[].dispositionCategorystring | nullHow the case ended, grouped from the court disposition text; null while pending. damages_hearing is a judgment after a hearing that only set damages, usually after a default, not a trial.
results[].dispositionDatestring | nullDate of disposition; null while pending.
results[].trialKindstring | nulljury or court when the case was tried to a verdict or decision; null otherwise.
results[].officialUrlstringThe case on the Connecticut Judicial Branch civil inquiry site, the official record.
totalintegerMatches across all pages.
nextCursorstring | nullPass as cursor for the next page; null on the last.

Example: https://ctinjurycases.com/v1/search_cases?district=HARTFORD%20JD&filed_from=2021-01-01&limit=5

get_case

One case: dates, disposition, trial, verdict and offer amounts, its motion rulings, and the judges, attorneys and law firms by side.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
docket_numberstringyesDocket number, e.g. HHD-CV-21-6140000-S.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
caseobjectThe case record.
case.docketNumberstringConnecticut docket number, e.g. HHD-CV-21-6140000-S.
case.officialUrlstringThe case on the Connecticut Judicial Branch civil inquiry site, the official record.
case.districtstringJudicial district the case is filed in, e.g. HARTFORD JD.
case.caseTypestringCourt case type code: V01 driver or passenger vs driver, V04 pedestrian vs driver, V09 other motor-vehicle torts.
case.litigationTypestringthird_party (injured person vs at-fault driver), um_uim (claim against own uninsured/underinsured motorist carrier), subrogation (insurer suing to recover what it paid).
case.fileDatestringDate the case was filed.
case.fileYearintegerYear the case was filed.
case.dispositionCategorystring | nullHow the case ended, grouped from the court disposition text; null while pending. damages_hearing is a judgment after a hearing that only set damages, usually after a default, not a trial.
case.dispositionDatestring | nullDate of disposition; null while pending.
case.daysToDispositioninteger | nullDays from filing to disposition; null while pending.
case.trialKindstring | nulljury or court when the case was tried to a verdict or decision; null otherwise.
case.trialDatestring | nullTrial date recorded on the docket.
case.closedPleadingsDatestring | nullDate pleadings were closed.
case.juryClaimDatestring | nullDate a jury was claimed.
case.defendantsintegerNumber of defendants.
case.splitOutcomebooleanTrue when defendants in the same case reached different outcomes.
case.acceptedOfferCentsinteger | nullAmount of the offer of compromise that was accepted, in cents; null when none was accepted or the amount is unknown.
case.arbitrationNetAwardCentsinteger | nullNet court-annexed arbitration award, in cents, when one was read from the award.
case.trialDeNovoDemandedbooleanTrue when either side demanded a trial de novo after arbitration.
case.netVerdictCentsinteger | nullNet jury verdict for the plaintiff after comparative negligence, in cents; null without a plaintiff or mixed jury verdict whose amount was read.
case.dispositionJudgeKeystring | nullKey of the judge who decided the disposition, when a judge did.
case.plaintiffJurisNumberstring | nullJuris number of the plaintiff side's lead law firm.
case.defenseJurisNumberstring | nullJuris number of the defense side's lead law firm.
dispositionJudgeobject | nullThe judge who decided the disposition; null when no judge did.
dispositionJudge.keystringJudge key, for get_judge.
dispositionJudge.namestring | nullJudge name; null when the key has no registered name.
firmsobjectLead law firm on each side; null when none is known.
firms.plaintiffobject | nullThe plaintiff side's lead firm.
firms.plaintiff.jurisNumberstringJuris number.
firms.plaintiff.namestring | nullName; null when the registry has none.
firms.defenseobject | nullThe defense side's lead firm.
firms.defense.jurisNumberstringJuris number.
firms.defense.namestring | nullName; null when the registry has none.
attorneysobject[]Attorneys who appeared, with their juris numbers for get_attorney.
attorneys[].jurisNumberstringJuris number.
attorneys[].namestring | nullName; null when the registry has none.
attorneys[].sidestringSide the attorney appeared for: plaintiff or defendant.
rulingsobject[]Motion rulings in the case.
rulings[].motionFamilystringKind of motion ruled on.
rulings[].movingSidestringSide that filed the motion.
rulings[].opposedbooleanWhether an objection to the motion was filed.
rulings[].outcomestringRuling outcome: granted, denied, partial, off, order, withdrawn…
rulings[].judgeobject | nullThe judge who ruled, when known.
rulings[].judge.keystringJudge key, for get_judge.
rulings[].judge.namestring | nullJudge name; null when the key has no registered name.
rulings[].rulingDatestringDate of the ruling.
rulings[].daysToRulinginteger | nullDays from filing the motion to the ruling.

Example: https://ctinjurycases.com/v1/get_case?docket_number=HHD-CV-13-6042060-S

stats

Compute one metric over cases (or motion rulings), optionally broken down by up to two dimensions and narrowed by filters. describe_dataset lists every metric and dimension and which unit each applies to. Groups of three or fewer cases are suppressed. At most 100 groups, largest first.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
metriccase_count | disposition_mix | median_days_to_disposition | trial_rate | plaintiff_verdict_rate | net_verdict | accepted_offer | motion_grant_rateyesWhat to compute; see describe_dataset for each metric.
group_by(district | file_year | case_type | litigation_type | disposition_category | trial_kind | judge_key | plaintiff_firm | defense_firm | motion_family | moving_side | mechanism | plaintiff_role | road_type | commercial_vehicle | um_uim | amount_in_demand | claims_lost_wages | injury_kind | injury_region)[]noUp to two dimensions to break the metric down by.
districtstringnoJudicial district, e.g. HARTFORD JD.
case_typestringnoCase type code: V01, V04 or V09.
litigation_typestringnothird_party, um_uim or subrogation.
filed_fromstringnoFiled on or after this date (YYYY-MM-DD).
filed_tostringnoFiled on or before this date (YYYY-MM-DD).
disposition_categorystringnoHow the case ended, e.g. withdrawal or plaintiff_verdict; pending for open cases.
trial_kindstringnojury, court or not_tried.
judge_keystringnoJudge key from search_judges; matches the judge who decided the disposition.
firm_juris_numberstringnoJuris number from search_firms; matches either side's lead firm.
mechanismstringnoHow the crash happened, e.g. rear_end.
plaintiff_rolestringnodriver, passenger, pedestrian…
road_typestringnoKind of road, e.g. interstate.
commercial_vehiclebooleannoA commercial vehicle was involved.
um_uimbooleannoUM/UIM coverage is claimed.
amount_in_demandstringnoAmount-in-demand band, e.g. 15000_or_more.
claims_lost_wagesbooleannoLost wages are claimed.
injury_kindstringnoAn alleged injury kind, e.g. fracture.
injury_regionstringnoAn injured body region, e.g. neck.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
metricstringThe metric computed.
unitcase | rulingWhat the metric counts: cases, or motion rulings for motion_grant_rate.
groupBystring[]The group_by dimensions, in order.
groupsobject[]One entry per group, largest n first.
groups[].groupmap of string | number | boolean | nullThe group: each group_by dimension and its value. Empty without group_by.
groups[].suppressedtrue | falseToo few cases to show; values are withheld. Shown: the group has enough cases.
groups[].casesintegerDistinct cases in the group, after the closure window for windowed metrics. Decides suppression.
groups[].valuesmap of number | null | map of numberThe metric's figures for the group, always with n; each metric's entry in describe_dataset says what n counts and what the other keys are.
closedFromstring | nullFor metrics over closed cases, the first disposition date counted, inclusive; the figures are not all-time. Null for metrics over every case.
closedTostring | nullFor metrics over closed cases, the last disposition date counted, inclusive: the as-of date. Null for metrics over every case.
totalGroupsintegerGroups before the cap on how many are returned.
groupsSuppressedintegerReturned groups that are suppressed.
truncatedbooleanTrue when more groups exist than were returned.
multiValuedDimensionsstring[]Dimensions where one case can sit in several groups, so group counts overlap.
namesmap of stringNames of the judges and firms in the groups.

Metrics

case_count

Number of cases, open or closed.

disposition_mix

Closed cases counted by disposition category, in counts.

median_days_to_disposition

Median days from filing to disposition, as medianDays.

trial_rate

Share of closed cases that went through a contested trial to a jury or the court, as rate, with the count as trials. A hearing that only set damages (disposition damages_hearing) is not a trial.

plaintiff_verdict_rate

Plaintiff verdicts as a share of plaintiff plus defense verdicts, as rate, with the count as plaintiffVerdicts.

net_verdict

Net plaintiff jury verdict after comparative negligence, in cents: medianCents, and the nearest-rank 25th and 75th percentiles as p25Cents and p75Cents.

accepted_offer

Accepted offer of compromise, in cents: medianCents, and the nearest-rank 25th and 75th percentiles as p25Cents and p75Cents.

motion_grant_rate

Granted rulings as a share of decided ones, as rate, with the count as granted. Counted per ruling, not per case.

Groups

Example: https://ctinjurycases.com/v1/stats?metric=net_verdict&group_by=injury_kind

search_judges

List judges by name and district, with case counts, most cases first. get_judge gives one judge in full.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
namestringnoPart of the name, any case.
districtstringnoJudicial district, e.g. HARTFORD JD.
cursorstringnonextCursor from the previous page; omit for the first page.
limitintegernoResults per page, at most 50 (the default).
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
resultsobject[]This page of matches.
results[].keystringJudge key, for get_judge and the judge_key filter.
results[].namestring | nullName.
results[].casesintegerCases where the judge decided the disposition or ruled on a motion.
results[].districtsstring[]Judicial districts of those cases.
results[].casesByYearmap of integerCases counted by the year they were filed.
totalintegerMatches across all pages.
nextCursorstring | nullPass as cursor for the next page; null on the last.

Example: https://ctinjurycases.com/v1/search_judges?limit=5

get_judge

One judge: how the cases they decided ended (closures in the last ~11 months), motion grant rates by motion family, and trial and verdict figures.

Rate limited, and shares a daily limit with the other profile tools: 25 profile calls a day per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 500 profile calls a day.

Parameters

ParameterTypeRequiredDescription
judge_keystringyesJudge key from search_judges.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
keystringJudge key, for get_judge and the judge_key filter.
namestring | nullName.
casesintegerCases where the judge decided the disposition or ruled on a motion.
districtsstring[]Judicial districts of those cases.
casesByYearmap of integerCases counted by the year they were filed.
closedFromstringFirst disposition date counted, inclusive. Outcome counts here cover only cases closed from closedFrom to closedTo, not all time.
closedTostringLast disposition date counted, inclusive: the dataset as-of date.
dispositionsmap of integerCases whose disposition this judge decided and that closed from closedFrom to closedTo, by how they ended. Counts only cases closed in the 330 days ending at the as-of date (closedFrom to closedTo): the court removes withdrawn cases about a year after withdrawal, so only the last ~11 months of closures are complete. A district last fetched before the as-of date contributes closures only up to its fetch date, a slightly shorter window; the closures it does contribute are still complete.
rulingsByMotionFamilyobject[]The judge's motion rulings by kind of motion, over every ruling on record.
rulingsByMotionFamily[].motionFamilystringKind of motion.
rulingsByMotionFamily[].rulingsintegerRulings on such motions.
rulingsByMotionFamily[].decidedintegerOf those, rulings that decided the motion: granted, denied or granted in part.
rulingsByMotionFamily[].grantedintegerOf the decided, those granted.
rulingsByMotionFamily[].grantRatenumber | nullgranted / decided; null when none were decided.
trialFiguresmap of number | null | nullTried cases, verdict counts and rates, median net verdict in cents, median days from filing to trial and to closed pleadings.

Past the daily profile limit it answers instead with limitReached, limit, resetsAt, message, contactUrl.

Example: https://ctinjurycases.com/v1/get_judge?judge_key=MORGAN%7CL

search_firms

List law firms by name, side, district and size, most cases first. get_firm gives one firm in full.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
namestringnoPart of the name, any case.
sideplaintiff | defensenoOnly those with cases for this side, ranked by their cases on that side rather than by all their cases.
districtstringnoJudicial district, e.g. HARTFORD JD.
min_casesintegernoAt least this many cases; with side, cases on that side.
cursorstringnonextCursor from the previous page; omit for the first page.
limitintegernoResults per page, at most 50 (the default).
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
resultsobject[]This page of matches.
results[].jurisNumberstringFirm juris number, for get_firm and the firm filters.
results[].namestring | nullName.
results[].casesintegerEvery case the firm appeared in, as lead firm or not. The firm's other figures count only the cases it leads a side in, so their totals can be a little lower.
results[].districtsstring[]Judicial districts the firm appeared in.
results[].casesByYearmap of integerCases the firm leads a side in, by the year they were filed.
results[].kindfirm | individualindividual: a person's name rather than a firm's, such as a solo practitioner.
results[].plaintiffCasesintegerOf cases, those where the firm appeared for the plaintiff, as lead firm or not.
results[].defenseCasesintegerOf cases, those where the firm appeared for the defense, as lead firm or not.
totalintegerMatches across all pages.
nextCursorstring | nullPass as cursor for the next page; null on the last.

Example: https://ctinjurycases.com/v1/search_firms?side=defense&min_cases=20&limit=5

get_firm

One law firm: its attorneys, the firms it most often faces, the medical experts named for its side, its motion practice, and how its cases ended. A firm's case counts (cases, plaintiffCases, defenseCases) cover every case it appeared in. Its other figures (casesByYear, opposing firms, experts, motion practice, outcomes), the stats plaintiff_firm and defense_firm dimensions and the firm_juris_number filter cover only the cases where it is a side's lead firm, so one firm's case total can differ slightly from place to place.

Rate limited, and shares a daily limit with the other profile tools: 25 profile calls a day per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 500 profile calls a day.

Parameters

ParameterTypeRequiredDescription
juris_numberstringyesFirm juris number from search_firms.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
jurisNumberstringFirm juris number, for get_firm and the firm filters.
namestring | nullName.
casesintegerEvery case the firm appeared in, as lead firm or not. The firm's other figures count only the cases it leads a side in, so their totals can be a little lower.
districtsstring[]Judicial districts the firm appeared in.
casesByYearmap of integerCases the firm leads a side in, by the year they were filed.
kindfirm | individualindividual: a person's name rather than a firm's, such as a solo practitioner.
plaintiffCasesintegerOf cases, those where the firm appeared for the plaintiff, as lead firm or not.
defenseCasesintegerOf cases, those where the firm appeared for the defense, as lead firm or not.
attorneysobject[]Attorneys who have filed with this firm.
attorneys[].jurisNumberstringAttorney juris number, for get_attorney.
attorneys[].namestring | nullAttorney name; null when the registry has none.
opposingFirmsobject[]Lead firms on the other side, most frequent first.
opposingFirms[].jurisNumberstringFirm juris number, for get_firm.
opposingFirms[].namestring | nullFirm name; null when the firm is not in the dataset.
opposingFirms[].casesintegerCases counted together.
expertsDisclosedobject[]Medical providers named for this side in its cases, most frequent first.
expertsDisclosed[].providerIdstringProvider id, for get_provider.
expertsDisclosed[].namestringProvider name.
expertsDisclosed[].specialtystring | nullSpecialty, when known.
expertsDisclosed[].casesintegerOf these cases, those naming the provider.
motionPracticeobject[]This side's motions in these cases and how often they were granted.
motionPractice[].motionFamilystringKind of motion.
motionPractice[].rulingsintegerRulings on such motions.
motionPractice[].decidedintegerOf those, rulings that decided the motion: granted, denied or granted in part.
motionPractice[].grantedintegerOf the decided, those granted.
motionPractice[].grantRatenumber | nullgranted / decided; null when none were decided.
outcomesobjectHow these cases ended.
outcomes.closedFromstringFirst disposition date counted, inclusive. Outcome counts here cover only cases closed from closedFrom to closedTo, not all time.
outcomes.closedTostringLast disposition date counted, inclusive: the dataset as-of date.
outcomes.dispositionsmap of integerCases closed from closedFrom to closedTo, counted by disposition category. Counts only cases closed in the 330 days ending at the as-of date (closedFrom to closedTo): the court removes withdrawn cases about a year after withdrawal, so only the last ~11 months of closures are complete. A district last fetched before the as-of date contributes closures only up to its fetch date, a slightly shorter window; the closures it does contribute are still complete.
outcomes.acceptedOfferobjectAccepted offers of compromise in cases closed from closedFrom to closedTo; most such cases close by withdrawal, which the court removes.
outcomes.acceptedOffer.nintegerAmounts counted.
outcomes.acceptedOffer.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.acceptedOffer.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.acceptedOffer.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.
outcomes.netVerdictobjectEvery net jury verdict on record, not limited to closedFrom to closedTo: verdicts are not removed from the court website.
outcomes.netVerdict.nintegerAmounts counted.
outcomes.netVerdict.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.netVerdict.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.netVerdict.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.

Past the daily profile limit it answers instead with limitReached, limit, resetsAt, message, contactUrl.

Example: https://ctinjurycases.com/v1/get_firm?juris_number=408308

search_attorneys

List attorneys by name, firm, side and district, most cases first. get_attorney gives one attorney in full.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
namestringnoPart of the name, any case.
firm_juris_numberstringnoJuris number of their firm.
sideplaintiff | defensenoOnly those with cases for this side, ranked by their cases on that side rather than by all their cases.
districtstringnoJudicial district, e.g. HARTFORD JD.
cursorstringnonextCursor from the previous page; omit for the first page.
limitintegernoResults per page, at most 50 (the default).
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
resultsobject[]This page of matches.
results[].jurisNumberstringAttorney juris number, for get_attorney.
results[].namestring | nullThe name the Connecticut Judicial Branch registers for the juris number; null when it lists no attorney under it. The attorney's cases are counted either way.
results[].casesintegerEvery case the attorney appeared in, with any firm they have filed with.
results[].districtsstring[]Judicial districts of those cases.
results[].casesByYearmap of integerCases counted by the year they were filed.
results[].plaintiffCasesintegerOf cases, those on the plaintiff side.
results[].defenseCasesintegerOf cases, those on the defense side.
totalintegerMatches across all pages.
nextCursorstring | nullPass as cursor for the next page; null on the last.

Example: https://ctinjurycases.com/v1/search_attorneys?side=plaintiff&limit=5

get_attorney

One attorney: their firms, the firms they most often face, the medical experts named for their side, their motion practice, and how their cases ended. An attorney's figures span every firm the attorney has filed with, not only their current firm.

Rate limited, and shares a daily limit with the other profile tools: 25 profile calls a day per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 500 profile calls a day.

Parameters

ParameterTypeRequiredDescription
juris_numberstringyesAttorney juris number from search_attorneys.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
jurisNumberstringAttorney juris number, for get_attorney.
namestring | nullThe name the Connecticut Judicial Branch registers for the juris number; null when it lists no attorney under it. The attorney's cases are counted either way.
casesintegerEvery case the attorney appeared in, with any firm they have filed with.
districtsstring[]Judicial districts of those cases.
casesByYearmap of integerCases counted by the year they were filed.
plaintiffCasesintegerOf cases, those on the plaintiff side.
defenseCasesintegerOf cases, those on the defense side.
firmsobject[]Every firm the attorney has filed with.
firms[].jurisNumberstringFirm juris number, for get_firm.
firms[].namestring | nullFirm name; null when the firm is not in the dataset.
opposingFirmsobject[]Lead firms on the other side, most frequent first.
opposingFirms[].jurisNumberstringFirm juris number, for get_firm.
opposingFirms[].namestring | nullFirm name; null when the firm is not in the dataset.
opposingFirms[].casesintegerCases counted together.
expertsDisclosedobject[]Medical providers named for this side in its cases, most frequent first.
expertsDisclosed[].providerIdstringProvider id, for get_provider.
expertsDisclosed[].namestringProvider name.
expertsDisclosed[].specialtystring | nullSpecialty, when known.
expertsDisclosed[].casesintegerOf these cases, those naming the provider.
motionPracticeobject[]This side's motions in these cases and how often they were granted.
motionPractice[].motionFamilystringKind of motion.
motionPractice[].rulingsintegerRulings on such motions.
motionPractice[].decidedintegerOf those, rulings that decided the motion: granted, denied or granted in part.
motionPractice[].grantedintegerOf the decided, those granted.
motionPractice[].grantRatenumber | nullgranted / decided; null when none were decided.
outcomesobjectHow these cases ended.
outcomes.closedFromstringFirst disposition date counted, inclusive. Outcome counts here cover only cases closed from closedFrom to closedTo, not all time.
outcomes.closedTostringLast disposition date counted, inclusive: the dataset as-of date.
outcomes.dispositionsmap of integerCases closed from closedFrom to closedTo, counted by disposition category. Counts only cases closed in the 330 days ending at the as-of date (closedFrom to closedTo): the court removes withdrawn cases about a year after withdrawal, so only the last ~11 months of closures are complete. A district last fetched before the as-of date contributes closures only up to its fetch date, a slightly shorter window; the closures it does contribute are still complete.
outcomes.acceptedOfferobjectAccepted offers of compromise in cases closed from closedFrom to closedTo; most such cases close by withdrawal, which the court removes.
outcomes.acceptedOffer.nintegerAmounts counted.
outcomes.acceptedOffer.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.acceptedOffer.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.acceptedOffer.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.
outcomes.netVerdictobjectEvery net jury verdict on record, not limited to closedFrom to closedTo: verdicts are not removed from the court website.
outcomes.netVerdict.nintegerAmounts counted.
outcomes.netVerdict.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.netVerdict.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.netVerdict.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.

Past the daily profile limit it answers instead with limitReached, limit, resetsAt, message, contactUrl.

Example: https://ctinjurycases.com/v1/get_attorney?juris_number=409856

search_providers

List medical providers named in expert disclosures, by type, specialty, side (treating or defense examiner), town and size, most cases first. get_provider gives one provider in full.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
namestringnoPart of the name, any case.
typestringnophysician, therapy, imaging or facility.
specialtystringnoPart of the specialty, e.g. orthop.
sidetreating | defense_examinernotreating: named as the plaintiff's treating provider; defense_examiner: retained by the defense to examine the plaintiff.
townstringnoTown the provider practises in.
min_casesintegernoAt least this many cases.
cursorstringnonextCursor from the previous page; omit for the first page.
limitintegernoResults per page, at most 50 (the default).
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
resultsobject[]This page of matches.
results[].idstringProvider id, for get_provider.
results[].namestring | nullName.
results[].casesintegerCases whose expert disclosures name the provider.
results[].districtsstring[]Judicial districts of those cases.
results[].casesByYearmap of integerCases counted by the year they were filed.
results[].kindclinician | practiceclinician: a person; practice: a clinic, hospital or other organisation.
results[].typestringphysician, therapy, imaging or facility.
results[].credentialstring | nullThe credential named in the filings. When the filings name none, or one outside the usual list, and the federal NPI registry finds the clinician exactly once, the credential the registry lists, e.g. "M.D.". "other" when the filings name a credential outside the usual list and the registry does not supply one. null when neither says.
results[].specialtystring | nullThe specialty named in the filings. When the filings name none and the federal NPI registry finds the clinician exactly once and, when the filings name a credential from the usual list, lists that same credential: the registry's primary taxonomy, e.g. Orthopaedic Surgery. null otherwise.
results[].townstring | nullTown the provider practises in, when known.
results[].sidetreating | defense_examinertreating: named as the plaintiff's treating provider; defense_examiner: retained by the defense to examine the plaintiff.
totalintegerMatches across all pages.
nextCursorstring | nullPass as cursor for the next page; null on the last.

Example: https://ctinjurycases.com/v1/search_providers?side=defense_examiner&specialty=orthop&limit=5

get_provider

One medical provider: the law firms that named them, their case list, how those cases ended, and, for defense examiners, the kinds of findings they disputed and on which body regions (counts only).

Rate limited, and shares a daily limit with the other profile tools: 25 profile calls a day per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 500 profile calls a day.

Parameters

ParameterTypeRequiredDescription
provider_idstringyesProvider id from search_providers.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
idstringProvider id, for get_provider.
namestring | nullName.
casesintegerCases whose expert disclosures name the provider.
districtsstring[]Judicial districts of those cases.
casesByYearmap of integerCases counted by the year they were filed.
kindclinician | practiceclinician: a person; practice: a clinic, hospital or other organisation.
typestringphysician, therapy, imaging or facility.
credentialstring | nullThe credential named in the filings. When the filings name none, or one outside the usual list, and the federal NPI registry finds the clinician exactly once, the credential the registry lists, e.g. "M.D.". "other" when the filings name a credential outside the usual list and the registry does not supply one. null when neither says.
specialtystring | nullThe specialty named in the filings. When the filings name none and the federal NPI registry finds the clinician exactly once and, when the filings name a credential from the usual list, lists that same credential: the registry's primary taxonomy, e.g. Orthopaedic Surgery. null otherwise.
townstring | nullTown the provider practises in, when known.
sidetreating | defense_examinertreating: named as the plaintiff's treating provider; defense_examiner: retained by the defense to examine the plaintiff.
retainingFirmsobject[]The lead firm on the provider's side in their cases, most frequent first.
retainingFirms[].jurisNumberstringFirm juris number, for get_firm.
retainingFirms[].namestring | nullFirm name; null when the firm is not in the dataset.
retainingFirms[].casesintegerCases counted together.
docketNumbersstring[]Docket numbers of the cases naming the provider, for get_case.
disputesobject | nullFindings this examiner disputed in defense examinations; null when none were read.
disputes.totalintegerDisputed findings read.
disputes.byKindmap of integerDisputed findings counted by kind of dispute.
disputes.byBodyRegionmap of integerDisputed findings counted by body region.
outcomesobjectHow these cases ended.
outcomes.closedFromstringFirst disposition date counted, inclusive. Outcome counts here cover only cases closed from closedFrom to closedTo, not all time.
outcomes.closedTostringLast disposition date counted, inclusive: the dataset as-of date.
outcomes.dispositionsmap of integerCases closed from closedFrom to closedTo, counted by disposition category. Counts only cases closed in the 330 days ending at the as-of date (closedFrom to closedTo): the court removes withdrawn cases about a year after withdrawal, so only the last ~11 months of closures are complete. A district last fetched before the as-of date contributes closures only up to its fetch date, a slightly shorter window; the closures it does contribute are still complete.
outcomes.acceptedOfferobjectAccepted offers of compromise in cases closed from closedFrom to closedTo; most such cases close by withdrawal, which the court removes.
outcomes.acceptedOffer.nintegerAmounts counted.
outcomes.acceptedOffer.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.acceptedOffer.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.acceptedOffer.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.
outcomes.netVerdictobjectEvery net jury verdict on record, not limited to closedFrom to closedTo: verdicts are not removed from the court website.
outcomes.netVerdict.nintegerAmounts counted.
outcomes.netVerdict.medianCentsnumber | nullMedian amount in cents; null when n is 0.
outcomes.netVerdict.p25Centsnumber | nullNearest-rank 25th percentile in cents; null when n is 0.
outcomes.netVerdict.p75Centsnumber | nullNearest-rank 75th percentile in cents; null when n is 0.

Past the daily profile limit it answers instead with limitReached, limit, resetsAt, message, contactUrl.

Example: https://ctinjurycases.com/v1/get_provider?provider_id=practice%3Ajeffersonradiology

request_data

Tell us about data this dataset does not have but you need: other courts or states, case types, fields, documents. Logged and read by the people who build the dataset.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
descriptionstringyesWhat data you need and what you would use it for.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
receivedtrueThe submission was recorded.
messagestringAcknowledgement to pass on to the user.

Example: https://ctinjurycases.com/v1/request_data?description=Verdict%20amounts%20for%20New%20Haven%20JD%20auto%20cases%20since%202020.

send_message

Send a message to the person who runs this service: feedback, a question, a problem with the data, or interest in paid features, broader coverage or higher limits. Include the user's name or email only with their explicit permission.

Rate limited: 60 calls a minute per client. Calls through Claude's or ChatGPT's hosted connectors all come from that platform's servers, so each platform's users share one limit of 600 calls a minute.

Parameters

ParameterTypeRequiredDescription
messagestringyesThe message.
namestringnoThe user's name, if they agreed.
emailstringnoThe user's email, if they agreed and want a reply.
purposestringnoOne sentence on what you are trying to find out. Logged to improve the dataset; never returned.

Output

FieldTypeDescription
receivedtrueThe submission was recorded.
messagestringAcknowledgement to pass on to the user.

Example: https://ctinjurycases.com/v1/send_message?message=Would%20higher%20daily%20limits%20be%20possible%20for%20a%20research%20project%3F