Skip to main content

Timeouts

Since many requests involve pulling and aggregating data from a large number of data sources, you may occasionally hit a timeout before receiving a response.

When a timeout happens, you will receive an HTTP 503 response code, with the Content-Type header set to application/json, and the following response body:

{
"message": "Please refresh this quote to receive your Branch rate"
}

That wording is used when the request that timed out was one that returns an offer (requestQuote, requestQuoteV2, requestQuoteRC1, recalculateQuote, recalculateQuoteV2, fillOutSkippedDataPulls, addCar, addDriver, getOffer, enhancedGetOffer), because re-running those usually succeeds right away off cached data. Any other operation—including requestBind—returns:

{
"message": "Service Unavailable"
}

The message is display copy intended for the end user and may change—key your retry logic on the HTTP 503 status code, not on the message text.

warning

If a requestBind call times out, do not assume the bind failed—the request may still have completed after the timeout. Call getBoundPoliciesByOfferId to check whether the policy bound before retrying, so you don't submit a duplicate bind.

We cache data from previous requests so it's often immediately available on subsequent attempts. We recommend making your client code watch for timeouts and automatically retrying when they occur—the retry will often succeed because the data will have been cached from the previous attempt.