# Create a quote

**POST /api/v1/quotes**

To provide insurance coverage to contractors on your platform, you first create a `Quote` object. If you use your test API keys, everything will occur as if in production but the policy that's generated will be a test policy.

## Servers
- Production server: https://api.1099policy.com (Production server)

## Parameters

### Body: application/json (object)

- **bind** (boolean)  
  Controls how the request behaves when the contractor already has a matching policy for the requested coverage. When `true` (the default), the request is rejected with a `contractor_has_matching_policy` error. When `false`, the endpoint behaves like a "get or create" and instead returns the existing quote tied to the matching policy (with a `200` status), so you can surface its rates and fees—for example, to let a returning contractor opt in—without creating a duplicate. Defaults to `true`.

- **contractor** (string)  
  The ID of the contractor seeking a quote for insurance coverage.

- **coverage_type** (array[string])  
  An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional`, `workers-comp`, `media`, and `cyber`. Note that `media` and `cyber` coverage requires `general` coverage, except for Hawaii (HI) residents where general liability is not available.

- **effective_date** (integer(int64))  
  The date when the insurance coverage is set to take effect. Measured in seconds since the Unix epoch. This date must be set in the future. The default effective_date is the next day.

- **end_date** (integer(int64))  
  The date when the insurance coverage is set to expire. Measured in seconds since the Unix epoch. This date must be after the effective date. If the end_date is on the same day as the effective_date, it will automatically be adjusted to the start of the next day. The default end_date is 30 days after the effective date.

- **job** (string)  
  The ID of the job assignment that the contractor will be working on.

## Responses
### 200
Returned when `bind` is `false` and the contractor already has a matching policy. The body is the existing quote tied to that policy rather than a newly created one.

#### Body: application/json (object)
- **contractor** (string)  
  ID of the contractor.

- **coverage_type** (array[string])

- **created** (integer(int64))

- **effective_date** (string(int64))  
  The date when the insurance coverage is set to take effect. Measured in seconds since the Unix epoch. This date must be set in the future. The default effective_date is the next day.

- **eligible** (boolean)  
  Indicates whether a contractor is eligible for insurance or not.

- **end_date** (string(int64))  
  The date when the insurance coverage is set to expire. Measured in seconds since the Unix epoch. This date must be after the effective date. The default end_date is 30 days after the effective date.

- **gl_net_rate** (integer)  
  The amount of money the 1099 contractor pays in general liability premium per every $100 earned.  
  A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

- **id** (string)

- **job** (string)  
  ID of the job that the contractor was paid to do.

- **net_rate** (integer)  
  The amount of money the 1099 contractor pays in premium per every $100 earned.  
  A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

- **quote_json** (object)  
  The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

- **wc_net_rate** (integer)  
  The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.  
  A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

### 201
Returns the quote object if the post succeeded.

#### Body: application/json (object)
- **contractor** (string)  
  ID of the contractor.

- **coverage_type** (array[string])

- **created** (integer(int64))

- **eligible** (boolean)  
  Indicates whether a contractor is eligible for insurance or not.

- **id** (string)

- **job** (string)  
  ID of the job that the contractor was paid to do.
