Skip to content

Results

When retrieving results via GET /api/v1/partner/cases/{case_ref}/results/?result_format=json, the response wraps the data alongside case identifiers:

{
"id": 12345,
"issue_key": "BC-12345",
"status": "results_ready",
"completed_at": "2026-06-15T18:03:11Z",
"results_data": {
"case_type": "policy_limit_search",
"results": [
{
"defendant": "John Doe",
"date_of_loss": "2025-06-15",
"insurance": "State Farm",
"policy_number": "POL-123456",
"claim_number": "CLM-789",
"liability_limits": "100,000/300,000",
"other_commercial_policy": null,
"notes": "Coverage verified via carrier call.",
"add_on_services": {"Umbrella Liability Limits": "1,000,000"},
"base_product": "Personal Auto",
"information_found": "Yes"
}
],
"additional_policies": [
{
"status": "offered",
"policy_type": "Umbrella Policy",
"notes": "We located an umbrella policy for this defendant.",
"upgrade_id": 456,
"offer_id": "a1b2c3",
"price_usd": "349.00"
}
]
}
}

The tables below describe results_data. case_type is policy_limit_search, policy_existence_search, or (rarely) unknown. Each entry in results[] carries the field set for its own result type below — for typical cases that matches case_type. Every documented field for the result’s type is always present; null means no value was found. The example above abbreviates — a real payload carries the full field set.

Present for all case types (policy_limit_search and policy_existence_search).

Field Type Description
defendant string | null Name of the defendant / subject of the search
date_of_loss string | null Date of loss in ISO 8601 format (YYYY-MM-DD)
insurance string | null Insurance company name
policy_number string | null Policy number
claim_number string | null Claim number
liability_limits string | null Liability limits (e.g. “100,000/300,000”)
other_commercial_policy string | null Other commercial policy information, if applicable
notes string | null Combined researcher notes (generated note, researcher comment, and/or custom note)
add_on_services object | null Dict with dynamic keys for purchased add-on results (e.g. {"Umbrella Liability Limits": "1,000,000", "UM/UIM Limits": "50,000/100,000"})

Additional fields present on Policy Limit results (normally every result when case_type is policy_limit_search).

Field Type Description
base_product string | null Product category (e.g. “Personal Auto”, “Commercial Auto”, “Homeowner’s/Renter’s”, “CGL”, “Umbrella”)
information_found string | null Whether information was found for this result
policyholder string | null Named policyholder on the policy
policy_number_secondary string | null Secondary / alternate policy number
policy_start_date string | null Policy start date in ISO 8601 format
policy_canceled_date string | null Policy cancellation date in ISO 8601 format, if applicable
policy_limits_when_active string | null Limits that were in effect when the policy was active
compulsory_liability_limits string | null Compulsory / state-minimum liability limits
optional_liability_limits string | null Optional liability limits above compulsory minimums
pip_limits string | null Personal Injury Protection (PIP) / no-fault limits
self_insured_retention string | null Self-insured retention amount
underlying_insurance_co string | null Underlying insurance company (for umbrella policies)
vehicle_type string | null Vehicle type (e.g. car, truck, motorcycle)
rental_car_co string | null Rental car company, if applicable
rideshare string | null Rideshare company name, if applicable
upsell_abbreviation string | null Abbreviation for any upsell applied to this result

Additional fields present on Policy Existence results (normally every result when case_type is policy_existence_search).

Field Type Description
result_type string | null Type of existence result (e.g. “Policy Existence: Hit”, “Policy Existence: Partial Hit”, “Policy Existence: No-Hit”)
subject_of_search string | null The subject / defendant name used for this search
cancelled_policies array | null List of cancelled policy objects found during research (see below)

Each object in cancelled_policies has the following structure:

Field Type Description
insurance string | null Insurance company name
limits string | null Policy limits
policy string | null Policy number
note string | null Note about the cancelled policy
information string | null Additional information
dol string | null Date of loss in ISO 8601 format
defendant string | null Defendant name associated with this cancelled policy

additional_policies lists policies our researchers located beyond the scope of the original search. It is always present ([] when none). For results generated before v2.3.0 the key may be absent until the case’s results are regenerated — treat a missing key as []. Each entry’s visibility mirrors the results PDF:

status Meaning Fields present
offered Located and offered for purchase; values withheld until accepted Envelope only
accepted Purchased — full result Envelope + the full field set for the record’s type (same keys as results[])
included Informational note included free of charge (e.g. umbrella check outcomes) Envelope only; upgrade_id/offer_id/price_usd are null

Envelope (always present on every entry):

Field Type Description
status string offered, accepted, or included
policy_type string The type of policy located (e.g. “Umbrella Policy”)
notes string | null For offered: the researcher’s description of the offered policy. For accepted: the full researcher notes (same composition as results[].notes). For included: the informational note
upgrade_id int | null Matches additional_policies[].upgrade_id in the case.additional_policies_found webhook and GET .../offers/; pass to POST .../offers/accept/
offer_id string | null The offer this policy belongs to; matches the webhook / GET .../offers/ offer_id
price_usd string | null Price in USD (e.g. “349.00”)

Semantics:

  • Redaction by omission. In offered entries the policy’s value fields (carrier, limits, policy numbers, …) are entirely absent — not null. In results[] and accepted entries, null means “no value found”; in offered entries, absence means “withheld until accepted.”
  • Status mapping. GET .../offers/ reports raw statuses created/selected; here they surface as offered/accepted.
  • After you accept via POST .../offers/accept/, results regenerate and case.results_ready re-fires — re-fetch the JSON to see the accepted policy in full.
  • additional_policies is a different mechanism from the add_on_services field on results[] entries (add-on services purchased with the original submission).

If a case was cancelled, results_data is a distinct envelope instead of the shapes above:

{
"case_type": "policy_limit_search",
"cancelled": true,
"cancellation": {
"cancelled_at": "2026-07-01T15:20:11Z",
"fee_usd": "49.00",
"reason": "duplicate submission"
},
"results": [],
"additional_policies": []
}

fee_usd is null for free-tier cancellations. results and additional_policies are always empty on a cancelled case.