{
  "slug": "gpx-to-csv",
  "name": "gizza-ai/gpx-to-csv",
  "version": "0.1.0",
  "title": "GPX to CSV Converter — Track, Route & Waypoint Points to Spreadsheet — gizza.ai",
  "description": "Convert a GPX track, route or waypoints to clean CSV in your browser — latitude, longitude, elevation, time, derived speed and sensor data. Free, private, no upload.",
  "tags": [
    "gpx to csv",
    "gpx to spreadsheet",
    "gpx track to csv",
    "waypoints to csv",
    "extract gpx coordinates",
    "gpx elevation csv",
    "convert gpx",
    "gps track to csv"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/gpx-to-csv/",
    "markdown": "https://gizza.ai/tools/gpx-to-csv/index.md",
    "descriptor": "https://gizza.ai/tools/gpx-to-csv/tool.json",
    "deep_link_example": "https://gizza.ai/tools/gpx-to-csv/?gpx=%3Cgpx%3E%3Ctrk%3E%3Ctrkseg%3E%3Ctrkpt%20lat%3D%2240.0%22%20lon%3D%22-105.0%22%3E%3Cele%3E1600%3C%2Fele%3E%3Ctime%3E2024-03-09T08%3A00%3A00Z%3C%2Ftime%3E%3C%2Ftrkpt%3E%3C%2Ftrkseg%3E%3C%2Ftrk%3E%3C%2Fgpx%3E&points=all&delimiter=comma&header=true&time_format=iso&speed=true"
  },
  "cli": "gizza tool gpx-to-csv '<gpx><trk><trkseg><trkpt lat=\"40.0\" lon=\"-105.0\"><ele>1600</ele><time>2024-03-09T08:00:00Z</time></trkpt></trkseg></trk></gpx>'",
  "tool": {
    "description": "Convert a GPX document into a CSV table with one row per point — columns point_type, name, latitude, longitude, elevation_m, and time, plus a speed_kmh column (opt-in) and any Garmin-style sensor extension columns (heart_rate_bpm, cadence_rpm, power_w, temperature_c) that are present. points selects track/route/waypoint/all; delimiter picks the separator (comma/semicolon/tab/pipe); header toggles the header row; time_format writes the time column as iso/unix or drops it (none); speed adds derived ground speed. Coordinates and elevations are preserved verbatim; fields are RFC-4180 escaped. Paste the GPX contents in the 'gpx' field. Runs entirely in-browser; nothing is uploaded.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "delimiter": {
          "default": "comma",
          "description": "Output CSV field separator. Default comma. Use semicolon for comma-decimal locales, tab for TSV, or pipe.",
          "enum": [
            "comma",
            "semicolon",
            "tab",
            "pipe"
          ],
          "type": "string"
        },
        "gpx": {
          "description": "The GPX document to convert. Paste the whole file contents — an XML document with <trkpt> (track), <rtept> (route), and/or <wpt> (waypoint) elements carrying lat/lon attributes.",
          "type": "string"
        },
        "header": {
          "default": true,
          "description": "Emit the column-name header row. Default true; set false for a headerless CSV.",
          "type": "boolean"
        },
        "points": {
          "default": "all",
          "description": "Which point types to include as rows. all (default) emits track, route, and waypoint points; or restrict to one of track, route, waypoint.",
          "enum": [
            "all",
            "track",
            "route",
            "waypoint"
          ],
          "type": "string"
        },
        "speed": {
          "default": false,
          "description": "Add a speed_kmh column with ground speed derived from consecutive timestamps (haversine distance ÷ Δt) along each track segment / route. Default false.",
          "type": "boolean"
        },
        "time_format": {
          "default": "iso",
          "description": "How the time column is written. iso (default) keeps the original ISO-8601 text; unix converts each timestamp to epoch seconds; none drops the time column entirely.",
          "enum": [
            "iso",
            "unix",
            "none"
          ],
          "type": "string"
        }
      },
      "required": [
        "gpx"
      ],
      "type": "object"
    }
  }
}