canonical: https://jentic.com/apis/mapatlas.eu/mapatlas

# MapAtlas API

The MapAtlas API geocodes addresses, reverse geocodes coordinates, and calculates routes on an OpenStreetMap-based platform that runs on EU infrastructure. Beyond forward, reverse, and autocomplete search it returns turn-by-turn directions, isochrone reachability contours, travel-time and distance matrices, optimised stop orders, map-matched GPS traces, and terrain elevation along a shape. Routing calls take a costing mode such as auto, bicycle, truck, or pedestrian, and a styles call serves vector map style JSON for MapLibre GL or Mapbox GL.

## For AI agents

Geocode and reverse geocode places in Europe and beyond, autocomplete addresses, and compute directions, isochrones, matrices, stop optimisation, map matching, and elevation on OpenStreetMap data.

## Scope

Does not handle live traffic incidents, public transit timetables, or business reviews. Use for OpenStreetMap geocoding, routing, and elevation only.

## Capabilities

- Forward geocode an address or place name to coordinates, filtered by boundary.country, a bounding rectangle, or a circle
- Reverse geocode a point.lat and point.lon pair to the nearest address or place
- Autocomplete addresses and points of interest as a user types, biased by focus.point.lat and focus.point.lon
- Get turn-by-turn directions between two or more locations with a costing mode such as auto, bicycle, truck, or pedestrian
- Draw up to four isochrone contours by travel time in minutes or distance in kilometers from an origin
- Build a travel-time and distance matrix between sources and targets, or optimise the order of intermediate stops
- Snap a noisy GPS trace to the road network and read terrain elevation along a shape

## Use cases

### Location-aware agent through Jentic

An assistant that handles place questions calls the MapAtlas API through Jentic: it geocodes the user's address, then requests directions or an isochrone from that point. The token query parameter is injected by Jentic at call time, so the agent never holds it. Because MapAtlas runs on EU infrastructure, this suits teams that want location calls kept out of US data transfers.

Example prompt: Call GET /forward-geocode/ with text 'Damrak 1, Amsterdam' and size 1, take the returned coordinates, then POST /directions/ with locations from that point to 52.3600, 4.8852 and costing 'pedestrian'

### Delivery route planning

Dispatch tools need to know which depot serves which customer and in what order to visit stops. The matrix operation returns travel times and distances between sources and targets, and the optimisation operation reorders intermediate stops TSP-style for a chosen costing such as truck. Together they cover assignment and sequencing on OpenStreetMap roads.

Example prompt: POST /matrix/ with two depot sources, eight customer targets, and costing 'truck', then POST /optimization/ with the chosen depot and its assigned stops to get the visit order

### Catchment and reachability maps

Retail site selection and service planning start with who can reach a location in a given time. The isochrone operation returns up to four contours per request by minutes or kilometers, optionally as polygons, which can be drawn on a MapLibre map using a style fetched from the styles operation.

Example prompt: POST /isochrone/ with one location, costing 'auto', contours of 10, 20, and 30 minutes, and polygons true, then return the contour geometry

### Cleaning GPS tracks

Fleet and fitness apps record noisy GPS points that drift off the road. The map-matching operation snaps a shape of coordinates to the road network for a costing mode, and the elevation operation returns terrain height along the same shape, so a track can be cleaned and profiled in two calls.

Example prompt: Call GET /map-matching/ with a shape of recorded points and costing 'bicycle', then POST /elevation/ with the matched shape and range true to get distance and height pairs

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/forward-geocode/` | Forward geocode an address or place |
| GET | `/reverse-geocode/` | Reverse geocode coordinates |
| GET | `/autocomplete/` | Autocomplete addresses and POIs |
| POST | `/directions/` | Turn-by-turn directions |
| POST | `/isochrone/` | Reachability contours |
| POST | `/matrix/` | Travel-time and distance matrix |
| POST | `/optimization/` | Optimise stop order |
| GET | `/styles/` | Fetch a vector map style |

## Key resources

- **Geocoding** — Forward geocode, reverse geocode, and autocomplete addresses and points of interest
- **Routing** — Directions, isochrones, travel-time matrices, stop optimisation, and map matching
- **Elevation** — Terrain elevation along a shape of coordinates
- **Map styles** — Vector map style JSON for MapLibre GL or Mapbox GL

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 39 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 52 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 30 / 100
  - Agent Usability: 94 / 100
  - Security: 15 / 100
  - AI Discoverability: 69 / 100
- **View full report:** https://jentic.com/apis/mapatlas.eu/mapatlas/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MapAtlas by hand means appending its token query parameter to every call and shaping routing bodies with locations and a costing mode. Through Jentic you install once, import the MapAtlas API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** MapAtlas takes locations in query parameters and request bodies, not in the URL path, so rules bound which operations your agent may call, not which places. Limit the agent to the operations it needs, such as geocoding only, and leave matrix or optimisation out unless you add them.
- **Credential handling:** Your MapAtlas token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'geocode an address' or 'draw a drive-time isochrone', and Jentic returns the matching MapAtlas operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Mapbox API** — Global maps, geocoding, and navigation platform
- **Geoapify** — OpenStreetMap-based geocoding, routing, and places APIs
- **GraphHopper Directions API** — Routing, matrix, and vehicle route optimisation on OpenStreetMap
- **Nominatim Geocoding API** — Public OpenStreetMap geocoder for light, occasional lookups

## FAQ

### Is there a MapAtlas MCP server?

You don't need an MCP server to give your agent the MapAtlas API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it. Geocoding and routing operations are found by intent when needed, so no extra tool definitions sit in the agent's context.

### What authentication does the MapAtlas API use?

Per its OpenAPI spec, the MapAtlas API authenticates with an API token passed as the token query parameter, issued from the keys page of the MapMetrics portal. Through Jentic the token is stored encrypted by your own Jentic One instance and appended at call time, so it never appears in the agent's prompt or in URLs it logs.

### Which travel modes does MapAtlas routing support?

Routing operations take a costing value from the spec's enum: auto, bicycle, bus, truck, taxi, motor_scooter, pedestrian, and bikeshare. The same costing field applies to directions, isochrone, matrix, optimisation, and map matching requests.

### Can I limit what my agent is allowed to do with the MapAtlas API?

Yes. Write a rule that allows only GET /forward-geocode/ and GET /reverse-geocode/, so an address-lookup agent can resolve places but cannot run matrix or optimisation jobs you did not plan for. Every call it makes runs through your own instance.

### What are the rate limits for the MapAtlas API?

The OpenAPI spec does not specify rate limits. Check your plan in the MapMetrics portal at https://portal.mapmetrics.org/keys for current limits.

### How do I geocode an address with the MapAtlas API through Jentic?

Add the MapAtlas API to Jentic One from the directory and store your token once. Your agent searches for 'geocode an address to coordinates', calls GET /forward-geocode/ with the text parameter, and can narrow results with boundary.country. To run it on your own infrastructure, install Jentic One from its GitHub repo.
