Documentation Index
Fetch the complete documentation index at: https://docs.aiinsurance.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Configuration presets define the available coverage limit options for each coverage type. Each preset specifies a set of named limits (e.g., “Per Occurrence”, “Aggregate”) with their amounts, and can include additional settings for deductibles, defense costs, retroactive dates, and waiting periods.
Presets are stored in the coverage_limit_presets table and are scoped to a company via company_id. Each preset references a coverage type via coverageTypeKey.
Key Concepts
- coverageTypeKey: The string key of an existing coverage type (global or company-specific). Must exist in the
coverage_types table.
- limits: An object containing an array of named limit amounts and an optional
allowLimitEdits flag controlling whether users can modify amounts on quotes.
- isDefault: Whether this preset is the default for its coverage type. Multiple presets per coverage type are allowed, but only one can be the default. When creating a preset with
isDefault: true, any existing default for the same coverage type is automatically set to non-default.
- defenseInsideLimit: Whether defense costs count inside or outside the limit (
"inside" or "outside").
- Settings fields: Optional JSONB configuration for deductibles, limits, retroactive dates, waiting periods, and prior/pending litigation dates. These are opaque blobs passed through to the rating engine.
API Endpoints
| Method | Endpoint | Description |
|---|
| GET | /configuration/presets | List coverage limit presets |
| POST | /configuration/presets | Create a new coverage limit preset |
| DELETE | /configuration/presets/{presetId} | Soft-delete a coverage limit preset |
Permissions
| Action | Permission |
|---|
| List presets | company:read |
| Create preset | company:update |
| Delete preset | company:update |
Request Properties
| Property | Type | Required | Description |
|---|
| coverageTypeKey | string | Yes | Coverage type key (must exist) |
| setName | string | Yes | Display name for the preset |
| limits | object | Yes | Limit definitions (see below) |
| isDefault | boolean | No | Whether this is the default preset (defaults to false) |
| defenseInsideLimit | string | No | "inside" or "outside" |
| deductible | number | No | Deductible amount in dollars |
| retroactiveDate | string | No | ISO date (YYYY-MM-DD) |
| waitingPeriodSettings | object | No | Waiting period configuration |
| deductibleSettings | object | No | Deductible default amount configuration |
| limitSettings | object | No | Limit default amounts configuration |
| retroactiveDateSettings | object | No | Retroactive date default amount configuration |
| priorPendingLitigationDateSettings | object | No | Prior/pending litigation date configuration |
Limits Object
| Property | Type | Required | Description |
|---|
| limits | array | Yes | Array of limit definitions |
| limits[].id | string | Yes | Unique identifier for this limit |
| limits[].name | string | Yes | Display name (e.g., “Per Occurrence”) |
| limits[].amount | number | string | No | Limit amount — a number (e.g. 1000000) or a string (e.g. “100%”, ”-”). Omit when not applicable. |
| allowLimitEdits | boolean | No | Whether users can edit limit amounts on quotes |
Response Properties (GET)
The list endpoint returns { items, totalCount } where each item includes all request properties plus:
| Property | Type | Description |
|---|
| id | string (UUID) | Preset identifier |
| createdAt | string | null | ISO 8601 timestamp |
| updatedAt | string | null | ISO 8601 timestamp |
Nullable fields (defenseInsideLimit, deductible, retroactiveDate, and all settings) return null when not set.