- The response lists one price per shipping option, cheapest first. Freight and sales tax are included.
search_session_uuidmust be the search that returned the product.- The call can take up to 60 seconds. Set your HTTP read timeout to 75 seconds.
READY:quoteholds the prices, valid untilvalid_until.FAILED: readfailure_reason.TEMPORARILY_UNAVAILABLEcan mean the quote is still pricing. PollGET /quotes/{quote_uuid}.- A shipping option is priced only when the quantity reaches its
minimum_order_sqft. - Daily limit: 200 instant quotes per partner.
- Docs
- API reference
- Quotes
- Request an instant quote
Request an instant quote
Code samples show live values. Live is in early access and not yet open to new partners: see Environments.
https://sandbox-api.tryflume.ai/partner/v1/request-instant-quoteReturns the delivered price of one product for a quantity and a US ZIP code.
Guide: Get an instant quote
Request
Headers
| Header | Required | Description |
|---|---|---|
X-Flume-Partner-Key | Yes | Your partner key. See Authentication and keys. |
X-Flume-User-Token | Yes | The access token of the user you call for. See Users and verification. |
Idempotency-Key | No | One value per user action, 1 to 255 characters. A UUID works well. A retry with the same value returns the first response. |
Body
Send application/json. A field the API does not list returns a 422 that names it.
The product to price.
The quantity, as a whole number of square feet.
- 1 to 10,000,000
The US delivery ZIP code, as 5 digits.
- 5 digits
The search that returned this product. Use the id from the page that listed it. Searches do not expire, so a later quote can send the same id.
Returns
200 with these fields. Every field is always present. A field with no value is null.
statusenumREADYorFAILED.failure_reasonenum or nullWith
FAILED: why there are no prices.TEMPORARILY_UNAVAILABLEcan mean the quote is still pricing.One ofNOT_QUOTABLETEMPORARILY_UNAVAILABLEREGION_RESTRICTEDINCORRECT_DESTINATION
quote_uuidstring (UUID) or nullThe id to poll with. Send it to
GET /quotes/{quote_uuid}while the quote is still pricing. Every response has it.quoteobject or nullThe prices, with
READY. Otherwisenull.ShowHide the 8 fields of
quotequote_uuidstring (UUID)The quote's id in the user's Flume account.
quote_numberstringThe quote's number, as the user sees it in Flume.
sku_uuidstring (UUID)The product priced.
destination_zipstringThe delivery ZIP code.
currencystringAlways
USD.- Default
"USD"
- Default
created_atstringWhen the quote was priced, in UTC.
valid_untilstringThe prices hold until this time, in UTC.
optionsarray of objectsOne entry per shipping option, cheapest
totalfirst.ShowHide the 9 fields of
optionssourceenumHow this option ships:
US_WAREHOUSEorOVERSEAS_DIRECT.ships_from_countrystring or nullThe 2-letter code of the country the option ships from, or
null.lead_time_min_daysintegerThe shortest delivery time, in days.
lead_time_max_daysintegerThe longest delivery time, in days.
quantity_sqftstringThe quantity priced, in square feet.
price_per_sqftstringThe delivered price per square foot, before tax.
subtotalstringThe delivered price, before tax.
sales_taxstring or nullThe sales tax, or
null.totalstringThe delivered price, including sales tax.
Errors
Every error uses one envelope. Branch on error.code.
| Status | Code | Meaning |
|---|---|---|
| 400 | BELOW_MINIMUM_ORDER | The quantity is under the product's minimum order. The message states the minimum. |
| 400 | IDEMPOTENCY_KEY_REQUIRED | The Idempotency-Key header is missing. |
| 400 | NOT_INSTANTLY_QUOTABLE | Flume's sales team prices this product. There is no instant quote. |
| 401 | EMBED_TOKEN_INVALID | You sent an Authorization header and no X-Flume-Partner-Key. Flume read the call as one from its own iframe. |
| 401 | PARTNER_KEY_INVALID | The partner key is missing, unknown, revoked, expired, or from the other environment. On live, also a platform Flume has not enabled yet. |
| 401 | USER_TOKEN_INVALID | The user access token is unknown, revoked, another partner's, or replaced by a later verification. A verification in the iframe replaces it too. |
| 403 | USER_ACCOUNT_CLOSED | The user's email belongs to a Flume account that Flume has closed. |
| 403 | USER_NOT_CONNECTED | No X-Flume-User-Token header was sent. |
| 404 | NOT_FOUND | The thing does not exist, or is not this user's. A search id that is not a UUID also returns this code. |
| 404 | SESSION_NOT_FOUND | The search does not exist, or is another user's. |
| 409 | IDEMPOTENCY_IN_PROGRESS | The first call with this key is still running. |
| 422 | IDEMPOTENCY_KEY_REUSED | The key was already used with a different body. |
| 422 | SKU_NOT_IN_SEARCH | The product was not a result of the search you named. |
| 422 | VALIDATION_FAILED | A field is missing, unknown or has an unusable value. field names it as a dotted path. Some refusals carry the detail in details and leave field empty. |
| 429 | DAILY_LIMIT_REACHED | This user's own daily limit of searches or instant quotes is used up. Flume sets this limit per partner account, and it is off by default. details holds kind, limit, reset_at and retry_after_s. |
| 429 | RATE_LIMITED | Today's limit for this call is used up. Retry-After is the number of seconds until 00:00 UTC. |
| 500 | INTERNAL | Something failed on Flume's side. |