> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coverwhale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quoting

> How to get indications and quotes through the Cover Whale API

# Quoting

Cover Whale offers two levels of pricing: **indications** (preliminary estimates) and **full quotes** (final pricing). Both are submitted via the API with the same authentication.

## Indication vs. Full Quote

|                     | Indication                           | Full Quote                     |
| ------------------- | ------------------------------------ | ------------------------------ |
| **Endpoint**        | `POST /indication`                   | `POST /quote`                  |
| **Purpose**         | Quick preliminary pricing            | Final binding-eligible pricing |
| **Required fields** | Minimal (DOT, legal name, state/zip) | Complete application details   |
| **Response**        | Estimated premium ranges             | Exact premiums and fees        |
| **Use when**        | Screening opportunities              | Ready to present to insured    |

## Coverage Types

Cover Whale provides five coverage lines for commercial trucking:

| Code    | Coverage                   | Description                                              |
| ------- | -------------------------- | -------------------------------------------------------- |
| **AL**  | Auto Liability             | Liability coverage for bodily injury and property damage |
| **APD** | Auto Physical Damage       | Collision and comprehensive coverage for vehicles        |
| **MTC** | Motor Truck Cargo          | Coverage for goods being transported                     |
| **TGL** | Truckers General Liability | General liability for trucking operations                |
| **NTL** | Non-Trucking Liability     | Liability coverage when not under dispatch               |

Request each line by setting `requestAl`, `requestApd`, `requestMtc`, `requestTgl`, or `requestNtl` to `"Y"` in the `coverage` object.

## Request Body Structure

Both endpoints accept the same request structure, organized into sections. The three required sections are:

| Object               | Purpose                  | Key Fields                                  |
| -------------------- | ------------------------ | ------------------------------------------- |
| `insuredInformation` | Business details         | `dotNumber`, `legalName`, `yearsInBusiness` |
| `garageAddress`      | Where vehicles are kept  | `garageState`, `garageZip` (required)       |
| `mailingAddress`     | Business mailing address | `mailingState`, `mailingZip`                |

Optional objects include `coverage`, `limits`, `vehicles`, `drivers`, `operations`, `radius`, `commodities`, and `losses`.

## Getting an Indication

Submit basic details to get preliminary pricing:

```bash theme={null}
curl -X POST https://api.coverwhale.dev/v1/indication \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "AccessToken: YOUR_ACCESS_TOKEN" \
  -d '{
    "insuredInformation": {
      "dotNumber": 1234567,
      "legalName": "ACME TRUCKING LLC",
      "yearsInBusiness": 3
    },
    "coverage": {
      "requestAl": "Y",
      "requestApd": "Y",
      "requestMtc": "Y",
      "effectiveDate": "03/01/2026"
    },
    "garageAddress": {
      "garageState": "CA",
      "garageZip": "90016"
    },
    "mailingAddress": {
      "mailingState": "CA",
      "mailingZip": "90016"
    },
    "limits": {
      "nbrOfTrucks": 3,
      "valueOfTrucks": 150000
    }
  }'
```

## Getting a Full Quote

Submit the complete application for final pricing. This includes vehicles, drivers, and full address details:

```bash theme={null}
curl -X POST https://api.coverwhale.dev/v1/quote \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "AccessToken: YOUR_ACCESS_TOKEN" \
  -d '{
    "insuredInformation": {
      "dotNumber": 1234567,
      "legalName": "ACME TRUCKING LLC",
      "yearsInBusiness": 3,
      "email": "insured@example.com"
    },
    "coverage": {
      "requestAl": "Y",
      "requestApd": "Y",
      "requestMtc": "Y",
      "effectiveDate": "03/01/2026"
    },
    "garageAddress": {
      "garageStreet": "123 Main St",
      "garageCity": "Los Angeles",
      "garageState": "CA",
      "garageZip": "90016",
      "garageCounty": "Los Angeles"
    },
    "mailingAddress": {
      "mailingStreet": "123 Main St",
      "mailingCity": "Los Angeles",
      "mailingState": "CA",
      "mailingZip": "90016",
      "mailingCounty": "Los Angeles"
    },
    "limits": {
      "nbrOfTrucks": 3,
      "valueOfTrucks": 150000,
      "limitAutoLiability": 1000000
    },
    "vehicles": [
      {
        "year": 2020,
        "make": "Freightliner",
        "model": "Cascadia",
        "vin": "1FUJGLDR0CLBK5432",
        "value": 55000,
        "classKey": "1"
      }
    ],
    "drivers": [
      {
        "firstName": "John",
        "lastName": "Doe",
        "dateOfBirth": "06/15/1985",
        "licenseState": "CA",
        "licenseNumber": "D1234567",
        "yearsExperience": 8
      }
    ]
  }'
```

See the [API Reference](/api-reference/quoting/get-a-quote) for the full list of accepted fields and detailed schema documentation.

## Understanding the Response

Both indication and quote responses include pricing breakdowns by coverage line:

```json theme={null}
{
  "status": "Quoted",
  "submission_number": "2172961",
  "coverages": {
    "al": {
      "totalCost": 20617.52,
      "premium": 20617.52,
      "limit": 1000000,
      "deductible": 0
    },
    "apd": {
      "totalCost": 4250.00,
      "premium": 4250.00,
      "limit": 150000,
      "deductible": 2500
    }
  }
}
```

| Field               | Description                                                       |
| ------------------- | ----------------------------------------------------------------- |
| `status`            | `"Indication"` or `"Quoted"` depending on the endpoint            |
| `submission_number` | Your reference ID for tracking — use this in subsequent API calls |
| `coverages`         | Pricing per coverage line with premium, limit, and deductible     |
| `totalCost`         | Combined premium and fees for a given coverage line               |

## Decline Reasons

A submission may be declined during the quoting process. Common reasons include:

* DOT number not found or inactive
* Insufficient years in business
* Operating in restricted states
* Adverse loss history
* Fleet size outside underwriting guidelines

When a submission is declined, the response will indicate the reason. Contact your Cover Whale representative if you believe a decline was made in error.

## Related Endpoints

* [Get an Indication](/api-reference/quoting/get-an-indication) — Preliminary pricing
* [Get a Quote](/api-reference/quoting/get-a-quote) — Full quote request
* [Send Quote Request](/api-reference/quoting/send-quote-request-email) — Email-based quote request
