API & MCP
Everything a person can do on Cartograph Map Poster (SVG + PDF from OpenStreetMap), a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://cartographmapposter.usefulweb.app/api/v1/calculate– run Cartograph Map Poster (SVG + PDF from OpenStreetMap)GET https://cartographmapposter.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Cartograph Map Poster (SVG + PDF from OpenStreetMap)
Draws a city map poster from your own OpenStreetMap extract (.osm XML, .osm.pbf or GeoJSON with OSM tags): roads by class, paths, railways, water, parks and woods, optional buildings, in one of six original colour styles, on A4–A2, 30 × 40, 50 × 70 or square paper, with a rectangular or round frame, title, subtitle, coordinates and the OpenStreetMap attribution. Returns a true-size SVG and a vector PDF. It is the poster engine of the Cartograph app.
| Field | Type | Default | Description |
|---|---|---|---|
file | file | — | OpenStreetMap extract (.osm, .osm.pbf or GeoJSON). Up to 25 MB. Leave empty to use the built-in Vaduz sample. Download extracts from your own OpenStreetMap export, Geofabrik or BBBike; Cartograph never fetches map data itself. |
center | text | — | Poster centre. Any coordinate format (decimal degrees, DMS, UTM, MGRS, plus code). Empty: the middle of the extract. |
radiusM | number | 1200 | Area half-width. Ground distance from the centre to the left and right edges of the map frame. |
paper | select (a4, a3, a2, 30x40, 50x70, letter, square) | "a3" | Paper |
orientation | select (portrait, landscape) | "portrait" | Orientation |
frame | select (rect, circle) | "rect" | Map frame |
style | select (paper, midnight, blueprint, terracotta, mono, forest) | "paper" | Colour style |
paths | boolean | true | Draw footpaths and cycleways |
buildings | boolean | false | Draw buildings |
lineScale | number | 1 | Line width factor |
title | text | — | Title. Empty: the town name found in the extract. |
subtitle | text | — | Subtitle |
showCoords | boolean | true | Print the centre coordinates |
Example request
Vaduz on A3 paper (built-in OpenStreetMap sample)
curl -X POST https://cartographmapposter.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"center":"47.1393, 9.5215","radiusM":1200,"paper":"a3","style":"paper","title":"Vaduz","subtitle":"Liechtenstein"}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://cartographmapposter.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
cartograph_map_poster - Local stdio connector:
node src/mcp-stdio.ts --tool=cartograph-map-poster
{
"mcpServers": {
"cartograph-map-poster": { "type": "http", "url": "https://cartographmapposter.usefulweb.app/mcp" }
}
}