Attest tools · File converter

TSV to CSV

Convert tab-separated spreadsheet rows into comma-separated values with headers preserved.

1 credit per successful call

Input JSON

{
  "from": "tsv",
  "to": "csv",
  "text": "item\tquantity\nCotton sheet\t12\nLinen towel\t7\n"
}

Captured output JSON

{
  "from": "tsv",
  "to": "csv",
  "input_source": "text",
  "input_encoding": "utf-8",
  "bytes_in": 44,
  "bytes_out": 45,
  "response_bytes": 51,
  "result_text": "item,quantity\r\nCotton sheet,12\r\nLinen towel,7",
  "truncated": false,
  "stats": {
    "rows": 3,
    "rows_returned": 3,
    "columns": 2
  },
  "warnings": [],
  "limits": {
    "max_input_bytes": 6291456,
    "max_base64_characters": 8388608,
    "max_output_bytes": 3145728,
    "max_response_bytes": 3670016,
    "max_rows": 200000,
    "max_columns": 2000,
    "max_inline_image_bytes": 65536
  },
  "supported_pairs": [
    "docx -> html",
    "docx -> markdown",
    "docx -> text",
    "html -> markdown",
    "html -> text",
    "markdown -> html",
    "csv -> json",
    "csv -> tsv",
    "json -> csv",
    "tsv -> csv"
  ],
  "source": "Converted in this process from the bytes supplied with the request. Formatting that has no equivalent in the target format (page layout, fonts, colours, comments, tracked changes) is dropped, so the output is a working copy of the content, not a reproduction of the original document. General information, not advice.",
  "checked_at": "2026-10-20T20:47:48.834Z"
}

API call

curl -s -X POST https://getattest.com.au/api/v1/files/convert \
  -H "authorization: Bearer $ATTEST_API_KEY" \
  -H "content-type: application/json" \
  --data-raw '{"from":"tsv","to":"csv","text":"item\tquantity\nCotton sheet\t12\nLinen towel\t7\n"}'

Run this call with your own bearer key. Issue an API key.

About this example

The input was validated and run locally through the registered service. The output above is a display preview of the captured service result. File bytes are described instead of printed, and strings longer than 400 characters are truncated; the HTTP API also adds call_id, credits_charged and credits_remaining. Timestamps and generated identifiers will vary.

Source: apps/api/svc/file_convert.mjs

Tool reference and limits · API key guide