Turn a spreadsheet into JSON

Delimiters are detected, headers are used as keys, and numbers become numbers rather than strings.

Drop a file here, or , or type below.

.csv · .txt · up to 4 MB · processed in memory and never stored · or paste with Ctrl+V

Options

Override the sniffed delimiter.

1 credit

What it does

Also called: convert csv to json · turn a spreadsheet into json · parse a csv file into objects.

Use it from your own code

The same endpoint this page calls — no daily cap, 1 credit a call either way.

POST /v1/core/csv-to-json

curl -X POST "$DOATHING_API/v1/core/csv-to-json" \
  -H "x-api-key: $DOATHING_KEY" \
  -H "content-type: application/json" \
  -d '{"text": "a,b\n1,true"}'

Delimiters are detected, headers are used as keys, and numbers become numbers rather than strings.

Convert CSV to JSON records with delimiter sniffing, header detection and optional type coercion.

Input

Send either a text string or a file object. A file is decoded as UTF-8 and must be one of text/csv, text/plain.

Response

The result carries your remaining balance alongside it, so you can track spend without a second call.

{
  "text": "[\n  {\n    \"a\": 1,\n    \"b\": true\n  }\n]",
  "rows": 1,
  "columns": [
    "a",
    "b"
  ],
  "delimiter": ",",
  "request_id": "37f01edb-0163-42a1-ac51-0acaef979800",
  "credits_remaining": 96
}

Cost

1 credit per call, whether it is run from the site or from the API — the credential differs, the price does not. A new account starts with 20 credits.

A rejected request still costs a credit: the authorizer decrements before the tool validates. A call rejected for a missing or invalid key is free.

Parameters

Generated from the endpoint’s own validation, so this is exactly what it accepts. A body field goes at the top level; an option goes inside options.

NameInTypeDefaultNotes
headeroptionsbooleantrueTreat the first row as column names.
coerce_typesoptionsbooleantrueTurn numbers, booleans and blanks into JSON types.
delimiteroptionsstring—Override the sniffed delimiter.