Escape Mode TravelFind My Escape

Assistant planning workflow

Submit a travel inquiry with the traveler’s permission.

This interface supports one confirmed travel-planning request to Selena Huck. It creates an inquiry for personal follow-up. It does not book travel, collect payment, hold inventory, or provide a live quote.

Contract published September 30, 2026. OpenAPI description · API catalog · Privacy notice

Review and confirm before submitting

  1. Read the public guides and collect the traveler’s trip style, planning window, traveler count, comfortable total budget, name, and email. Preserve exact dates, airports, traveler and room configurations, and priorities in the optional fields. Ask for consequential missing details rather than inventing them.
  2. Explain that submitting stores the inquiry and consent time, attempts a traveler planning-snapshot email, and schedules advisor notifications. A planning snapshot is guidance, not a live quote. Provide the privacy notice.
  3. Ask for contact permission using the statement below. Offer marketing consent as a separate optional choice. Declining marketing does not prevent a response to the trip request.
  4. Show the exact trip and contact details that will be sent, the contact preference, and both consent choices. Obtain explicit final confirmation to submit that reviewed request. General interest in travel, an earlier request for research, or a generated example is not submission confirmation.
  5. Submit once only after confirmation. If any material field or consent choice changes, review the updated payload and obtain confirmation again. A browser assistant can instead help the traveler use the three-step quiz; the traveler should review and submit it.
  6. Report the actual response. A 201 confirms storage; report the email flag accurately. Never describe this as a booking, hold, inbox delivery, or guaranteed advisor notification.

Required contact consent

I agree that Selena may contact me by email about this travel request. I can ask to stop at any time.

Send literal JSON consent: true only when the traveler gives this permission and confirms submission. The server validates this boolean; it cannot independently verify that the assistant obtained the final confirmation.

Separate optional marketing consent

Also send me occasional Escape Mode travel inspiration and planning updates. I can unsubscribe at any time.

Keep marketingConsent false or omitted unless separately and explicitly chosen. Do not infer marketing consent from contact consent, preselect it for the traveler, or use a request for a quote as marketing permission.

Supported request

POST https://escapemodetravels.com/api/leads with Content-Type: application/json. The total body must be no more than 16,384 UTF-8 bytes.

No API key, OAuth token, or account is required for this public submission interface. Server-side HTTPS clients are supported. Cross-origin browser integration is not enabled. If an Origin header is present, its hostname must match the API request hostname. Server-side clients normally send no Origin header; do not forge browser origins or bypass a rejection.

Use only the documented field set. The supported contract limits are listed below. The current server trims strings and truncates overlong strings; assistants must keep within the limits so traveler details are not silently lost. Unknown optional values must be omitted, not guessed.

FieldRequiredAllowed value / limitMeaning
tripTypeYescruise, all-inclusive, bahamas-caribbean, disney-universal, europe, family-group, not-sureTrip style chosen by the traveler.
timingYes0-3, 3-6, 6-12, 12-plus, exploringPlanning window, not an exact departure date. Put exact dates in notes if known.
travelersYes1, 2, 3-5, 6-plusTraveler count range. Put exact traveler and room requirements in notes if known.
budgetYesunder-3000, 3000-5000, 5000-8000, 8000-15000, 15000-plus, not-sureComfortable total planning range in USD; not a verified package price.
firstNameYesstring, up to 80 charactersTraveler's first name; must be nonempty after trimming.
emailYesstring, up to 254 charactersTraveler's email; trimmed, lowercased, and checked for a simple local@domain.suffix shape.
consentYesboolean trueI agree that Selena may contact me by email about this travel request. I can ask to stop at any time. Set true only after explicit permission and final submission confirmation.
marketingConsentNoboolean, default falseAlso send me occasional Escape Mode travel inspiration and planning updates. I can unsubscribe at any time. Optional, separate opt-in. Omit or send false unless the traveler explicitly chooses it.
phoneNostring, up to 40 charactersOptional phone number. The server does not validate phone format.
contactPreferenceNoemail, phoneUse phone only when the traveler requests it and provides a phone number. Otherwise the server uses email.
destinationNostring, up to 120 charactersDestination idea; omit if undecided.
departureAirportNostring, up to 80 charactersDeparture airport or city supplied by the traveler.
notesNostring, up to 1200 charactersTrip dates, traveler/room configuration, priorities, and other nonsensitive details confirmed by the traveler.
conciergeContextNostring, up to 1200 charactersOptional short traveler-approved conversation summary. Appended to notes; combined stored notes are limited to 1,200 characters, with notes first.
referrerNameNostring, up to 100 charactersOptional referral name supplied by the traveler.
offerNostring, up to 120 charactersOptional real site offer identifier; do not invent a promotion or price.
sessionIdNostring, up to 80 charactersOptional session identifier. Omission creates a UUID. This is not an idempotency key.
sourceNostring, up to 100 charactersOptional source label, such as assistant. Omission or empty text becomes direct.
utmSourceNostring, up to 120 charactersOptional known campaign source.
utmMediumNostring, up to 120 charactersOptional known campaign medium.
utmCampaignNostring, up to 160 charactersOptional known campaign name.
utmContentNostring, up to 160 charactersOptional known campaign content identifier.
referrerNostring, up to 500 charactersOptional actual referring page URL. Do not invent attribution.

