Skip to navigation

Get a quote request

View as Markdown

Authentication

AuthorizationBearer

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

Path parameters

idstringRequired

Headers

PreferstringOptional

wait=N holds the read open for up to N seconds, where N is a whole number from 0 to 20. The answer comes as soon as the request changes, with a new quote or a new status, or when the time runs out. A change counts from since_version when you send it, and otherwise from the version that the read finds first, so the full N seconds pass only when nothing changes. The answer carries Preference-Applied when the server held the read open. When the server can't hold the request, it answers at once without Preference-Applied and with Retry-After. Wait that long before you poll again.

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:

Query parameters

since_versionintegerOptional<=9007199254740991

The version of this quote request in the last answer you read. With Prefer: wait, a request that is already newer answers at once, and otherwise the read waits for a newer version or a status other than in_progress. A version higher than the current one counts as the current one. Without Prefer: wait, the read answers at once either way.

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 for a daily sandbox limit. 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.
Preference-AppliedstringOptionalformat: "^wait=[0-9]+$"

wait=N when the server held the read open for up to N seconds. Absent when the server answered without holding the read open.

Retry-AfterintegerOptional
Sent when the server can't hold the read open. Wait this many seconds before you poll again.

Response

Status, quote summaries, and next actions. Reading it doesn't start a new quote.
idstringformat: "^qreq_[a-z0-9]{8,64}$"
versioninteger<=9007199254740991
linestring
environmentstring
application_idstringformat: "^app_[a-z0-9]{8,64}$"
application_versioninteger<=9007199254740991
statusenum
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
market_outcomeslist of objects
requirementslist of objects
assumptionslist of objects
next_actionslist of objects
failureobject or null

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error