GIS Format Converter: Shapefile, GeoJSON, KML, GPX, WKT & CSV avatar

GIS Format Converter: Shapefile, GeoJSON, KML, GPX, WKT & CSV

Pricing

from $2.50 / 1,000 dataset converteds

Go to Apify Store
GIS Format Converter: Shapefile, GeoJSON, KML, GPX, WKT & CSV

GIS Format Converter: Shapefile, GeoJSON, KML, GPX, WKT & CSV

Convert vector GIS data between Shapefile, GeoJSON, KML, KMZ, GPX, WKT and CSV, with optional EPSG reprojection. Deterministic, no GDAL, no scraping.

Pricing

from $2.50 / 1,000 dataset converteds

Rating

0.0

(0)

Developer

Simon Fletcher

Simon Fletcher

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Share

What does GIS Format Converter do?

GIS Format Converter converts vector geospatial data between the formats GIS teams actually useShapefile (.zip), GeoJSON, KML, KMZ, GPX, WKT and CSV-with-geometry — and can optionally reproject coordinates from one EPSG CRS to another (for example WGS84 4326 → Web Mercator 3857, or → British National Grid 27700). It runs entirely on data you supply (URL, uploaded file, inline text, or base64) — it does not scrape any website, needs no login, and touches no personal data.

Because it runs on the Apify platform, you get an HTTP API, scheduling, integrations (Make, Zapier, n8n), and MCP access for AI agents — turning a fiddly command-line ogr2ogr step into a callable cloud endpoint. The engine is pure Python (shapely + pyproj + pyshp), so conversions are deterministic and there is no GDAL install to babysit.

Why use GIS Format Converter?

  • Interoperability: move data between tools that each demand a different format — QGIS, Google Earth, Garmin/Strava (GPX), PostGIS (WKT), spreadsheets (CSV), web maps (GeoJSON).
  • Reprojection on the fly: get coordinates in the CRS your map or database expects without opening a desktop GIS.
  • Automation & AI agents: call it from a pipeline or an LLM agent to normalize incoming geodata to one canonical format (usually GeoJSON) before further processing.
  • No-toolchain conversion: no GDAL, no local installs, no CLI — just JSON in, structured JSON + a downloadable file out.

How to use GIS Format Converter

  1. Open the Input tab.
  2. Provide your data one of four ways: paste inline text (GeoJSON/KML/GPX/WKT/CSV), add a file URL, upload a file (passed via a key-value-store key), or send base64 for binary inputs (Shapefile .zip, KMZ).
  3. Choose a Target format (e.g. geojson).
  4. (Optional) set a Target CRS (EPSG code) to reproject; set the Source CRS if the input's own CRS is unknown or missing.
  5. Click Start. Each converted file appears as one row in the Output dataset, and the converted file itself is saved to the run's key-value store for download.

Input

FieldTypeDescription
targetFormatstringOutput format: geojson, kml, kmz, gpx, wkt, csv, shapefile.
fileUrlsarrayPublic URLs of GIS files to download and convert.
keyValueStoreKeysarrayKeys of uploaded files in the run's key-value store.
inlineDataarrayInline text payloads (GeoJSON/KML/GPX/WKT/CSV).
base64DataarrayBase64 payloads for binary inputs (Shapefile .zip, KMZ).
sourceFormatstringForce the input format (else auto-detected).
sourceEpsgintegerEPSG code of the input coordinates (else read from the file or 4326).
targetEpsgintegerEPSG code to reproject the output to (blank = no reprojection).
coordinatePrecisionintegerDecimal places for output coordinates (default 6).
geometryColumn / latColumn / lonColumn / csvDelimiterstringCSV parsing hints.

Input example

{
"targetFormat": "geojson",
"inlineData": ["POINT (-0.1276 51.5074)\nPOINT (2.3522 48.8566)"],
"targetEpsg": 3857,
"coordinatePrecision": 2
}

Output

Each input file becomes one dataset item. You can download the dataset as JSON, CSV, Excel or HTML, and each converted file is also saved to the key-value store (see output.keyValueStoreKey).

{
"source": "inlineData[0]",
"status": "ok",
"sourceFormat": "wkt",
"targetFormat": "geojson",
"featureCount": 2,
"geometryTypes": ["Point"],
"sourceCrs": "EPSG:4326",
"targetCrs": "EPSG:3857",
"reprojected": true,
"bbox": [-14204.37, 6250564.35, 261845.71, 6711542.48],
"output": {
"format": "geojson",
"filename": "converted.geojson",
"encoding": "text",
"content": "{\"type\":\"FeatureCollection\", ...}",
"byteSize": 214,
"keyValueStoreKey": "output-0-converted.geojson"
},
"features": [
{ "geometry": { "type": "Point", "coordinates": [-14204.37, 6711542.48] }, "properties": {} },
{ "geometry": { "type": "Point", "coordinates": [261845.71, 6250564.35] }, "properties": {} }
],
"meta": { "engine": "shapely+pyproj+pyshp", "coordinatePrecision": 2, "detectedSourceEpsg": null }
}

Output fields

FieldDescription
sourceWhich input this record came from.
statusok or error.
sourceFormat / targetFormatFormats converted from/to.
featureCountNumber of vector features converted (billed only when > 0).
geometryTypesDistinct geometry types (Point, LineString, Polygon, …).
sourceCrs / targetCrsInput/output CRS as EPSG:<code>.
reprojectedWhether coordinates were transformed.
bbox[minX, minY, maxX, maxY] in the target CRS.
outputThe converted file (content + downloadable key-value-store key).
featuresNormalized GeoJSON features — an agent-friendly structured view.

Supported conversions

Any listed source format converts to any listed target format. GPX output supports Point and LineString geometries; Shapefile output requires a single geometry family per file (all points, all lines, or all polygons) per the shapefile specification.

ShapefileGeoJSONKMLKMZGPXWKTCSV
In
Out

Pricing / cost estimation

This Actor uses pay-per-event: you are charged once per non-empty converted file (featureCount > 0). Empty or failed inputs are never billed, and the run honors any max-charge cap you set. Compute per file is tiny (well under a second of work), so cost is driven by the per-result event, not by CPU time. See the Console pricing tab for the current rate.

Tips & advanced options

  • Batch many files in one run (multiple fileUrls / inlineData entries) to amortize container startup.
  • CRS not in the file? Set sourceEpsg explicitly — KML/GPX are always WGS84 (4326); Shapefiles carry a .prj; GeoJSON defaults to 4326 per RFC 7946.
  • Protect precision: raise coordinatePrecision for projected/metric CRSs where you need sub-metre accuracy.
  • CSV geometry: the Actor auto-detects a WKT column (wkt/geometry/geom) or latitude/longitude columns; override with geometryColumn / latColumn / lonColumn.

FAQ, disclaimers & support

  • Does it scrape anything? No. It only transforms data you provide. No login, no PII.
  • Do I need GDAL/ogr2ogr? No. The engine is pure Python and self-contained.
  • What about 3D/Z coordinates and .gml/.gpkg? The current version converts 2D X/Y vector geometry across the seven listed formats; GeoPackage/GML are not yet supported.
  • Found a bug or need another format? Open the Issues tab on the Actor page — custom format/CRS support can be added on request.