TileJSON Tileset Metadata Extractor
Pricing
from $0.35 / 1,000 records
TileJSON Tileset Metadata Extractor
Point at ANY TileJSON 3.0 tileset metadata URL (OpenFreeMap, VersaTiles, MapTiler, Stadia, tileserver-gl, Tippecanoe, PMTiles) and extract structured metadata: one row per vector layer (id, fields, zoom) plus bounds, center, attribution, scheme, tile URLs. Raster tilesets emit a summary row.
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
12 days ago
Last modified
Categories
Share
Point at any TileJSON 3.0 tileset metadata URL and get its structure as clean, structured rows — one row per vector layer, or a single tileset summary. Works with every conforming map-tile server: OpenFreeMap, VersaTiles, MapTiler, Stadia Maps, tileserver-gl, Tippecanoe output, PMTiles gateways, planetiler builds, and any custom tiles.json.
No per-host scraper, no map rendering — just the metadata document, parsed and normalized.
What it does
Every map-tile server publishes a TileJSON 3.0 document (a tiles.json / tileset-metadata endpoint) describing its tileset: the tiles[] URL templates, the vector_layers[] and their field schemas, geographic bounds, center, minzoom/maxzoom, attribution, scheme, and more. This Actor fetches that document and flattens it.
Input
| Field | Required | Description |
|---|---|---|
tilesetUrl | ✅ | Any TileJSON 3.0 metadata URL. Redirects are followed; relative tile-URL templates are resolved to absolute. |
mode | layers (default) — one row per vector layer; summary — one tileset-summary row. | |
userAgent | Optional User-Agent override. | |
timeoutSecs | Per-request timeout (default 60). |
Example
{"tilesetUrl": "https://tiles.openfreemap.org/planet","mode": "layers"}
Modes
layers(default) — emits one row pervector_layers[]entry: itslayerId,layerFieldsschema (+layerFieldNames/layerFieldCount), and per-layerlayerMinzoom/layerMaxzoom, with the tileset-level metadata joined onto every row.summary— emits exactly one tileset-summary row (name, spec version, bounds, center, zoom envelope, tile URL template, layer count) with no per-layer fan-out.
Raster tilesets
A raster tileset (imagery, hillshade, a raster OpenMapTiles variant) is a valid TileJSON document that simply has no vector_layers. Running such a URL in layers mode automatically falls back to a single tileset summary row (recorded in the row's _note) rather than returning zero rows — so a raster tileset is a real, honest result, never a failure or an empty.
Output
One record per vector layer (or one summary row). Key fields:
- Tileset:
name,description,version,tilejsonVersion,attribution,scheme,format,minzoom,maxzoom,isVector,tilesetLayerCount - Extent:
bounds(+boundsWest/South/East/North),center(+centerLon/Lat/Zoom) - Tiles:
tileUrlTemplate(first template, resolved absolute),tileUrls - Layer (in
layersmode):layerId,layerDescription,layerMinzoom,layerMaxzoom,layerFields,layerFieldNames,layerFieldCount - Provenance:
_tilesetUrl,_mode,_rowIndex,_note, and the lossless_raworiginal document
A URL that cannot be fetched, is not JSON, or is not a TileJSON document fails loudly — this Actor never fabricates rows.
Pricing
Pay-per-event: $0.0005 per record (one vector layer or one tileset summary).