Happytails.aiFree tools. No account needed.

CSV to geojson | agent view

The same page content and links, with explicit tool capabilities. Tools marked with an API can run directly through HTTP. Other tools require the browser interface or are not connected yet.

Tool capabilities

{
  "id": "csv-to-geojson",
  "category": "data-tools",
  "built": true,
  "requirements": "Map latitude/longitude columns, validate coordinates and preserve chosen properties.",
  "implementation": {
    "fields": [
      {
        "key": "delimiter",
        "label": "CSV separator",
        "value": ",",
        "type": "select",
        "values": [
          ",",
          ";",
          "\t"
        ]
      },
      {
        "key": "lat",
        "label": "Latitude column",
        "value": "latitude",
        "type": "text"
      },
      {
        "key": "lon",
        "label": "Longitude column",
        "value": "longitude",
        "type": "text"
      }
    ],
    "experience": {
      "automatic": true,
      "single": false,
      "label": "CSV",
      "placeholder": "name,score\nAda,98\nSam,92",
      "help": "Include a header row. Quote cells that contain commas or new lines. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "POST /api/v1/tools/csv-to-geojson/run",
  "api": {
    "id": "csv-to-geojson",
    "name": "CSV to geojson",
    "category": "data-tools",
    "description": "Map latitude/longitude columns, validate coordinates and preserve chosen properties.",
    "notes": "",
    "human_path": "/en/data-tools/csv-to-geojson/",
    "method": "POST",
    "endpoint": "/api/v1/tools/csv-to-geojson/run",
    "schema_url": "/api/v1/tools/csv-to-geojson",
    "input_schema": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input": {
          "type": "string",
          "maxLength": 1000000,
          "default": "",
          "description": "Plain text input. File tools use files instead unless otherwise documented."
        },
        "options": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "delimiter": {
              "type": "string",
              "description": "CSV separator",
              "default": ",",
              "enum": [
                ",",
                ";",
                "\t"
              ]
            },
            "lat": {
              "type": "string",
              "description": "Latitude column",
              "default": "latitude"
            },
            "lon": {
              "type": "string",
              "description": "Longitude column",
              "default": "longitude"
            }
          }
        }
      }
    },
    "output_schema": {
      "type": "object",
      "required": [
        "tool",
        "result"
      ],
      "properties": {
        "tool": {
          "type": "string"
        },
        "result": {
          "type": "object",
          "required": [
            "text",
            "files"
          ],
          "properties": {
            "text": {
              "type": [
                "string",
                "null"
              ]
            },
            "data": {
              "description": "Parsed JSON when the textual result is JSON."
            },
            "name": {
              "type": "string"
            },
            "mime": {
              "type": "string"
            },
            "files": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "mime",
                  "bytes",
                  "base64"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "mime": {
                    "type": "string"
                  },
                  "bytes": {
                    "type": "integer"
                  },
                  "base64": {
                    "type": "string",
                    "contentEncoding": "base64"
                  }
                }
              }
            }
          }
        }
      }
    },
    "processing": "Server; same transformation code as browser tools",
    "limits": {
      "request_bytes": 8388608,
      "input_characters": 1000000,
      "files_bytes": 5242880,
      "max_files": 0,
      "timeout_seconds": 12
    }
  },
  "agent_processing": "Server; same transformation code as browser tools",
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}

Page guide

Map latitude/longitude columns, validate coordinates and preserve chosen properties..

Useful next steps

How to use CSV to geojson

  1. Enter csv in the input field.
  2. The result updates as you type. Adjust the available settings if needed.
  3. Review the result, then use Copy result or a download link when available.

Working with csv to geojson

JSON represents structured values and nested objects. CSV and TSV represent rows and columns, making them convenient for spreadsheets and bulk imports. Moving between these formats changes what can be represented directly: a nested object needs a defined mapping to a flat table.

Common questions

Can JSON and CSV make a lossless round trip?

Not in every case. CSV does not carry JSON data types or nested structure. Decide how numbers, nulls, missing values and nested arrays should be represented rather than assuming a reverse conversion restores them.

Why does a comma create an extra column?

A separator inside a cell must be quoted using the rules of the file format. Newlines and quotation marks inside cells also need proper escaping. Changing the delimiter can help, but it does not repair malformed quoting.

Continue your workflow: JSON to YAML, YAML to JSON, XML to JSON.