OGC API Tiles Extractor
Pricing
from $0.35 / 1,000 records
OGC API Tiles Extractor
Point at ANY OGC API - Tiles endpoint (the JSON-native successor to WMTS) — ldproxy, GNOSIS, GeoServer, pygeoapi. Inventory vector/map tileset offerings, list tile matrix sets (CRS, zoom levels, axes), or discovery-scan a server's tiles capabilities as flat rows. Pay per record.
Pricing
from $0.35 / 1,000 records
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
A generic "point at any OGC API - Tiles endpoint" scraper. OGC API - Tiles is the modern JSON-native standard for publishing tiled vector and map/raster data — the successor to the older XML Web Map Tile Service (WMTS). Basemaps, vector tilesets, land-cover, imagery and thematic layers are all published as tileset offerings over standard tile matrix sets by national mapping agencies, spatial data infrastructures and modern map servers.
One actor spans them all. Point it at any OGC API landing/root URL and it inventories every tileset offering, lists the tile matrix sets, or discovery-scans the server — with the same normalized row shape regardless of the server software (ldproxy, Ecere GNOSIS, GeoServer, pygeoapi, …). No per-server scraper needed.
Three modes
| Mode | What you get (one flat row per…) |
|---|---|
| tilesets (default) | …tileset offering — tileset_title, data_type (vector/map), tileMatrixSet_id, tileMatrixSet_uri, crs, tile_url_templates, tileset_url, zoom_levels, bbox |
| tilematrixsets | …tile matrix set the server publishes — tms_id, tms_title, tms_crs, tileMatrix_count, tileMatrix_ids, ordered_axes, well_known_scale_set |
| discovery | …source — api_title, tileset_endpoints, tileMatrixSet_ids, tileMatrixSet_count, collection_count (one reconnaissance row per endpoint) |
Every row also carries provenance (_sourceService, _ogcApi,
_serverSoftware, _mode) and a lossless, size-capped _raw.
Why it's a genuine generic runner
OGC API - Tiles servers advertise tilesets two different ways, and this actor normalizes both to one row:
- Tile matrix set id — some servers (ldproxy) give an explicit
tileMatrixSetId; others (GNOSIS) give only atileMatrixSetURI. The actor reads the explicit id when present and otherwise derives it from the URI's last path segment. - Where tiles are advertised — some servers advertise a per-collection
tileset listing (
tilesets-vectorlink relation on a collection); others advertise a server-level global listing (/tiles,/map/tiles). The actor follows the advertised link relations and probes the spec's standard entry points, so both conventions resolve.
Input
{"sources": ["https://demo.ldproxy.net/vineyards", "https://maps.gnosis.earth/ogcapi"],"mode": "tilesets","collections": [],"maxRecords": 1000}
- sources (required) — one or more OGC API landing/root URLs. Point at the
root, not
/tilesor/tileMatrixSets. - mode —
tilesets(default),tilematrixsets, ordiscovery. - collections — in
tilesetsmode, restrict to specific collection ids and drill into each collection's tiles; leave empty to read the fast server-level global tileset listing. Ignored in the other modes. - maxRecords — total row cap (each row is one billable event). Default 1000.
- bearerToken / extraHeaders — optional, for auth-gated deployments. Not required for public OGC API endpoints. Never logged.
Output (tilesets mode, example row)
{"_mode": "tilesets","collectionId": "vineyards","tileset_title": "Vineyards","data_type": "vector","tileMatrixSet_id": "WebMercatorQuad","tileMatrixSet_uri": "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad","crs": null,"tile_url_templates": ["https://demo.ldproxy.net/vineyards/tiles/WebMercatorQuad/{tileMatrix}/{tileRow}/{tileCol}?f=mvt"],"tileset_url": "https://demo.ldproxy.net/vineyards/tiles/WebMercatorQuad","zoom_levels": 12,"bbox": [6.3021348, 49.0087017, 8.4179034, 50.6138935],"_sourceService": "https://demo.ldproxy.net/vineyards","_ogcApi": "tiles","_serverSoftware": "ldproxy"}
Behaviour & honesty
- Content negotiation handled. Every request asks for
f=json; if a server returns HTML (a content-negotiation miss) the resource is skipped with a warning — HTML is never parsed as tiles. - Link-relation driven. Tileset availability is discovered from the server's
own
links[]relations (tilesets-vector,tilesets-map,tiling-schemes), not hard-coded paths beyond the standard entry points. - Zero tilesets is a real state. A reachable endpoint that exposes no tilesets / tile matrix sets returns 0 rows and exits cleanly — no fabricated data.
- Bad sources are skipped with a warning and the run continues; if every source fails, the run fails fast so nothing broken ships.
Pricing
Pay-per-event: one record charge per row returned.
Verified
Tested live against two independent server families: interactive-instruments ldproxy (vineyard vector tilesets) and Ecere GNOSIS (NaturalEarth vector + map tilesets across nine tile matrix sets), confirming identical normalized output across vendors.