WMTS Capabilities Extractor
Pricing
from $0.35 / 1,000 tile layer / matrix-set rows
WMTS Capabilities Extractor
Point at any OGC Web Map Tile Service (WMTS 1.0.0) and extract a structured tile inventory from GetCapabilities — one row per layer (identifier, formats, styles, WGS84 bbox, TileMatrixSet links, tile-URL template) or per TileMatrixSet (CRS, scale-set, zoom ladder). Any WMTS server.
Pricing
from $0.35 / 1,000 tile layer / matrix-set rows
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Point at any OGC Web Map Tile Service (WMTS 1.0.0) endpoint and get a clean, structured inventory of its tiled map layers and tile-matrix sets — one actor, any WMTS server, no per-site scraper.
WMTS is THE OGC standard for pre-rendered, cached map tiles (the pyramided-raster sibling of WMS's on-demand maps): global basemaps, national mapping-agency raster series, satellite/aerial imagery mosaics, weather/ocean tile layers and every government Spatial Data Infrastructure publish their tiled maps this way. This actor turns any of them — regardless of the server software behind them — into flat, uniform JSON rows.
It completes the OGC OWS shelf alongside the WMS, WFS, WCS and CSW extractors.
What it does
Given one or more WMTS sources, it fetches each service's GetCapabilities document and emits:
layersmode (default) — one row per advertised<Layer>: identifier, title, formats, styles (with legend URLs), WGS84 bounding box, native bounding box, the TileMatrixSet links (with any per-link tile-matrix limits), dimensions, metadata URLs and the RESTfulResourceURLtile-template.tilematrixsetsmode — one row per advertised<TileMatrixSet>: identifier,SupportedCRS,WellKnownScaleSet, the tile-matrix count and the ordered list of tile-matrix (zoom-level) identifiers.discoverymode — the full inventory: every Layer row and every TileMatrixSet row from the one document.
Every row carries provenance (_sourceService, _wmtsVersion, _serverSoftware, _mode, _serviceTitle) plus a lossless _raw copy of the source element.
The cross-vendor grammar is the point
The same normalized row shape comes out regardless of the server software. Verified live against four independent families:
| Source | Server software | Shape quirks handled |
|---|---|---|
| EOX::Maps | MapServer | RESTful ResourceURL templates, default XML namespace |
| USGS National Map / ArcGIS Online | Esri ArcGIS Server | ows:WGS84BoundingBox + native BoundingBox, image/jpgpng, multiple TileMatrixSetLink |
| DWD GeoServer-GWC | GeoServer / GeoWebCache | colon-in-identifier (dwd:WORLDMAP), multiple Format/InfoFormat, Style with LegendURL |
| IGN Spain | national SDI | TileMatrixSetLimits, MetadataURL, KVP-only tiles (no ResourceURL) |
Every element is matched by local name (namespace- and prefix-agnostic), so a wmts:, ows: or default-namespace tree all parse identically.
Input
sources(required) — array of WMTS URLs. Each may be a KVP service base (e.g.https://tiles.maps.eox.at/wmts— theSERVICE=WMTS&REQUEST=GetCapabilities&VERSION=1.0.0params are appended for you) or a direct RESTful capabilities document (e.g..../WMTS/1.0.0/WMTSCapabilities.xml— used as-is, never rewritten).mode—layers(default),tilematrixsets, ordiscovery.maxRecords— global cap on rows emitted across all sources (default 1000).userAgent,bearerToken,extraHeaders— optional; for auth-gated or UA-gated deployments. Never required for public services, never logged.
Resilience
- A
200capabilities document with zero layers is a real, clean state → 0 rows, exit 0 (never a fabricated layer). - An
ows:ExceptionReport(a service error returned with HTTP 200) is a real error → that source is skipped with a warning. - An unreachable / 4xx-5xx / anti-bot / non-WMTS source is skipped with a warning and the batch continues.
- A run where every source is skipped fails fast (non-zero exit) so nothing broken is ever reported as a success.
Pricing
Pay-per-result: one layer event per emitted row.