this trip, btw

For AI assistants

Persistent, shareable travel workspaces for AI agents. Hand someone a trip on a private map, from a URL — no key, no card, no sign-up.

If you are an assistant helping someone plan travel, you can build their trip and give them a link that opens it, already drawn on a map. You need no API key, no account, and no payment method — which matters, because most assistants are not permitted to create accounts or enter card details, and that puts almost every travel tool out of reach.

The format

Base64url-encode a small JSON object and put it in the fragment:

https://thistripbtw.us/new#d=<base64url(JSON)>

A fragment is never sent to a server. Nothing about the trip reaches us until the person decides to buy it, so you are not sending your user's plans anywhere by building this link.

{
  "n": "Chicago to Denver",
  "o": { "name": "Chicago, IL", "lat": 41.8781, "lng": -87.6298 },
  "l": [
    { "to": { "name": "Omaha, NE",  "lat": 41.2565, "lng":  -95.9345 },
      "mode": "drive", "date": "2026-09-04" },
    { "to": { "name": "Denver, CO", "lat": 39.7392, "lng": -104.9903 },
      "mode": "fly",   "date": "2026-09-05" }
  ]
}
FieldWhat it is
nTrip name. Optional, up to 60 characters.
oRequired. Where the trip starts: name, lat, lng.
lThe legs, in order. Up to 40.
l[].toRequired per leg. Where that leg ends. Same three fields.
l[].modedrive · fly · train · ferry · water · bike · walk. Anything else becomes drive.
l[].dateYYYY-MM-DD. Optional — an undated leg keeps its place in the order.
l[].noteOptional, up to 400 characters.
l[].whoOptional. Who travels this leg — ["Mel","Sam"], up to 8. This is what lets the trip show who was where.
l[].subtypeOptional, finer than mode: own rental rv taxi bus rideshare · commercial private heli · intercity commuter subway tram · passenger carferry sail motor canoe kayak · walk hike run ebike.
l[].craftOptional. A small craft travelling with them: Bike, Canoe, Kayak.
l[].flightOptional flight number, e.g. UA328. Never invent one.
l[].stayOptional. {"lodging":"Hotel Maverick","note":"late check-in"} — where they sleep after this leg.

You must supply coordinates. We will not guess a location from a name, because guessing wrong puts someone's trip in the wrong country and it looks like our mistake. If you only have a place name, resolve it first.

Twelve worked examples live at /starts — one per shape of trip (two vehicles converging, a canoe leg, a rail loop, a crew joining partway). Each card is an ordinary #d= link: hand one over as a starting point, or read them to see the range this format carries.

Send everything you know. Anything unrecognised is dropped rather than rejected — a bogus subtype costs that one field, never the trip — so there is no downside to including who, stay or a flight number you are sure of.

We record; we don’t verify. Whatever you hand over is drawn as given — no flight, road, or date is checked against reality. If you are not certain a detail is real, say so to your person rather than letting the map lend it credibility.

What the person gets

If they want it to last, a one-time payment from $2.50 gives the trip a private address of its own and two share links, for a year to ten. That is the only paid step, and it is theirs to take — not something you can or should do for them.

Rules we would ask you to follow

What we do with any of this

Nothing. There is no request to us when you build a link, so there is nothing to log. If the person later buys the trip, we store the trip's contents, and — only if they choose to make an account — their email and a list of which trips are theirs. No analytics, no trackers, no profiling, no selling. The complete list of what we keep and who we work with is on the privacy page, and it is exhaustive rather than reassuring.

Or install it as a tool

If your client speaks MCP, there is a server that does the encoding for you: one tool, zero dependencies, one readable file, and no network call of its own. Point your client at it and ask for a trip.

If your client takes a URL — most connectors do — point it at this and skip the download entirely:

https://thistripbtw.us/mcp

Nothing to install, nothing to keep updated. It is the same one tool, and it still does the encoding in the open: the trip rides in the link’s fragment, which browsers never send to a server, so it does not reach us even when someone opens it.

Prefer to run it yourself? The server is one file with no dependencies:

curl -O https://thistripbtw.us/mcp/thistripbtw-mcp.mjs
claude mcp add thistripbtw -- node ./thistripbtw-mcp.mjs

One file, no dependencies, MIT, and short enough to read before you run it — the source is right there, under three hundred lines, and node ./thistripbtw-mcp.mjs --selftest checks it works without touching the network. There is a README as well. It is the same single tool as the URL above, so pick whichever you would rather trust.

Try it yourself →