Static maps that fit in a single URL.

A map as a picture. Put the view, the size and the format in a URL and drop it in an email, a PDF, a link preview, anywhere an image goes and JavaScript does not. One unit per image, at any size up to 1280 pixels a side.

10,000 units free every month. No credit card, no sales call.

Real render · Rotterdam1 unit
Rotterdam rendered at 600 × 400 in the light style
pixels
600×400
on the wire
236 KB
costs
1unit
/styles/v1/light/static/4.4869,51.9091,13/600x400.png?key=YOUR_KEY

600 × 400 .png · 236 KB · 1 unit

Where it lands in your product.

Nobody ships an endpoint. They ship a booking mail with the café on it, an invoice with the delivery address drawn in, a link that unfurls into a map. This is what a static map looks like from the outside.

Your table on Saturday

From Café de Roemer

Hi Mara, your table for four is booked for Saturday at 19:30. We are on the Grote Markt, by the church.

Map of the Grote Markt in Haarlem with a marker on the café, inside a booking email© OpenStreetMap contributors
Get directionsGrote Markt 2, Haarlem

A map wherever an image goes.

Booking mails, delivery updates, invoices, link previews, printed labels. None of them can run a map library, all of them can show a picture. One img tag with the URL, and the map is there.

Find the coordinates first
api.rijwind.com/styles/v1/light/static/-9.1393,38.7223,12/560x360@2x.png
Lisbon: lisbon at zoom 12© OpenStreetMap contributors
Lisbon at zoom 12

Change the URL, the picture follows.

Zoom, markers, lines, shapes, the style, the language of the labels: everything is in the address. Build it with string concatenation, or let the SDK do it.

Draw a route on it

One image request, asked for bigger and bigger

1unit, whatever the size

200 × 150
30 k pixels

One unit, at any size.

A thumbnail and a 1280 by 1280 poster cost the same unit. Only asking for @2x, twice the pixels each way for sharp screens, makes it two.

See what a month costs
booking-email.tsx
const src = staticMapUrl({
  center: [4.6368, 52.3813], zoom: 15,
  size: [640, 360], hidpi: true, format: 'webp',
  markers: [{ lon: 4.6368, lat: 52.3813 }],
});

<img src={src} width={640} height={360} alt="Grote Markt, Haarlem" />

It is a URL, so it goes anywhere.

No client library to load, no render step on your side. The SDK builds the address if you want it to; a template string works just as well, in any language, on any server.

Read the static maps guide

One URL in, one image out.

There is no response body to parse. The bytes are the picture, the headers say what kind, and an img tag, a mail template or a PDF library takes it from there.

Every option, in the docs ↗
GET …/static/4.4869,51.9091,13/800x500.webp
  1. HTTP/2 200
  2. content-type: image/webp// follows the extension in the URL
  3. content-length: 51832// 51 KB; the same view as PNG is five to eight times that
  4. access-control-allow-origin: *
  5. vary: origin, access-control-request-method, access-control-request-headers
  6. date: Thu, 10 Sep 2026 07:17:33 GMT
  7. alt-svc: h3=":443"; ma=2592000
  8.  
  9. RIFF····WEBPVP8 ··· (51,832 bytes)// the body is the picture itself

The short version.

Everything a developer scans a product page for, in one place, without the adjectives.

Static mapsAny size up to the cap, any style, any format.
1 unit / image
High-DPI (@2x)Twice the pixels each way, same layout.
2 units / image
Image size2560 × 2560 with @2x.
up to 1280 × 1280
Formats, stylesIn light, dark, grayscale, white or black.
png · webp · jpg
OverlaysPlus a filled shape or a circle, all styled from the URL; frames itself around them if you ask.
50 markers · 500 points
LabelsLocal names by default. Turn them off for a clean backdrop.
41 languages, or none
Satellite, terrain, 3DStreet styles only in static renders, for now. The interactive map has all three.
no
Custom marker iconsColoured dots in three sizes, with an optional label.
no
Free tierHard cap. No card, no sales call.
10,000 units / month
Paid plansOne unit pool across maps, geocoding and routing, plus a spending cap you set.
from €5 / month
ProcessingNo US-controlled provider in the request path. DPA and sub-processor list published.
EU, end to end

Numbers as of September 2026. The pricing page has the full ladder.

Static maps, answered.

What is a static map?

A map rendered to an ordinary image file, a PNG, WebP or JPEG, that you request with a URL. You say where, how far zoomed in, how big and in which style, and you get back a picture of exactly that view. No JavaScript, no interactive map, just an image you can put anywhere an image goes.

What is it for?

Anywhere a map library cannot run: transactional email, PDFs and invoices, link previews and social cards, printed labels, notifications, dashboards that are rendered on the server, and slow pages where an interactive map would be too heavy. It is also the quickest way to show a location at all: one img tag.

How much does it cost?

One unit per image, at any size up to the cap. A High-DPI image, requested with @2x for sharp screens, costs two, because it carries four times the pixels. Units come from the same monthly pool as maps, geocoding and routing.

How big can the image be?

Up to 1280 pixels a side, so 1280 by 1280 at most. With @2x that becomes 2560 by 2560 actual pixels while the layout, the label sizes and the line widths stay those of the 1280 image.

Can I add markers, lines and areas?

Yes. Up to fifty markers per image, each with its own colour, size and a short label; lines as coordinate lists or an encoded polyline, up to five hundred points per image, with a stroke, a width and an optional fill that turns them into shapes; and a circle of any radius around the centre. You can also let the image frame itself around your overlays, with padding, instead of picking a centre and zoom.

Which styles, formats and languages?

Five street styles: light, dark, grayscale, white and black. Three formats: PNG, WebP and JPEG, chosen by the file extension in the URL. Labels come in the local name by default and can be switched to any of forty-one languages, or turned off altogether for a clean backdrop under your own overlays.

Where is it weakest?

Static renders use the street styles only: no satellite imagery, no terrain shading and no 3D buildings yet, all of which the interactive map does have. Markers are coloured dots in three sizes with an optional label, not custom icons. If you need any of those in a picture today, render a screenshot of the interactive map instead.

Is it safe to put my API key in an image URL?

The key is visible to anyone who can see the URL, so treat it that way: use a key whose only job is static maps, keep its allowed-origins list empty because an img tag sends no origin, and let the monthly quota and the spending cap you set be the meter. A leaked key can cost you units, never money beyond the cap.

Is there a free tier?

Yes. The free plan includes 10,000 units a month with no card and no sales call, which is 10,000 images if that is all you spend them on. It is a hard cap, so a runaway loop cannot produce a bill.

Where are my requests processed?

In the European Union, end to end. No part of the request path touches a US-controlled provider, which is what makes the GDPR and data-residency conversation short. We publish a DPA and a full sub-processor list.

Put a map in the email.

Ten thousand units a month, free. The same key covers maps, search and routing when you get to them.

600 × 400, light, a marker on the caféGet an API key
No credit card. No sales call. A spending cap you set yourself.Read the static maps guide