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.
Shared Fields
Section titled “Shared Fields”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"}) |
Policy Limit Search Fields
Section titled “Policy Limit Search Fields”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 |
Policy Existence Search Fields
Section titled “Policy Existence Search Fields”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
Section titled “Additional Policies”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
offeredentries the policy’s value fields (carrier, limits, policy numbers, …) are entirely absent — notnull. Inresults[]andacceptedentries,nullmeans “no value found”; inofferedentries, absence means “withheld until accepted.” - Status mapping.
GET .../offers/reports raw statusescreated/selected; here they surface asoffered/accepted. - After you accept via
POST .../offers/accept/, results regenerate andcase.results_readyre-fires — re-fetch the JSON to see the accepted policy in full. additional_policiesis a different mechanism from theadd_on_servicesfield onresults[]entries (add-on services purchased with the original submission).
Cancelled cases
Section titled “Cancelled cases”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.