TheTripMap - Plan and Share Outdoor Trip Itineraries on a Map
TheTripMap is a web application for planning and sharing outdoor trip itineraries. Users create hiking, canoe, biking, and alpine expeditions with GPS pins, routes, notes, and expenses on an interactive satellite map. Pin categories include campsites, portages, points of interest, parking, and water access points. Routes connect pins with waypoints and distance tracking.
Public API for AI Assistants
TheTripMap has a public REST API that AI assistants can use to search for existing public trips, get full trip details, and create new temporary trips. The API is open and requires only a public Bearer token (no user authentication needed for search and creation).
API Base URL
https://thetripmap.com/functions/v1/api
Authentication
All API requests require a Bearer token in the Authorization header. Use this public anon key (safe to expose):
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inp4aHNmaHFjbnNzdWd6eW1hcGJiIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzE2OTE3NjYsImV4cCI6MjA4NzI2Nzc2Nn0.bnpxlvQIFV1PwggQ1aYkrZol_a6KP9p56mcrGpdk23E
Endpoints
- GET /api/trips -- search public trips by text query, category, or geographic bounding box. Parameters: q, category, min_lat, max_lat, min_lng, max_lng, min_route_count, limit, offset.
- GET /api/trips/:id -- get full public trip detail with all pins, paths, notes, and expenses.
- POST /api/trips -- create a temporary trip from a JSON payload (auto-deletes after 3 days, max 200 items, no user auth required).
- POST /api/trips/:id/claim -- claim a temporary trip (requires a user JWT, not the anon key).
- GET /api/temporary/:id -- get a temporary trip for preview.
- GET /api/health -- health check and endpoint listing.
Trip Categories
Every trip has a category classifying the outdoor activity. Optional when creating a trip, defaults to unclassified.
- unclassified: Default. Use for trips that don't fit a specific activity.
- hiking: Walking, backpacking, trekking on trails or off-trail.
- river: Canoe, kayak, or raft trips on rivers. Includes put-in/take-out pins and portage points.
- lake: Canoe, kayak, or boat trips on lakes. May include portage pins between connected lakes.
- biking: Mountain biking, road cycling, or bikepacking.
- motor: Motorized vehicle trips -- car, motorcycle, or off-road.
- alpine: Mountaineering, ski touring, or high-altitude expeditions.
Pin Categories
Every pin has a category determining its icon and color on the map. Optional, defaults to general.
- general: Default pin. Generic waypoints, landmarks, meeting points, turn-around points.
- parking: Trailheads, access points, vehicle parking areas.
- campsite: Overnight camping locations, designated campsites, backcountry camping spots.
- poi: Points of interest -- viewpoints, waterfalls, historical markers, scenic lookouts.
- portage: Canoe/kayak carry-over points between water bodies. Specific to river and lake trips.
- water: Water sources or access points -- springs, streams, lakes where water can be collected.
Item Types and Fields
A trip's items array contains an ordered list of pins, paths, notes, and expenses. Items are processed in array order. The zero-based array index is used for cross-referencing (paths reference pins by index, notes/expenses reference parent pins by index).
- pin: A GPS location. Required: type, title, latitude, longitude. Optional: description, address, pin_category (defaults to general), is_optional (defaults to false). Use is_optional for alternate campsites, optional side trips, or contingency stops.
- path: A route connecting two pins. Required: type, title, waypoints (array of [latitude, longitude] pairs, minimum 2). Optional: description, start_pin_index (zero-based index of start pin in items array), end_pin_index (zero-based index of end pin), distance_km (contributes to trip total distance), is_optional (if true, excluded from total distance calculation). Include intermediate waypoints to trace curves, river bends, or trail switchbacks. If start_pin_index or end_pin_index is omitted, the path is a standalone route.
- note: A text note. Required: type, title. Optional: description (full text), url (valid http/https URL), parent_index (zero-based index of parent pin in items array; null = trip-level note).
- expense: A cost item. Required: type, title, cost (number >= 0). Optional: description, currency (ISO 4217 code, defaults to USD), parent_index (zero-based index of parent pin; null = trip-level expense).
Trip Detail Response (GET /api/trips/:id)
The response contains a trip object with an items array. Each item has: id (UUID), type (pin/path/note/expense/image), sort_order (display order), title, description, address (pins only), url (notes only), pin_category (pins only), is_optional (pins and paths), latitude/longitude (pins only), data (type-specific object), parent_id (UUID of parent item for notes/expenses attached to pins, null otherwise).
Data Field by Item Type
- path items: data contains waypoints (array of [lat,lng] pairs), distance_km, travel_time, start_pin_id, end_pin_id, auto_connection, parent_child_connection, intermediate_waypoints, routed_waypoints, routing_profile, is_precision_route, precision_route_pin_positions.
- expense items: data contains cost (number) and currency (ISO code string, defaults to USD).
- image items: data contains storage_path, image_url, is_external, thumbnail_path, width, height, caption.
- pin and note items: data is typically empty object or null.
Example: Search for hiking trips near Ottawa
GET https://thetripmap.com/functions/v1/api/trips?category=hiking&min_lat=44.5&max_lat=46.5&min_lng=-79&max_lng=-75&limit=10
Example: Create a multi-day canoe trip with all item types
POST https://thetripmap.com/functions/v1/api/trips with JSON body containing project (title, description) and items array. Example items: parking pin, portage pin, campsite pin, POI pin (optional), paths connecting pins with waypoints and distance_km, notes with parent_index and url, expenses with cost, currency, and parent_index. See the OpenAPI spec or ai-info.html for a complete example with all item types and metadata.
MCP Server for ChatGPT and AI Assistants
TheTripMap provides an MCP (Model Context Protocol) server at https://zxhsfhqcnssugzymapbb.supabase.co/functions/v1/mcp that lets AI assistants like ChatGPT directly search, retrieve, and create trips. No authentication required.
To connect in ChatGPT: Settings > Connectors > Advanced > Developer Mode > Add custom connector > paste https://zxhsfhqcnssugzymapbb.supabase.co/functions/v1/mcp
Available MCP tools: search_trips (search public trips by text, category, or bounding box), get_trip (get full trip detail with pins, paths, notes, expenses), create_trip (create a temporary trip with title, description, and items array), get_temporary_trip (retrieve a temporary trip by ID).
API Resources
- OpenAPI 3.1 spec: https://thetripmap.com/openapi.json
- API documentation (interactive): https://thetripmap.com/docs
- LLMs.txt (machine-readable summary): https://thetripmap.com/llms.txt
- AI plugin manifest: https://thetripmap.com/.well-known/ai-plugin.json
- Plain-text API info page (no JavaScript, complete data model reference): https://thetripmap.com/ai-info.html
- MCP server (for ChatGPT connectors): https://zxhsfhqcnssugzymapbb.supabase.co/functions/v1/mcp
Temporary Trip Lifecycle
- Created without an owner via POST /api/trips.
- Viewable by anyone at https://thetripmap.com/trip/:tripId.
- Auto-delete after 3 days if not claimed by a registered user.
- Claimed via POST /api/trips/:id/claim (requires user JWT).
- Never appear in public search results or community feeds.
Plan Your Next Outdoor Adventure
TheTripMap is a free online trip planner that lets you create detailed outdoor itineraries on an interactive satellite map. Whether you're planning a hiking trip, canoe route, biking adventure, or alpine expedition, TheTripMap gives you the tools to map out every detail with GPS precision.
Browse Community Trips by Category
Discover trips shared by other outdoor enthusiasts. Browse community-published trips filtered by activity type and geographic area.
- Hiking trips -- backpacking, trekking, and day hike itineraries with trailhead parking, campsites, and viewpoints.
- Canoe and kayak trips -- river and lake paddling routes with portage points, put-in locations, and waterside campsites.
- Biking trips -- mountain biking, road cycling, and bikepacking routes with trailhead access points.
- Alpine trips -- mountaineering, ski touring, and high-altitude expedition plans with base camps and summit routes.
How TheTripMap Works
Use the map editor to place GPS pins for campsites, trailheads, portages, parking, water access points, and points of interest. Draw routes between pins with waypoints that trace river bends, trail switchbacks, and portage trails. Add notes for permit info, safety warnings, and weather considerations. Track expenses for permits, gear rentals, and fuel. Create a free account to save and share your trips.
Features
- Interactive satellite map with GPS pin placement for precise trip planning
- Route drawing with waypoints and automatic distance tracking in kilometers
- Pin categories: parking, campsite, point of interest, portage, water source, and general waypoint
- Notes and expenses attached to specific pins or the trip overall
- Public sharing with custom URLs for each trip (e.g. /username/trip-name)
- Community browsing by geographic area and activity category
- Free to use -- no account required to start planning with the map editor
- Mobile-friendly and works as a PWA for offline trip planning
Public API for Developers and AI Assistants
TheTripMap offers a public REST API for searching trips, retrieving trip details, and creating temporary AI-generated trips. Full OpenAPI 3.1 specification and LLM-readable documentation are available. An MCP server is also available for ChatGPT connectors.