Skip to main content

GET /map.{svg,png}

The GET endpoint turns query parameters into a static SVG or PNG map. Because the entire request is a URL, you can drop it straight into an <img> tag, a Markdown image, or an email. The response is permanently cached, so repeat loads are essentially free.

:::tip When to use GET vs POST Use GET when you have up to roughly 40 regions and your data fits comfortably in a URL (~2 KB). For larger datasets, structured JSON bodies, or CSV uploads, use POST /render/map instead. :::

Live example

https://api.maproll.io/map.png?scope=world&data=US:200,CN:150,IN:80,BR:60,RU:120,DE:95,FR:40,GB:55,JP:90&theme=dark&legendTitle=Sample

World choropleth — dark theme

Query parameters

ParamTypeDefaultAllowed valuesNotes
scopestringrequiredworld, RO, …See Scopes.
datastringid:value[:#hex] pairs, comma-separatedChoropleth mode. See Data syntax below.
regionsstringid,id,… comma-separatedHighlight-only mode (no values). Cannot be combined with data.
themestringdarkdark light light-blue light-mono dark-blue dark-monoSee Themes.
formatstringderived from extensionsvg pngNormally set by the URL path (.svg / .png).
widthinteger12001–8000Output width in pixels.
heightintegerauto1–8000Output height in pixels. Omit to let the projection determine the aspect ratio.
projectionstringper-scopenaturalEarth1 albersUsa conicConformal mercator equalEarthSee Projections.
colorScalestringsequentialsequential diverging categoricalSee Color scales.
classificationstringquantilequantile jenks equal customBinning method for sequential scales. Defaults to quantile. See Classification.
breaksstringComma-separated numbers, 1–20 valuesCustom bin edges when classification=custom.
legendbooleantruetrue false 1 0Show or hide the legend.
legendTitlestringMax 64 charsLabel shown above the legend.
legendLayoutstringverticalvertical horizontal continuousSee Legend.
titlestringMax 120 charsMap title shown at the top. See Title & subtitle.
subtitlestringMax 160 charsSmaller text below the title.
attributionbooleantruetrue false 1 0Shows "© OpenStreetMap contributors". Disable only if your embed context has its own attribution.
logobooleanfalsetrue false 1 0Shows the maproll wordmark. See Attribution & logo.
northArrowbooleanfalsetrue false 1 0Renders a north arrow. See Overlays.
scaleBarbooleanfalsetrue false 1 0Renders a scale bar.
graticulebooleanfalsetrue false 1 0Renders latitude/longitude grid lines.
markersstringSee format belowPoint markers with optional icon, label, and position. See Markers.
patternsstringid:pattern,…Per-region fill patterns. See Patterns.
annotationsstringid:text,…Per-region tooltip text. See Annotations.
routesstringSee format belowGreat-circle arcs between pairs of points or ISO codes. See Routes.
labelsstringISO or id,id,…Region labels on the map. ISO labels all polygons. See Region labels.
labelMinAreanumber0–1000000Minimum polygon area (SVG units²) below which labels are suppressed.
proportionalstringSame id:value[:#hex] syntax as dataSized circles at region centroids. See Proportional symbols.
proportionalMaxnumber0–200Maximum circle radius in pixels.
proportionalMinnumber0–100Minimum circle radius in pixels.

Data syntax

The data parameter encodes choropleth values as a comma-separated list of pairs:

data=id:value
data=id:value:#rrggbb
  • id — canonical region identifier (ISO 3166-1 alpha-2 for countries, ISO 3166-2 for sub-national regions).
  • value — numeric value. May be negative or decimal.
  • #rrggbb — optional 6-digit hex color that overrides the scale-derived fill for this region. See Color overrides.

Examples:

# Three countries, sequential ramp
data=US:200,CN:150,DE:95

# With per-region color override
data=US:200,CN:150,DE:95:%23ff0000

# Romanian counties
data=RO-B:500,RO-CJ:200,RO-IS:150

The # character must be URL-encoded as %23 in query strings.

The markers parameter uses semicolons to separate markers (because each marker already uses colons internally):

markers=lat,lon[:icon][:label][:labelPosition]

The routes parameter also uses semicolons:

routes=from>to[:#rrggbb][:width][:solid|dashed][:arrow]

Where from and to are either ISO codes (e.g. US) or lat,lon literals (e.g. 44.43,26.10).

Response

See Response headers & caching.