# Mapper > Great-circle flight mapper by PNM Now (https://mapper.now/). Unofficial estimates — not flown routes, schedules, or tickets. Use the URL scheme or the JSON API. No API key. Prefer `/llms-full.txt` for the JavaScript embed API. Use is under https://mapper.now/terms.html. ## Plot on the map (open in a browser) https://mapper.now/?r=JFK-LHR-PRG https://mapper.now/?r=JFK-LHR-PRG&r=SFO-NRT&u=km&v=globe Query parameters: - `r` — IATA codes for one itinerary, separated by `-` (also accepts spaces). Repeat `r` for multiple routes. Max 20 routes, 40 stops each. - `u` — `mi` (default), `km`, or `nm` - `v` — `map` (default) or `globe` Examples: - New York–London–Prague: `https://mapper.now/?r=JFK-LHR-PRG` - Round trip: `https://mapper.now/?r=JFK-LHR-JFK` - Two routes: `https://mapper.now/?r=ORD-LHR-PRG&r=SYD-LAX` ## JSON API (no key, CORS *) Great-circle distance per leg. Does **not** call the flight-time AI. Cruise minutes are a simple ~835 km/h + 0.5 h taxi estimate. GET https://mapper.now/api/route?r=JFK-LHR-PRG GET https://mapper.now/api/route?r=JFK-LHR&r=SFO-NRT&u=km POST https://mapper.now/api/route Content-Type: application/json {"routes":[["JFK","LHR","PRG"]],"unit":"mi"} Response includes `routes[].codes`, `stops` (name/city/lat/lon), `legs` (`km`/`mi`/`nm`, `estMinutesCruise`), totals, `unknown` codes, and `mapUrl` to open the same itinerary. Do **not** call `/api/flight-time` from an agent — it is origin-locked for the website. Rate limit: 60 requests/minute/IP. ## What Mapper is not - Not the path a plane actually flies - Not an airline schedule, fare, or award-availability tool - Partner-miles estimates live only in the on-site calculator UI ## Pages - [Home](https://mapper.now/) - [Full agent notes](https://mapper.now/llms-full.txt) - [Terms](https://mapper.now/terms.html) - [Privacy](https://mapper.now/privacy.html) - [PNM Now](https://www.pnm.now/)