Create Quote Request
/v1/quotesCreates a quote request from the insured's business data, the lines of business being quoted, and the carriers the agent selected. This creates or matches the client record and stages one job per carrier per line. Nothing is dispatched until you start the run.
Request
POST /v1/quotes
Authorization: Bearer qs_live_xxxxx
Content-Type: application/json
Idempotency-Key: crm-opp-0065f00000ABCDE-001{
"externalReference": "0065f00000ABCDE",
"externalSource": "salesforce",
"linesRequested": ["bop", "wc"],
"carrierIds": ["carrier-a", "carrier-b", "carrier-c"],
"input": {
"businessName": "Acme Logistics LLC",
"dba": "Acme Freight",
"businessType": "llc",
"industryCode": "484121",
"industryDescription": "General freight trucking, long-distance",
"yearEstablished": 2014,
"streetAddress": "1200 Commerce St",
"city": "Dallas",
"state": "TX",
"zipCode": "75202",
"annualRevenue": 4200000,
"numberOfEmployees": 28,
"fullTimeEmployees": 24,
"partTimeEmployees": 4,
"annualPayroll": 1450000,
"fein": "75-1234567",
"bopCoverageLimit": "1M/2M",
"deductible": "1000",
"propertyValue": 850000,
"policyStartDate": "10/01/2026",
"policyExpirationDate": "10/01/2027",
"contactName": "Dana Reyes",
"contactEmail": "dana@acmelogistics.com",
"contactPhone": "2145550137",
"agentContactName": "Sam Patel",
"agentContactEmail": "sam@agency.com",
"agentContactPhone": "2145550188"
},
"workersComp": { }
}Top Level Fields
| Field | Type | Description |
|---|
The input Object
Always Required
| Field | Type | Description |
|---|
Required When Quoting BOP
Only enforced when bop appears in linesRequested.
| Field | Type | Description |
|---|
Optional, Strongly Recommended
| Field | Type | Description |
|---|
Response 201 Created
{
"success": true,
"data": {
"quoteRequestId": "qr_01HV...",
"externalReference": "0065f00000ABCDE",
"status": "pending",
"linesRequested": ["bop", "wc"],
"jobs": [
{
"jobId": "job_01HV...",
"carrierId": "carrier-a",
"lineOfBusiness": "bop",
"status": "standby"
}
],
"skippedCarriers": [
{
"carrierId": "carrier-c",
"reasons": [{ "line": "wc", "reason": "State not written by this carrier" }]
}
],
"deepLink": "https://app.quotesweep.com/quotes/qr_01HV...",
"createdAt": "2026-08-25T14:02:11Z"
}
}Selected carriers can be skipped
QuoteSweep runs an appetite and eligibility check at creation. A carrier the agent picked may be skipped for a line when the risk falls outside appetite — wrong state, industry, or revenue band. Skips are returned in skippedCarriers (all lines skipped) and partialSkips (some lines skipped) with reasons. Surface them, or agents will not understand why a carrier they selected returned nothing.
Validation Errors
Field-level validation failures return 400 with every failing field, not just the first.
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Request contains invalid fields",
"field_errors": {
"contactPhone": ["Insured phone must be 10 digits"],
"zipCode": ["Valid ZIP code is required (e.g., 12345)"]
}
}
}Idempotency
Send an Idempotency-Key header — the source record ID plus an attempt number works well. A repeated request carrying the same key returns the original quote request instead of creating a duplicate client record and a duplicate carrier submission.
Next step
After creating the request, start the run to dispatch AI agents against the selected carriers.