emailstring email nullable
phone_numberstring nullable
phone_country_codestring nullable
ISO 3166-1 alpha-2 country inferred from the user's phone number
display_currency_preference'USD' | 'CAD' nullable
User-selected display currency. Null means no explicit choice yet.
usd_to_cad_ratenumber nullable
Latest cached USD to CAD exchange rate for display estimates
usd_to_cad_rate_fetched_atstring date-time nullable
When the latest cached USD to CAD exchange rate was fetched
account_state'pending_email' | 'complete' | 'anonymous'
is_anonymousboolean
A guest: an anonymous session with no Axel account yet. Every other profile field is a placeholder until they sign up at Book.
created_atstring date-time nullable
When the account was created (a guest: the time of the read)
member_sincestring nullable
email_slugstring required
is_email_verifiedboolean required
Whether the user's primary email is verified
phone_verifiedboolean
Whether the account has a verified phone number. False for an email guest (booked with just an email): routes that need a phone answer 403 phone_verification_required until one is added.
referred_codestring nullable
membership_status'free' | 'paying' | 'referred' | 'lapsed' required
show_upgrade_ctaboolean required
verified_emailsstring[]
User's verified email addresses they can forward from
forwarding_addressstring required
Email address for forwarding booking confirmations
auto_reprice_flightsboolean required
Automatically approve flight repricing opportunities
flight_repricing_choice_recordedboolean nullable
Customer explicitly chose repricing settings; legacy defaults do not count
flight_repricing_airlinesstring[]
Airlines currently supported for flight repricing enrollment
auto_reprice_hotelsboolean required
Automatically approve hotel repricing opportunities
action_threshold_usdinteger required
Minimum savings (USD) to notify about opportunities
quiet_hours_startinteger nullable
Start of quiet hours (0-23, local time)
quiet_hours_endinteger nullable
End of quiet hours (0-23, local time)
sms_opted_inboolean required
Whether the user has explicitly opted in to non-OTP SMS
sms_opted_outboolean required
Whether the user has an active SMS opt-out state