# Documentation

Carpathian Maps is self-hosted maps and directions. One server holds the map, the route engines and the key, so no third party sees where anyone is or where they are going.

## What it serves

| Path | Key | What |
| --- | --- | --- |
| `/` | No | A full-screen map anyone can pan and zoom |
| `/map/` | No | The map files (`planet.pmtiles`, `fonts/`, `sprites/`) for any MapLibre client |
| `POST /v1/route` | Yes | A walk, bike, drive or transit route between two points |
| `POST /v1/isochrone` | Yes | The areas reachable from a point within up to four travel times |
| `GET /healthz` | No | Whether each route engine answers |
| `/docs/` | No | These pages, each also as Markdown at `/docs/<page>.md` |
| `/llms.txt` | No | An index of these pages for language models, with every page in one file at `/llms-full.txt` |
| `/notices` | No | The licenses of the bundled libraries and the map data |

The address of this server is `https://maps.carpathian.ai`. The examples on these pages use it.

## Pages

- [Connect](connect.md): put the map in your own site or app, and ask for directions from your backend.
- [API reference](api.md): every request, response and error of the directions API.

## Coverage

The map covers whatever map file the operator serves, up to the whole planet. Directions cover only these areas:

| Area | Directions |
| --- | --- |
| Iowa | Walk, bike and drive |
| Des Moines metro IA | Transit on DART |

A point outside them answers `422 No route was found.` Transit routes include the walk to and from the stops.

## Privacy

- The map page and the map files load nothing from a third party.
- Coordinates travel in POST bodies only. The server logs method, path, status and time, never a body, a coordinate or a query string.
- The route engines run on the same machine and are never exposed to the network.

## Credits

Map data © OpenStreetMap contributors, under the ODbL. Basemap by Protomaps, drawn with MapLibre GL JS. Walk, bike and drive routes by Valhalla, transit by OpenTripPlanner. The license texts are at [/notices](/notices).
