Skip to content

Open Flume signed in

POST /deep-links returns a one-time URL that opens the Flume app with the user signed in. Create it on the click, and open it at once.

  • A search_session_uuid that belongs to the user.
  • A click from the user. Do not create links ahead of time.
curl -X POST "https://sandbox-api.tryflume.ai/partner/v1/deep-links" \
-H "X-Flume-Partner-Key: $FLUME_PARTNER_KEY" \
-H "X-Flume-User-Token: $FLUME_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"search_session_uuid": "5f0c1d2e-8a7b-4c3d-9e1f-2a3b4c5d6e7f",
"sku_uuid": "7f3c2a91-4b0e-4c8d-9a21-1f6b2d5e7c30"
}'
Response: 201
{
"url": "https://app.tryflume.ai/?utm_source=acme&utm_medium=partner#/l/dlk_q3Vh8yT…",
"expires_at": "2026-10-23T09:14:22Z"
}
To openSend
The search resultssearch_session_uuid
A productsearch_session_uuid, sku_uuid
An instant quotesearch_session_uuid, sku_uuid, quote_uuid

Open url in a new tab, in the same click.

button.addEventListener("click", async () => {
const tab = window.open("", "_blank");
if (tab) tab.opener = null; // the Flume app must not reach back into your page
try {
const { url } = await createDeepLinkOnYourBackend();
if (url) tab.location = url;
else tab.close();
} catch {
tab?.close();
}
});

createDeepLinkOnYourBackend is your own function. Opening the tab first keeps the browser's pop-up blocker from stopping it.

  • The link works once, within 7 days.
  • Never store, log or email url. It signs the user in.
  • Do not parse or rebuild url.
  • For a link you can store, use product_url from the save payload.

Add redirect_uri to return the user to your page afterwards.

  • It must be an https URL.
  • Its host must be a redirect host agreed with Flume.
  • Otherwise the call is a 422 VALIDATION_FAILED naming redirect_uri.
You getDo this
404 SESSION_NOT_FOUNDUse one of this user's searches
404 NOT_FOUNDCheck sku_uuid, and that quote_uuid is one of this user's quotes
422 SKU_NOT_IN_SEARCHUse the search that returned the product
422 QUOTE_NOT_READYWait until the quote is READY
422 VALIDATION_FAILEDFix the field named in error.field. A quote for another product is refused this way
429 RATE_LIMITEDWait Retry-After seconds
url is nullYou replayed an Idempotency-Key. Call again with a new key