Skip to content

Get an instant quote

POST /request-instant-quote returns the delivered price of one product for a quantity and a US ZIP code. You get one price per shipping option, cheapest first.

  • A sku_uuid and the search_session_uuid of the search that returned it. See Find products by photo.
  • The product has price_on_request: false.
curl -X POST "https://sandbox-api.tryflume.ai/partner/v1/request-instant-quote" \
-H "X-Flume-Partner-Key: $FLUME_PARTNER_KEY" \
-H "X-Flume-User-Token: $FLUME_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sku_uuid": "7f3c2a91-4b0e-4c8d-9a21-1f6b2d5e7c30",
"quantity_sqft": 6000,
"destination_zip": "22102",
"search_session_uuid": "5f0c1d2e-8a7b-4c3d-9e1f-2a3b4c5d6e7f"
}'
FieldRule
sku_uuidMust be a result of the search you name
search_session_uuidOne of this user's searches. Searches do not expire
quantity_sqftA whole number of square feet, 1 to 10,000,000
destination_zipA 5-digit US ZIP code
Idempotency-Key headerRequired. One per click

Set your HTTP read timeout to 75 seconds. The call holds for up to 60 seconds while Flume prices.

Response: 200
{
"status": "READY",
"failure_reason": null,
"quote_uuid": "9c1e4b7a-2f3d-4e5b-8a6c-7d8e9f0a1b2c",
"quote": {
"quote_uuid": "9c1e4b7a-2f3d-4e5b-8a6c-7d8e9f0a1b2c",
"quote_number": "Q-7KD2-M4PA",
"sku_uuid": "7f3c2a91-4b0e-4c8d-9a21-1f6b2d5e7c30",
"destination_zip": "22102",
"currency": "USD",
"created_at": "2026-10-16T09:14:22Z",
"valid_until": "2026-10-23T09:14:22Z",
"options": [
{
"source": "OVERSEAS_DIRECT",
"lead_time_min_days": 90,
"lead_time_max_days": 120,
"ships_from_country": "ES",
"quantity_sqft": "6000.00",
"price_per_sqft": "6.40",
"subtotal": "38400.00",
"sales_tax": "3168.00",
"total": "41568.00"
},
{
"source": "US_WAREHOUSE",
"lead_time_min_days": 14,
"lead_time_max_days": 30,
"ships_from_country": "US",
"quantity_sqft": "6000.00",
"price_per_sqft": "8.10",
"subtotal": "48600.00",
"sales_tax": "4009.50",
"total": "52609.50"
}
]
}
}

The call returns 200 whether or not it priced. Read status.

statusfailure_reasonMeaningDo this
READYnullquote holds the pricesShow the options
FAILEDTEMPORARILY_UNAVAILABLEStill pricing, or a temporary problemPoll. See step 3
FAILEDNOT_QUOTABLENo price for this product, quantity and ZIPOffer a sales request
FAILEDREGION_RESTRICTEDThe product cannot be sold to that stateAsk for another ZIP, or offer sales
FAILEDINCORRECT_DESTINATIONThe ZIP code does not existAsk for the ZIP again

quote_uuid is set on every answer.

Call GET /quotes/{quote_uuid} until status is READY or the reason changes.

curl -X GET "https://sandbox-api.tryflume.ai/partner/v1/quotes/9c1e4b7a-2f3d-4e5b-8a6c-7d8e9f0a1b2c" \
-H "X-Flume-Partner-Key: $FLUME_PARTNER_KEY" \
-H "X-Flume-User-Token: $FLUME_USER_TOKEN"
  • Poll every 12 seconds for the first 2 minutes.
  • Then every 30 seconds until 5 minutes.
  • Then stop and offer a sales request.
  • Polling uses no daily limit.
  • Do not retry POST /request-instant-quote instead. A retry counts against your daily quote limit again.

Each entry in quote.options is one way to ship.

FieldMeaning
sourceUS_WAREHOUSE or OVERSEAS_DIRECT
ships_from_countryTwo-letter country code, or null
lead_time_min_days, lead_time_max_daysDelivery window in days
quantity_sqftThe quantity priced
price_per_sqftDelivered price per square foot, before tax
subtotalDelivered price, before tax
sales_taxSales tax, or null
totalIncluding sales tax
  • Money is a decimal string in USD: "38400.00". Do not parse it as a float.
  • Show the figures as given. Do not add them up again.
  • Prices hold until quote.valid_until. That is 30 days after the quote is priced today. Always read the field. Do not compute it.
  • An option appears only when the quantity reaches its minimum order.
You getDo this
400 IDEMPOTENCY_KEY_REQUIREDSend the Idempotency-Key header
400 BELOW_MINIMUM_ORDERRaise the quantity. The message states the minimum
400 NOT_INSTANTLY_QUOTABLEOffer a sales request
404 SESSION_NOT_FOUNDUse one of this user's searches
404 NOT_FOUNDCheck sku_uuid
409 IDEMPOTENCY_IN_PROGRESSWait 2 seconds, then retry with the same key
422 SKU_NOT_IN_SEARCHUse the search_session_uuid of the page that returned the product
429 RATE_LIMITEDWait Retry-After seconds
429 DAILY_LIMIT_REACHEDThis user's own daily limit is used up (only when Flume set one). Tell the user when it resets: details.reset_at. Other users are not affected
  • A network error: retry with the same Idempotency-Key. You get the original answer.
  • A new click: use a new key.
  • See Idempotency.