{
  "openapi": "3.0.1",
  "info": {
    "title": "GIS Format Converter: Shapefile, GeoJSON, KML, GPX, WKT & CSV",
    "description": "Convert vector GIS data between Shapefile, GeoJSON, KML, KMZ, GPX, WKT and CSV, with optional EPSG reprojection. Deterministic, no GDAL, no scraping.",
    "version": "0.0",
    "x-build-id": "sAs0hb2ftbgS493pN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nibble~geo-format-converter/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nibble-geo-format-converter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nibble~geo-format-converter/runs": {
      "post": {
        "operationId": "runs-sync-nibble-geo-format-converter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nibble~geo-format-converter/run-sync": {
      "post": {
        "operationId": "run-sync-nibble-geo-format-converter",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "targetFormat": {
            "title": "Target format",
            "enum": [
              "geojson",
              "kml",
              "kmz",
              "gpx",
              "wkt",
              "csv",
              "shapefile"
            ],
            "type": "string",
            "description": "The format to convert every input file into.",
            "default": "geojson"
          },
          "fileUrls": {
            "title": "File URLs",
            "type": "array",
            "description": "Public URLs of GIS files to convert. Each is downloaded (with retries). Format is auto-detected from the extension/content; override with 'sourceFormat' if needed.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyValueStoreKeys": {
            "title": "Key-value store keys (uploaded files)",
            "type": "array",
            "description": "Keys in this run's default key-value store that hold GIS file bytes. This is how files uploaded via the Console form are passed to the Actor.",
            "items": {
              "type": "string"
            }
          },
          "inlineData": {
            "title": "Inline text data",
            "type": "array",
            "description": "Raw text payloads passed inline — for GeoJSON, KML, GPX, WKT or CSV. Convenient for API or AI-agent callers.",
            "items": {
              "type": "string"
            }
          },
          "base64Data": {
            "title": "Inline base64 data",
            "type": "array",
            "description": "Base64-encoded payloads passed inline — for binary inputs (Shapefile .zip, KMZ). Convenient for API or AI-agent callers.",
            "items": {
              "type": "string"
            }
          },
          "sourceFormat": {
            "title": "Source format (override)",
            "enum": [
              "",
              "geojson",
              "kml",
              "kmz",
              "gpx",
              "wkt",
              "csv",
              "shapefile"
            ],
            "type": "string",
            "description": "Force the input format instead of auto-detecting. Leave blank to auto-detect from extension/content.",
            "default": ""
          },
          "sourceEpsg": {
            "title": "Source CRS (EPSG code)",
            "type": "integer",
            "description": "EPSG code of the INPUT coordinates. Leave blank to use the file's own CRS (from a shapefile .prj or GeoJSON crs member) or default to WGS84 (4326)."
          },
          "targetEpsg": {
            "title": "Target CRS (EPSG code)",
            "type": "integer",
            "description": "EPSG code to reproject the OUTPUT to (e.g. 3857 for Web Mercator, 27700 for British National Grid). Leave blank for no reprojection."
          },
          "coordinatePrecision": {
            "title": "Coordinate precision (decimal places)",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Decimal places to round output coordinates to. 6 (~0.11 m at the equator) is a good default for lat/lon.",
            "default": 6
          },
          "includeFeatures": {
            "title": "Embed full features in each dataset record",
            "type": "boolean",
            "description": "The converted file is always saved to the run's key-value store (and linked from each record). By default the dataset record embeds only a small preview of the parsed GeoJSON features to keep records small (the full geometry is already in the saved file). Enable this to embed the complete 'features' array in every record instead.",
            "default": false
          },
          "geometryColumn": {
            "title": "CSV: geometry column",
            "type": "string",
            "description": "For CSV input: the name of the column holding WKT geometry. Leave blank to auto-detect (wkt/geometry/geom) or use latitude/longitude columns instead."
          },
          "latColumn": {
            "title": "CSV: latitude column",
            "type": "string",
            "description": "For CSV input with point coordinates: the latitude column name. Leave blank to auto-detect (lat/latitude/y)."
          },
          "lonColumn": {
            "title": "CSV: longitude column",
            "type": "string",
            "description": "For CSV input with point coordinates: the longitude column name. Leave blank to auto-detect (lon/lng/longitude/x)."
          },
          "csvDelimiter": {
            "title": "CSV: delimiter",
            "type": "string",
            "description": "For CSV input: the column delimiter. Leave blank to auto-detect comma, semicolon, tab or pipe."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}