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
| Function | What it does |
|---|---|
searchTours | Searches 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… |
getDeparturePricing | Reads 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 }));