Skip to navigation

Start a quote request

View as Markdown

Also available as the MCP tool start_quote_request.

Authentication

AuthorizationBearer

Your Truvo API key, sent as a bearer token. The prefix selects sandbox (trv_sandbox_) or live (trv_live_).

Headers

Truvo-VersionenumRequiredDefaults to 2026-09-26

The contract revision of this request, which every operation in this document requires. This document describes 2026-09-26. Served revisions: 2026-09-26. A missing header, or one that names no served revision exactly, answers invalid_version (400), and its field error lists the served revisions in allowed_values, newest first.

Allowed values:
Idempotency-KeystringRequired

A caller-chosen request key. A key replays for at least 24 hours. The same key with the same body starts no second request. It returns the same quote request as it is now, with the same id and its current status, version, and quotes, so the answer can differ from the first one. The same key with a different body is a conflict.

Request

This endpoint expects an object.
PersonalAutoQuoteRequestHttpBodyobjectRequired
OR
RentersQuoteRequestHttpBodyobjectRequired
OR
PetQuoteRequestHttpBodyobjectRequired

Response headers

Request-Idstringformat: "^req_[0-9a-f]{16}$"

The ID of this answer. An error body repeats it as request_id.

Truvo-Versionstringformat: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"

The contract revision of this answer: the revision that the request named in Truvo-Version. A 404, and a refusal sent before Truvo knows your revision (401, 413, a 429 for failed authentication, and a 400 invalid_version), name the current revision and take its shape.

RateLimit-LimitintegerOptional
The calls this window allows, for the limit you're closest to reaching. The window is one minute or one UTC day. A fixed window allows a burst of up to twice the limit across a window edge.
RateLimit-RemainingintegerOptional
The calls left in the current window.
RateLimit-ResetintegerOptional
Seconds until the current window ends and the count resets.

Response

Starts a quote request for one line and one applicant.
idstringformat: "^qreq_[a-z0-9]{8,64}$"

The quote request ID, which starts with qreq_.

versioninteger<=9007199254740991

Rises with each change to the request: the start of its run, each new quote, and the final status. Send it as since_version to wait for the next change.

linestring
The insurance line.
environmentstring

The environment of the call: sandbox or live.

created_atdatetime

When Truvo created the quote request. The created_after and created_before list filters compare against it.

updated_atdatetime

When the quote request last changed. The updated_since list filter compares against it.

statusenum

Where the request stands. failed is an error on Truvo’s side and always says what to do next. incomplete is a finished result where carriers gave no final answer. Neither completed nor incomplete is an error. action_required is not used yet. Switch on it: a new value comes only in a new revision.

Allowed values:
status_detailsobject

Why the resource has this status. New reasons can arrive in any revision: show message, and give any switch on reason a default branch.

quoteslist of objects
The ID and the version of each quote. A request in progress already shows the quotes so far.
market_outcomeslist of objects
The carriers that Truvo asked, and how each answered.
assumptionslist of objects

The defaults that Truvo set before it asked carriers, and each stated value that Truvo rates differently, each with a path, a value, and a source. To change a default, send the fact. A rated value’s label says why Truvo rates it so.

next_actionslist of objects
What you can do next. Skip an action of a type that you don't know.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
409
Conflict Error
413
Content Too Large Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error