Bowmark AIdocs

Trek Travel

Trek Travel's guided cycling and hiking tour catalog — search by destination, activity, activity level and price, then read one trip's real scheduled…

Trek Travel's guided cycling and hiking tour catalog — search by destination, activity, activity level and price, then read one trip's real scheduled departure dates with each date's real per-person price (double and single occupancy) and booking status, straight from the site's own catalog and trip pages.

Domain: trektravel.com

Also known as: Trek Travel, trektravel, TrekTravel, trektravel.com

Call it directly

bowmark.providers.trektravel.searchTours(filters?: TrekTravelSearchFilters): Promise<TrekTravelTourSummary[]>
bowmark.providers.trektravel.getDeparturePricing(url: string): Promise<TrekTravelDeparturePricing>

Functions

FunctionWhat it does
searchToursSearches Trek Travel's real trip catalog by destination, activity, activity level, hotel level, duration and price — the same Algolia index the site's own "Find My Perfect Trip" filter tool…
getDeparturePricingReads one trip's real scheduled departures straight off its own page: each date's real per-person price (double occupancy, plus the single-occupancy surcharge), its booking status…

Types

// Trek Travel's OWN shapes — not a capability contract.

interface TrekTravelTourSummary {
  title: string;
  url: string;                  // the key getDeparturePricing takes
  activity: string;             // "Cycling" | "Hiking & Walking" | "Multi-Adventure"
  tripStyle: string | null;     // "Classic Bike", "Gravel", "Self-Guided", ...
  destinations: string[];       // e.g. ["Croatia", "Europe", "Slovenia Bike Tours"]
  activityLevel: string | null; // e.g. "Level 3"
  hotelLevel: string | null;    // e.g. "Explorer", "Luxury"
  durationBucket: string | null; // e.g. "5-7 Days"
  startPrice: number;           // the FLOOR across every departure — call getDeparturePricing for a real date's price
  startPriceFormatted: string;
  departureCount: number;
  hasEbike: boolean;
}

interface TrekTravelDeparture {
  sku: string;                  // per-date SKU, e.g. "27IS0425"
  dateRange: string;            // "April 25 - 30, 2027"
  status: string;               // "Guaranteed" | "Not Guaranteed" | "Private" | ...
  bookableOnline: boolean;      // true: bookingUrl is checkout. false: bookingUrl is a custom-quote request
  pricePerPersonDouble: number | null;
  pricePerPersonDoubleFormatted: string | null;
  singleOccupancySurcharge: number | null;
  singleOccupancySurchargeFormatted: string | null;
  hotels: string[];
  bookingUrl: string;
}

interface TrekTravelDeparturePricing {
  url: string;
  departures: TrekTravelDeparture[];
}

interface TrekTravelSearchFilters {
  query?: string;
  destination?: string;   // e.g. "Europe" or "Croatia"
  activity?: string;      // "Cycling" | "Hiking & Walking" | "Multi-Adventure"
  activityLevel?: string; // e.g. "Level 2"
  hotelLevel?: string;    // e.g. "Explorer"
  durationBucket?: string; // e.g. "5-7 Days"
  maxPrice?: number;
  minPrice?: number;
  limit?: number;         // default 20, max 50
}

Examples

// A real departure date and price for a specific guided trip
const matches = await bowmark.providers.trektravel.searchTours({ query: "Slovenia Croatia" });
const trip = matches[0];
const pricing = await bowmark.providers.trektravel.getDeparturePricing(trip.url);
const june = pricing.departures.find((d) => d.dateRange.startsWith("June"));
return { date: june.dateRange, price: june.pricePerPersonDoubleFormatted, status: june.status, book: june.bookingUrl };
// Every guided cycling trip in Europe under $4,000
const tours = await bowmark.providers.trektravel.searchTours({
  destination: "Europe",
  activity: "Cycling",
  maxPrice: 4000,
});
return tours.map((t) => ({ title: t.title, from: t.startPriceFormatted, level: t.activityLevel }));