Quotes

Price a trip

Prices one trip against the travel catalogue and returns the priced offers, cheapest first, each with its premium, its guarantee ceilings and its policy documents. Read-only: nothing is stored, no subscription is created and no attribution happens here.

Every response also opens a quoting session: sessionId is a signed token identifying THIS traveller's flow, and POST /links requires it. To keep one traveller's session across a trip edit, echo the previous sessionId in the body — a valid one is returned unchanged, anything else silently starts a fresh session (a broken continuation never fails a pricing call). Never share one sessionId across travellers.

post/api/v1/travel/quotes

Request

  • Base URL: https://atlas.hellosafe.com
  • URL: https://atlas.hellosafe.com/api/v1/travel/quotes
  • Auth: API key in header x-atlas-key-id and API key in header x-atlas-timestamp and API key in header x-atlas-signature

Request body

sessionIdstring

Optional: the sessionId from THIS traveller's previous /quotes response, to keep their session across a trip edit. A valid token is echoed back; anything else silently starts a fresh session. Never reuse one across travellers.

language'bg' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'et' | 'fi' | 'fr' | 'hr' | 'hu' | 'is' | 'it' | 'lt' | 'lv' | 'mt' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'sk' | 'sl' | 'sv' | 'tr'

Funnel language.

Example request

{
  "trip": {
    "stateResidence": "NY"
  }
}

Response

Priced offers.

okboolean
mode'sandbox' | 'live'
sessionIdstring

This traveller's quoting session, qs_<nonce>.<hmac>. Required by POST /links. Fresh on every response unless you echoed a valid one in.

unpricedCountinteger

Catalogue offers that could not be priced for this trip.

redirectOnlyCountinteger

Offers that matched and were priced but are deliberately NOT returned: the catalogue sells them by redirecting the traveller to the insurer's own site, so no subscription is created, the conversion postback never fires, and the sale could not be attributed or paid to you. Normally 0, because they are now excluded before we ever see them; a non-zero value means one slipped past that exclusion and our own filter caught it. Every offer you DO get back is one you can be paid on.

nearMissCountinteger

Offers that would match if a filter were relaxed.

Example response

{
  "offers": [
    {
      "iconUrl": "https://hellosafe.com/api/offer-icon/156",
      "price": {
        "currency": "AUD",
        "insurerCurrency": "EUR"
      }
    }
  ],
  "trip": {
    "stateResidence": "NY"
  },
  "meta": {
    "partnerFee": {
      "feeBps": 3300,
      "upliftBps": 2000,
      "commissionBps": 2700
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.