curl -X POST https://portal.bridgelinepf.com/api/v1/quotes/qte_2lo4LFk5rf8toDFJHSUZ2O/hosted-link \
-H "Authorization: Bearer $BRIDGELINE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
const res = await fetch(`https://portal.bridgelinepf.com/api/v1/quotes/${quoteId}/hosted-link`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.BRIDGELINE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
},
})
const { hosted_url } = await res.json()
import os
import uuid
import requests
res = requests.post(
f"https://portal.bridgelinepf.com/api/v1/quotes/{quote_id}/hosted-link",
headers={
"Authorization": f"Bearer {os.environ['BRIDGELINE_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
timeout=30,
)
hosted_url = res.json()["hosted_url"]
{
"id": "qte_2lo4LFk5rf8toDFJHSUZ2O",
"hosted_url": "https://portal.bridgelinepf.com/q/4nHnCzyp1YZ78mOscafTROmG9hSYlXaplWVeA8CeU90",
"expires_at": "2026-11-03T15:04:05Z"
}
{
"error": {
"type": "conflict",
"code": "QUOTE_EXPIRED",
"message": "Create a new quote; an expired quote can't get a new link.",
"doc_url": "https://docs.bridgelinepf.com/errors#QUOTE_EXPIRED",
"request_id": "req_8fJ2kQ9xLm4TzW7nB3cY5pDv"
}
}
Quotes
Get a new hosted link for a quote
Revokes the quote’s current hosted page link immediately and returns a new one. Use it when a link was sent to the wrong person, or to get a link again after creating the quote (GET returns hosted_url null). The quote’s expires_at never changes; an expired quote is a 409 QUOTE_EXPIRED. Retrying with the same Idempotency-Key returns the same link.
POST
/
v1
/
quotes
/
{id}
/
hosted-link
curl -X POST https://portal.bridgelinepf.com/api/v1/quotes/qte_2lo4LFk5rf8toDFJHSUZ2O/hosted-link \
-H "Authorization: Bearer $BRIDGELINE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
const res = await fetch(`https://portal.bridgelinepf.com/api/v1/quotes/${quoteId}/hosted-link`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.BRIDGELINE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
},
})
const { hosted_url } = await res.json()
import os
import uuid
import requests
res = requests.post(
f"https://portal.bridgelinepf.com/api/v1/quotes/{quote_id}/hosted-link",
headers={
"Authorization": f"Bearer {os.environ['BRIDGELINE_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
timeout=30,
)
hosted_url = res.json()["hosted_url"]
{
"id": "qte_2lo4LFk5rf8toDFJHSUZ2O",
"hosted_url": "https://portal.bridgelinepf.com/q/4nHnCzyp1YZ78mOscafTROmG9hSYlXaplWVeA8CeU90",
"expires_at": "2026-11-03T15:04:05Z"
}
{
"error": {
"type": "conflict",
"code": "QUOTE_EXPIRED",
"message": "Create a new quote; an expired quote can't get a new link.",
"doc_url": "https://docs.bridgelinepf.com/errors#QUOTE_EXPIRED",
"request_id": "req_8fJ2kQ9xLm4TzW7nB3cY5pDv"
}
}
- The old link stops working immediately, for everyone.
expires_atnever changes. An expired quote returns409 QUOTE_EXPIRED; create a new quote instead.- An interested quote can get a new link. It shows your client’s choice, not the options again.
- The same
Idempotency-Keyreturns the same link without revoking it again. A new key, or no key, revokes the last link and mints another.
curl -X POST https://portal.bridgelinepf.com/api/v1/quotes/qte_2lo4LFk5rf8toDFJHSUZ2O/hosted-link \
-H "Authorization: Bearer $BRIDGELINE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
const res = await fetch(`https://portal.bridgelinepf.com/api/v1/quotes/${quoteId}/hosted-link`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.BRIDGELINE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
},
})
const { hosted_url } = await res.json()
import os
import uuid
import requests
res = requests.post(
f"https://portal.bridgelinepf.com/api/v1/quotes/{quote_id}/hosted-link",
headers={
"Authorization": f"Bearer {os.environ['BRIDGELINE_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
timeout=30,
)
hosted_url = res.json()["hosted_url"]
{
"id": "qte_2lo4LFk5rf8toDFJHSUZ2O",
"hosted_url": "https://portal.bridgelinepf.com/q/4nHnCzyp1YZ78mOscafTROmG9hSYlXaplWVeA8CeU90",
"expires_at": "2026-11-03T15:04:05Z"
}
{
"error": {
"type": "conflict",
"code": "QUOTE_EXPIRED",
"message": "Create a new quote; an expired quote can't get a new link.",
"doc_url": "https://docs.bridgelinepf.com/errors#QUOTE_EXPIRED",
"request_id": "req_8fJ2kQ9xLm4TzW7nB3cY5pDv"
}
}
Authorizations
bl_live_… or bl_test_… API key.
Headers
API version (a date). Defaults to 2026-09-23; echoed on every response.
Pattern:
^\d{4}-\d{2}-\d{2}$Retrying with the same key and body within 24h replays the original response.
Required string length:
1 - 255Path Parameters
The quote id (qte_…).