---
title: "How to connect a WMS service"
description: "Add layers from a WMS server with its HTTPS GetCapabilities URL. The data stays on the provider's server, so layer speed and uptime depend on it."
sidebar:
  label: "Connect a WMS service"
---

A WMS connection adds layers from another server without uploading files. The data stays on the provider's server and refreshes when viewers open the map. Layer speed and uptime depend on that provider.

**[See it on an example map](https://mangomap-staging.com/examples-staging/maps/xawapsxc/interlaken-raster-lab)**

Open the Interlaken Raster Lab. In the legend, turn on `Swiss National Map (WMS)`. The map shows the Swiss national map, which comes from a WMS service.

## Before you start

- You need an account role of `Admin` or above to import data.
- You need a GetCapabilities URL for the WMS, served over HTTPS. Most providers list this URL in their documentation; it usually looks like `https://example.com/geoserver/wms?service=WMS&request=GetCapabilities`.
- The WMS provider must allow your browser to connect (no IP allowlist, no authentication that the URL doesn't already include).

## Open the import page

In the `Data portal`, click `Import data`. Or, from a map, open `Manage layers` and click `Import new data` to add the WMS layers to that map.

## Pick the format

In the `Data format` dropdown, select `WMS`.

## Connect to the service

Paste your GetCapabilities URL into the `WMS GetCapabilities URL` field and click `Connect`:

<img src="/_assets/importing-data/connect-a-wms-service--url.png" alt="Import data page with Data format WMS, the WMS GetCapabilities URL field holding https://wms.geo.admin.ch/?SERVICE=WMS&amp;REQUEST=GetCapabilities&amp;VERSION=1.3.0, and the pointer on Connect" width="1600" height="960" />

MangoMap shows the service summary and its layers.

Keep any extra parameters the provider gives you in the URL, such as `map=…` or an access key. MangoMap keeps them, so services that need them draw correctly.

If the URL is wrong, unreachable, or doesn't return a valid capabilities document, you'll see an alert reading _"An error occurred while fetching or parsing the WMS data"_ with the underlying error. See [WMS connection failed](/docs/importing-data/troubleshoot-wms-connection).

## Select layers and import

The summary shows the service's details on the left and its layers under `Select layers to import`. Tick each layer you want:

<img src="/_assets/importing-data/connect-a-wms-service--summary.png" alt="WMS BGDI service summary with Description, Contact information, Keywords, and Fees on the left, and a ticked ch.vbs.armee-kriegsdenkmaeler layer with its legend under Select layers to import" width="1600" height="960" />

When you've chosen at least one layer, click `import layers` at the bottom of the page. A long service can list hundreds of layers; use your browser's find (`Ctrl+F` or `⌘F`) to go to a layer by name.

MangoMap creates a dataset (and, if you started from a map, a layer) for each selected WMS layer. Because the provider hosts the data, no upload progress bar appears.

## How WMS layers behave differently from uploads

Compare where the data lives for an uploaded file and for a WMS layer:

{/* diagram:wms-vs-upload-flow */}
<svg class="dark:hidden" style="width: 100%; height: auto" viewBox="0 0 640 344" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="wms-vs-upload-flow-inline-title wms-vs-upload-flow-inline-desc">
  <title id="wms-vs-upload-flow-inline-title">Uploaded data versus WMS</title>
  <desc id="wms-vs-upload-flow-inline-desc">Data flow: an uploaded file is copied into MangoMap once and reaches your map as tiles whose features you can click and restyle; a WMS layer’s data stays on the provider’s server, which sends images each time someone views the map, so a slow or offline provider means a slow or empty layer.</desc>
  <defs>
    <marker id="wms-vs-upload-flow-inline-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#525252"/></marker>
    <marker id="wms-vs-upload-flow-inline-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#c4360c"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#f5f5f5"/>
  <rect x="16" y="24" width="608" height="120" rx="8" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><rect x="32" y="16" width="108" height="16" rx="2" fill="#f5f5f5"/><text x="86" y="28" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">UPLOADED FILE</text>
  <rect x="16" y="176" width="608" height="120" rx="8" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><rect x="32" y="168" width="40" height="16" rx="2" fill="#f5f5f5"/><text x="52" y="180" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">WMS</text>
  <path d="M184 84 L242 84" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#wms-vs-upload-flow-inline-arrow)"/>
  <path d="M396 84 L454 84" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#wms-vs-upload-flow-inline-arrow)"/>
  <path d="M184 236 L454 236" fill="none" stroke="#c4360c" stroke-width="1.4" marker-end="url(#wms-vs-upload-flow-inline-arrow-accent)"/>
  <rect x="194" y="60" width="40" height="16" rx="2" fill="#f5f5f5"/><text x="214" y="72" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">COPY</text>
  <rect x="402" y="60" width="46" height="16" rx="2" fill="#f5f5f5"/><text x="425" y="72" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">TILES</text>
  <rect x="291" y="212" width="58" height="16" rx="2" fill="#f5f5f5"/><text x="320" y="224" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">IMAGES</text>
  <text x="320" y="262" fill="#525252" font-size="12" font-style="italic" font-family="inherit" text-anchor="middle">MangoMap keeps only the URL</text>
  <rect x="32" y="48" width="152" height="72" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="108" y="75" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your file</text><text x="108" y="94" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">imported once</text><text x="108" y="110" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">on Import data</text>
  <rect x="244" y="48" width="152" height="72" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="320" y="75" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">MangoMap</text><text x="320" y="94" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">keeps a copy</text><text x="320" y="110" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">as a dataset</text>
  <rect x="456" y="48" width="152" height="72" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="532" y="75" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your map</text><text x="532" y="94" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">features you can</text><text x="532" y="110" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">click and restyle</text>
  <rect x="32" y="200" width="152" height="72" rx="6" fill="rgba(196,54,12,0.08)" stroke="#c4360c" stroke-width="1.4"/><text x="108" y="227" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Provider’s server</text><text x="108" y="246" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">the data stays here</text><text x="108" y="262" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">and is drawn here</text>
  <rect x="456" y="200" width="152" height="72" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="532" y="227" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your map</text><text x="532" y="246" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">images only: no</text><text x="532" y="262" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">clicks or restyling</text>
  <text x="320" y="328" fill="#171717" font-size="13" font-style="italic" font-family="inherit" text-anchor="middle">If the provider is slow or offline, the WMS layer is too.</text>
</svg>
<svg class="hidden dark:block" style="width: 100%; height: auto" viewBox="0 0 640 344" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="wms-vs-upload-flow-inline-dark-title wms-vs-upload-flow-inline-dark-desc">
  <title id="wms-vs-upload-flow-inline-dark-title">Uploaded data versus WMS</title>
  <desc id="wms-vs-upload-flow-inline-dark-desc">Data flow: an uploaded file is copied into MangoMap once and reaches your map as tiles whose features you can click and restyle; a WMS layer’s data stays on the provider’s server, which sends images each time someone views the map, so a slow or offline provider means a slow or empty layer.</desc>
  <defs>
    <marker id="wms-vs-upload-flow-inline-dark-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#a3a3a3"/></marker>
    <marker id="wms-vs-upload-flow-inline-dark-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#ff7a4d"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#141414"/>
  <rect x="16" y="24" width="608" height="120" rx="8" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><rect x="32" y="16" width="108" height="16" rx="2" fill="#141414"/><text x="86" y="28" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">UPLOADED FILE</text>
  <rect x="16" y="176" width="608" height="120" rx="8" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><rect x="32" y="168" width="40" height="16" rx="2" fill="#141414"/><text x="52" y="180" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">WMS</text>
  <path d="M184 84 L242 84" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#wms-vs-upload-flow-inline-dark-arrow)"/>
  <path d="M396 84 L454 84" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#wms-vs-upload-flow-inline-dark-arrow)"/>
  <path d="M184 236 L454 236" fill="none" stroke="#ff7a4d" stroke-width="1.4" marker-end="url(#wms-vs-upload-flow-inline-dark-arrow-accent)"/>
  <rect x="194" y="60" width="40" height="16" rx="2" fill="#141414"/><text x="214" y="72" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">COPY</text>
  <rect x="402" y="60" width="46" height="16" rx="2" fill="#141414"/><text x="425" y="72" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">TILES</text>
  <rect x="291" y="212" width="58" height="16" rx="2" fill="#141414"/><text x="320" y="224" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">IMAGES</text>
  <text x="320" y="262" fill="#a3a3a3" font-size="12" font-style="italic" font-family="inherit" text-anchor="middle">MangoMap keeps only the URL</text>
  <rect x="32" y="48" width="152" height="72" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="108" y="75" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your file</text><text x="108" y="94" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">imported once</text><text x="108" y="110" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">on Import data</text>
  <rect x="244" y="48" width="152" height="72" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="320" y="75" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">MangoMap</text><text x="320" y="94" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">keeps a copy</text><text x="320" y="110" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">as a dataset</text>
  <rect x="456" y="48" width="152" height="72" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="532" y="75" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your map</text><text x="532" y="94" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">features you can</text><text x="532" y="110" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">click and restyle</text>
  <rect x="32" y="200" width="152" height="72" rx="6" fill="rgba(255,122,77,0.10)" stroke="#ff7a4d" stroke-width="1.4"/><text x="108" y="227" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Provider’s server</text><text x="108" y="246" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">the data stays here</text><text x="108" y="262" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">and is drawn here</text>
  <rect x="456" y="200" width="152" height="72" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="532" y="227" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Your map</text><text x="532" y="246" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">images only: no</text><text x="532" y="262" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">clicks or restyling</text>
  <text x="320" y="328" fill="#f2f2f2" font-size="13" font-style="italic" font-family="inherit" text-anchor="middle">If the provider is slow or offline, the WMS layer is too.</text>
</svg>
{/* /diagram:wms-vs-upload-flow */}

- **They live on the source server.** MangoMap keeps only the URL, not a copy of the data. If the provider goes offline or rate-limits requests, the layer stops loading.
- **They render as images, not features.** You can't click features for attributes, filter by value, or restyle individual points/polygons. Visual styling comes from the WMS itself.
- **Performance depends on the provider.** A slow WMS makes a slow MangoMap layer.

If you need clickable features, restyling, or offline-resilient maps, download the data and import it as a vector file (shapefile, GeoJSON) instead.

## Troubleshooting

**`Only HTTPS URLs are supported`.** Your URL starts with `http://`. Most public WMS services support HTTPS — try replacing the scheme. If the provider only offers HTTP, you cannot import it.

**"An error occurred while fetching or parsing the WMS data".** Several causes — see [WMS connection failed](/docs/importing-data/troubleshoot-wms-connection).

**The layer connects but nothing draws on the map.** Often a coordinate-system mismatch. Many WMS services support `EPSG:3857` (Web Mercator) directly; older services may not support it, and the layer will not draw. Confirm in the GetCapabilities response that the layer supports `EPSG:3857`.

## Related

- [Supported file formats and limits](/docs/importing-data/supported-formats)
- [How importing data works in MangoMap](/docs/importing-data/concepts-importing-data)
- [WMS connection failed](/docs/importing-data/troubleshoot-wms-connection)
