Home › URL parameters for AI assistants

URL parameters for AI assistants

PrintMap turns any place on Earth into a print-ready map poster, in the browser, for free — no account, no watermark, no API key. This page is the contract: build a URL and the editor opens with that state already applied, so an assistant can hand someone a finished poster to tweak instead of an empty editor.

There is nothing to call and nothing to sign. The whole state travels in the query string of https://printm.app/app/. Unknown parameters and out-of-range values are ignored rather than erroring, so a partly-correct URL still opens a working editor.

Examples

Country silhouette poster of Japan
https://printm.app/app/?country=JPN

Parameters

ParameterValuesWhat it doesExample
cityfree text, max 60 charsLabel for the poster title. Use with lat/lng.city=Bergen
lat, lngdecimal degreesMap centre. Both required together.lat=60.3913&lng=5.3221
z1–19Zoom. 11 = whole city, 13 = a few neighbourhoods, 15 = streets.z=13
countryISO 3166-1 alpha-3Opens the country-silhouette poster instead of a street map.country=NOR
styleone of the 25 ids belowMap style. Unknown ids are ignored.style=winter
sizea4, a3, a2, a1Paper size. A1 is the largest available.size=a2
w, h5–200 (cm)Exact canvas in centimetres; overrides size.w=30&h=40
orientportrait, landscapeApplied before size.orient=landscape
titlefree text, max 60 charsTurns the poster caption on and sets its first line.title=BERGEN
subtitlefree text, max 60 charsSecond caption line, usually the country or a date.subtitle=Norway
coordsfree text, max 40 charsThird caption line. Left empty, the app fills in the centre coordinates.coords=60.39%C2%B0N%205.32%C2%B0E
labelsboth, latin, localWhich script place names print in.labels=latin
contours1Elevation contour lines.contours=1
3d13D shaded terrain (also tilts the view).3d=1

Style ids

classicminimalistroadtripdiyretronatgeoblueprintcopperduotoneaquarelletonerasphaltmidnightneonforesttopoarcticterrainwintersatellitehybridcandynewspapervintagenautical

diy opens the custom-colour editor; satellite, hybrid, aquarelle, toner and winter come from a third-party tile provider and may be unavailable if its quota is exhausted — the app falls back and says so.

MCP server

The same thing is also an MCP server at https://printm.app/mcp — JSON-RPC 2.0 over POST, no key, no session, nothing to sign up for. Three tools: create_map_poster builds the link, find_place searches the 324 cities and 205 countries that have their own page (returning coordinates, the page and a poster image), and list_map_styles lists the styles. A GET on the same URL describes the server. The place list is a plain file too: place-index.json.

Good to know

Machine-readable

The same contract as JSON, for agents that would rather parse than read:

{
  "name": "PrintMap",
  "url": "https://printm.app",
  "editor": "https://printm.app/app/",
  "cost": "free",
  "account_required": false,
  "api_key_required": false,
  "method": "Build a URL — the editor opens with that state applied. Nothing to call, nothing to sign.",
  "params": {
    "city": {
      "values": "free text, max 60 chars",
      "note": "Label for the poster title. Use with lat/lng."
    },
    "lat|lng": {
      "values": "decimal degrees",
      "note": "Map centre. Both required together."
    },
    "z": {
      "values": "1–19",
      "note": "Zoom. 11 = whole city, 13 = a few neighbourhoods, 15 = streets."
    },
    "country": {
      "values": "ISO 3166-1 alpha-3",
      "note": "Opens the country-silhouette poster instead of a street map."
    },
    "style": {
      "values": "one of the 25 ids below",
      "note": "Map style. Unknown ids are ignored."
    },
    "size": {
      "values": "a4, a3, a2, a1",
      "note": "Paper size. A1 is the largest available."
    },
    "w|h": {
      "values": "5–200 (cm)",
      "note": "Exact canvas in centimetres; overrides size."
    },
    "orient": {
      "values": "portrait, landscape",
      "note": "Applied before size."
    },
    "title": {
      "values": "free text, max 60 chars",
      "note": "Turns the poster caption on and sets its first line."
    },
    "subtitle": {
      "values": "free text, max 60 chars",
      "note": "Second caption line, usually the country or a date."
    },
    "coords": {
      "values": "free text, max 40 chars",
      "note": "Third caption line. Left empty, the app fills in the centre coordinates."
    },
    "labels": {
      "values": "both, latin, local",
      "note": "Which script place names print in."
    },
    "contours": {
      "values": "1",
      "note": "Elevation contour lines."
    },
    "3d": {
      "values": "1",
      "note": "3D shaded terrain (also tilts the view)."
    }
  },
  "styles": [
    "classic",
    "minimalist",
    "roadtrip",
    "diy",
    "retro",
    "natgeo",
    "blueprint",
    "copper",
    "duotone",
    "aquarelle",
    "toner",
    "asphalt",
    "midnight",
    "neon",
    "forest",
    "topo",
    "arctic",
    "terrain",
    "winter",
    "satellite",
    "hybrid",
    "candy",
    "newspaper",
    "vintage",
    "nautical"
  ],
  "limits": {
    "max_paper": "A1 (59.4 x 84.1 cm)",
    "max_custom_cm": 200,
    "free_dpi": 72,
    "outputs": [
      "PNG",
      "SVG",
      "PDF",
      "STL",
      "MP4"
    ]
  },
  "mcp": {
    "endpoint": "https://printm.app/mcp",
    "transport": "Streamable HTTP (JSON-RPC 2.0 over POST)",
    "tools": [
      "create_map_poster",
      "find_place",
      "list_map_styles"
    ],
    "auth": "none"
  },
  "place_index": "https://printm.app/place-index.json",
  "place_pages": {
    "cities": "https://printm.app/city/",
    "countries": "https://printm.app/country/"
  }
}

See also llms.txt.

Try it

Open a styled, captioned poster from a single link.

Bergen, winter style, A2 →