GeoConvert API Reference
Base URL:
- Production:
https://cadshift.com/api/geoconvert - Development:
https://localhost:7010/api/geoconvert
Docs pages are served under /geoconvert/docs/... and are not API endpoints. The actual API lives under /api/geoconvert/... on the server.
Only the endpoints listed below are supported for integrations; any other paths (including /geoconvert/docs/.../webhook or /geoconvert/docs/.../test-convert) are documentation pages, not callable APIs. The upload page also calls convert/inspect, convert/zip-batch and convert/detect-crs; those serve the page and may change without notice.
Authentication
- Header:
X-API-Key: <your_api_key> - Required for every endpoint listed below except the GDAL health check. Pass the raw API key (no
Bearerprefix) in each request. - A missing, unknown, expired or revoked key returns
401with a JSON body:{"success":false,"error":"Authentication required. Provide a valid X-Api-Key header or sign in."} - A key that is fine but whose account may not convert right now also returns
401, with the reason inerror— for example"Organization GeoConvert access has been canceled.","Organization has not enabled GeoConvert."or"Your subscription payment is past due. Please update your payment method."Creating a new key does not help in these cases; the message says what does.
Rate limits
- Each API key may make 60 requests per minute (a one-minute window per key). Every request counts, including status checks and batch requests; a batch is one request however many files it holds.
- Past the limit the API returns
429with aRetry-Afterheader (seconds) and a JSON body:{"success":false,"error":"Rate limit exceeded for this API key. Retry after the time in the Retry-After header."}
Endpoints
- POST /api/geoconvert/convert/file — convert any supported format to any other (GeoJSON, Shapefile, KML, GPX, GeoPackage, XLSX, GeoParquet, …); a ZIP wrapping a single convertible file is unwrapped automatically (recommended)
- POST /api/geoconvert/convert/batch — convert several files in one request, target selectable per file (each file counts as one conversion)
- POST /api/geoconvert/convert/analyze — pre-flight GeoJSON→Shapefile data-loss report (no conversion, nothing counted)
- POST /api/geoconvert/convert/upload — legacy alias of
convert/filewith the usage fields always included - GET /api/geoconvert/convert/jobs — your recent jobs with fresh download links (find a job when the convert response was lost)
- GET /api/geoconvert/convert/jobs/{jobId}/status
- GET /api/geoconvert/convert/gdal-health
- GET /api/geoconvert/pricing/tiers
- Previous
- GeoConvert Overview
- Next
- Upload (POST)