Skip to content

CSV to TSV converter

CSV to TSV is a our table engine conversion that rewrites comma-delimited records as tab-delimited text while still parsing CSV quotes before the delimiter changes.

  • Converted with Table engine · nothing stored
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • Comma delimiters Changed

    Field boundaries move from commas to tab characters after parsing, so commas inside quoted CSV cells stay as cell text.

  • Quoted multiline cells Kept

    A CSV note containing an actual line break stayed one TSV field and was quoted in the output to protect the embedded newline.

  • UTF-8 BOM Changed

    The leading byte order mark was removed before the first header was written, leaving id instead of an invisible-prefixed name.

  • Numeric-looking IDs Changed

    Values such as 001 and 02134 were emitted as 1 and 2134 because scalar inference currently treats them as numbers.

  • ISO dates Changed

    A 2026-09-10 cell became 2026-09-10T00:00:00.000Z, which is clearer for machines but different from the source text.

  • Ragged rows Changed

    A short row was padded with empty TSV fields, and the API returned a ragged-row warning for the missing cells.

Sample conversions

BOM CSV with quoted commas

Input
CSV started with a UTF-8 BOM and row 001,"Ada, Inc.","line one\nline two",02134,true,"1,234.50",2026-09-10,
Output
TSV began id\tname\tnote\tzip; the first data line contained 1\tAda, Inc.\t"line one\nline two"\t2134\ttrue\t1,234.50\t2026-09-10T00:00:00.000Z.

Short final row

Input
The last CSV record was only 003,Zoë with six missing columns.
Output
TSV wrote 3\tZoë followed by empty tab slots through the empty column, and x-warnings included the ragged-row message.

A real CSV → TSV run

We converted our CSV sample (226 B) with Table engine on 2026-09-11. It took 1 ms and produced a 281 B TSV file, 1.2× larger than the input. The engine raised no warnings.

Input · sample.csv · 226 B

4 data rows × 5 columns; header: company,stage,arr,owner,close_date

Rows
4
Columns
5
Header
company,stage,arr,owner,close_date

Output · sample.tsv · 281 B

4 data rows × 5 columns; header: company stage arr owner close_date

Rows
4
Columns
5
Header
company stage arr owner close_date

First lines of the output

tsv
company	stage	arr	owner	close_date
Northwind Traders	Proposal	48000	R. Ayers	2026-10-14T00:00:00.000Z
Contoso Ltd	Negotiation	120000	P. Ng	2026-09-30T00:00:00.000Z
Fabrikam	Qualified	22500	R. Ayers	2026-11-02T00:00:00.000Z
Tailspin Toys	Won	64000	M. Okafor	2026-09-03T00:00:00.000Z

Options and when to change them

delimiter
Set the read delimiter when the source file is mislabeled CSV but actually uses semicolons, pipes, or tabs.
header
Turn this off when the first CSV record is data and generated column_1 style labels are acceptable.
quote
Change it only for nonstandard exports that wrap fields with apostrophes or another single quote character.
encoding
Use latin1 for older regional exports that show mojibake under UTF-8 decoding.
newline
Choose CRLF if the TSV is headed to a Windows tool that rejects LF-only records.

Do it yourself

Python csv module

bash
python - <<'PY'
import csv
with open("input.csv", newline="", encoding="utf-8-sig") as src, open("output.tsv", "w", newline="", encoding="utf-8") as dst:
    reader = csv.reader(src)
    writer = csv.writer(dst, delimiter="\t")
    writer.writerows(reader)
PY

This preserves text literally; it will not reproduce tabular-ir's number, boolean, null, or date coercion.

CSV to TSV by API or MCP

The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=csv&to=tsv.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.csv" -F "from=csv" -F "to=tsv" \
  -F 'options={"delimiter":","}' \
  --output output.tsv

Options this engine accepts for CSV → TSV

KeyApplies toTypeDefault
delimiterReading CSVstring,
headerReading CSVbooleantrue
quoteReading CSVstring"
encodingReading CSVutf-8 · latin1utf-8
delimiterWriting TSVstring,
newlineWriting TSV ·
API reference

When this is the wrong conversion

  • Do not use TSV if downstream software treats tabs inside unquoted data as hard separators; JSON or XLSX is safer for long text notes.
  • If leading zeros are legally meaningful, keep a text-safe CSV workflow or convert through a tool where column types can be pinned.

CSV to TSV questions

Will quoted commas break CSV to TSV conversion?

No. The CSV parser reads quoted cells before TSV is written, so Ada, Inc. stayed one field in our run. A quoted line break also stayed inside the note cell instead of creating an extra record.

Why did 001 change to 1 in the TSV?

The current tabular engine infers simple numeric strings as numbers. That helps totals and counts, but it is unsafe for ZIP codes, invoice IDs, and codes with leading zeroes.

Does CSV to TSV run?

The route resolver marks csv-to-tsv as a table engine browser pair, so the web converter can process the file on the device. API requests still upload the file because the API endpoint itself is server-side. The conversion counts toward your daily or monthly allowance like every other, and the input is deleted within 24 hours.