Budget values are total planning ranges in USD. Timing and traveler count use ranges; put exact dates and traveler/room counts in notes when known. A phone preference is honored only with a phone number; otherwise the server uses email. The notes and optional conversation summary share a stored 1,200-character limit, with notes first.

Keep passport images or numbers, payment-card details, passwords, government identification, medical records, and other highly sensitive information out of this interface. Share only traveler-approved, relevant details; use a secure method from Selena if sensitive booking information is later needed.

Example payload — documentation only

This example does not represent a real traveler or permission. Replace it with reviewed details; do not submit it for testing.

{
  "tripType": "cruise",
  "timing": "exploring",
  "travelers": "2",
  "budget": "3000-5000",
  "firstName": "Example Traveler",
  "email": "traveler@example.com",
  "consent": true,
  "marketingConsent": false,
  "contactPreference": "email",
  "source": "assistant",
  "notes": "Example only. Replace with the traveler's confirmed trip details before submitting."
}

Responses and errors

A created inquiry returns HTTP 201 and JSON with a UUID leadId and boolean emailSent. Save the ID for the traveler’s records; it is not a credential and does not grant access to retrieve or change the inquiry.

emailSent: true means the email service accepted the traveler snapshot. It does not prove inbox delivery. emailSent: false with 201 means the inquiry was still stored and the automatic traveler email failed. Advisor notifications are separate background work; this response does not confirm their delivery.

HTTP statusMeaning
200Unexpected non-created response. Do not interpret this as a stored inquiry; only 201 is documented creation success. Do not retry automatically.
201Inquiry stored. Returns leadId and emailSent. emailSent=true means the email service accepted the traveler snapshot, not that it reached the inbox. Advisor notifications run separately and are not confirmed by this flag.
400The request was not valid. Malformed JSON, a non-object JSON body, or a body over 16,384 UTF-8 bytes.
403Invalid request origin. A supplied Origin header has an invalid or different hostname.
422Please complete the required trip and contact fields. Missing or invalid required fields, option values, email, or literal boolean consent=true.
429This request has already been received. Selena will follow up soon. At least three inquiries for this normalized email have been stored in the preceding ten minutes. This is a rate limit, not a lookup or idempotency guarantee.
500Something went wrong. Please try again. Persistence or other server processing failed. Some side effects may already have occurred; do not automatically retry.

Errors use JSON with an error message. Transport or platform failures may have a different body. Do not promise a delivery or follow-up deadline.

Storage, emails, and retries

Scope

Only the public planning-inquiry submission is supported by this contract. Private advisor operations and internal site interfaces are not advertised as assistant capabilities. Assistants should use public pages for research and this confirmed submission workflow for a planning inquiry.

Use Find My Escape · Return to Escape Mode Travel