Status & Jobs

GET/v1/quotes/:id

Returns the quote request, every carrier job with its current state, appetite skips, and results for jobs that have completed.

Request

GET /v1/quotes/qr_01HV...
Authorization: Bearer qs_live_xxxxx

Response 200 OK

{
  "success": true,
  "data": {
    "quoteRequestId": "qr_01HV...",
    "externalReference": "0065f00000ABCDE",
    "status": "partial",
    "linesRequested": ["bop", "wc"],
    "deepLink": "https://app.quotesweep.com/quotes/qr_01HV...",
    "createdAt": "2026-08-25T14:02:11Z",
    "completedAt": "2026-08-25T14:09:52Z",
    "jobs": [
      {
        "jobId": "job_01HV...",
        "carrierId": "carrier-a",
        "lineOfBusiness": "bop",
        "status": "success",
        "startedAt": "2026-08-25T14:03:04Z",
        "completedAt": "2026-08-25T14:07:31Z",
        "durationSeconds": 267,
        "retryCount": 0
      },
      {
        "jobId": "job_02HV...",
        "carrierId": "carrier-b",
        "lineOfBusiness": "wc",
        "status": "mfa_waiting",
        "startedAt": "2026-08-25T14:03:04Z",
        "actionRequired": {
          "type": "mfa",
          "message": "Carrier sent a verification code to the agent's phone",
          "deepLink": "https://app.quotesweep.com/quotes/qr_01HV.../jobs/job_02HV..."
        }
      },
      {
        "jobId": "job_03HV...",
        "carrierId": "carrier-c",
        "lineOfBusiness": "bop",
        "status": "failed",
        "errorType": "declined_appetite",
        "errorMessage": "Carrier declined: class of business outside appetite",
        "completedAt": "2026-08-25T14:05:12Z"
      }
    ],
    "skippedCarriers": [
      {
        "carrierId": "carrier-d",
        "reasons": [{ "line": "wc", "reason": "State not written by this carrier" }]
      }
    ],
    "partialSkips": [
      {
        "carrierId": "carrier-a",
        "skippedLines": [{ "line": "wc", "reason": "Payroll exceeds carrier maximum" }]
      }
    ],
    "results": []
  }
}

Request Status

ValueDescription

Job Status

One job exists per carrier per line of business.

ValueDescription

Appetite Skips

skippedCarriers lists carriers skipped entirely; partialSkips lists carriers quoting some lines but not others. Both carry reasons. These are not failures — the carrier was never dispatched because the risk falls outside its appetite. Display them so agents understand why a selected carrier produced no result.

Polling cadence

Poll every 5 to 10 seconds while a request is in_progress. Runs commonly take several minutes, so prefer webhooks where your platform supports receiving them, and treat polling as the fallback.