Skip to content

Data Format Converter – CSV, JSON, Excel, XML, YAML, Parquet

Try for free

Convert data files between CSV, TSV, JSON, JSON Lines, YAML, XML, Excel (XLSX, XLS, ODS) and Parquet in any direction. Every sheet, nested JSON flattened to columns, types and dates kept, optional JSON Schema validation, column picking and renaming. Converts files from links, pasted text or your datasets.

🔄 Data Format Converter

Convert data files between CSV, TSV, JSON, JSON Lines, YAML, XML, Excel (XLSX, XLS, ODS) and Parquet in any direction. Paste links (or the data itself), pick the output format and get a download link for every converted sheet in seconds. No login, no code, no spreadsheet program needed: $0.000085 per converted file plus $0.0000425 per run, with platform usage included.

✨ Why use Data Format Converter?

  • 🔁 Any format to any format — 10 input formats and 9 outputs, detected automatically from the file content, not just the file name.
  • 📑 Every sheet — one file per sheet, or all sheets of a workbook in one file with a _sheet column; pick sheets by name or position.
  • 🧩 Nested JSON done right — nested objects become dotted columns (address.city) for CSV and Excel, and dotted columns can be turned back into nested JSON.
  • 🔢 Types and dates kept — numbers stay numbers, dates come out as ISO dates (or your own pattern), IDs with leading zeros and long numbers are never rounded.
  • ✅ Built-in validation — check every row against a JSON Schema or a list of required columns, and keep, drop or separate the rows that fail.
  • 📦 Big files — streams large CSV, JSON, XML and Parquet files instead of loading them whole; outputs over 45 MB are split into parts automatically.

🎯 Use cases

  • 📊 Spreadsheets to data — turn Excel reports and Google Sheets exports into CSV, JSON or Parquet for databases, pandas, BigQuery or a data lake.
  • 🔌 API responses to tables — flatten nested JSON from an API into a clean CSV or Excel sheet for analysts and clients.
  • 🏗️ ETL and pipelines — convert partner feeds (XML, YAML, TSV) into the format your pipeline reads, on a schedule.
  • 🧹 Data quality checks — validate incoming files against a JSON Schema before they reach your systems, with the failing rows in their own file.
  • 🗂️ Exports of scraped data — convert any of your datasets into Parquet, YAML or XML in one run.

🚀 How to use

  1. Paste one or more file links into File URLs (or paste the data itself into Pasted data).
  2. Choose the output format in Convert to.
  3. Optional: pick sheets, columns, a date format or a JSON Schema.
  4. Click Start. Each converted file appears as a row with a Download link.
  5. Download the files one by one, or all of them as one ZIP from the run summary (filesZipUrl). The results table itself can be exported as JSON, CSV or Excel.

📥 Input

FieldWhat it does
fileUrlsLinks to CSV, TSV, JSON, JSON Lines, YAML, XML, XLSX, XLS, XLSB, ODS or Parquet files. Google Sheets, Drive, Dropbox and GitHub share links work.
outputFormatcsv, tsv, json, jsonl, yaml, xml, xlsx, parquet, or dataset (every record as a dataset row).
dataPasted CSV, JSON, YAML or XML text instead of a file.
sheets / sheetModeWhich sheets to convert, and one file per sheet or all in one file.
columns / renameColumnsKeep and order columns; rename them.
jsonSchema / requiredColumns / invalidRowsValidate rows and keep, drop or separate the invalid ones.
datasetId / keyValueStoreId / base64FilesConvert a dataset, stored files or base64 files.
{
  "fileUrls": [
    "https://go.microsoft.com/fwlink/?LinkID=521962",
    "https://raw.githubusercontent.com/pandas-dev/pandas/v2.2.3/pandas/tests/io/data/excel/test1.xlsx"
  ],
  "outputFormat": "csv",
  "delimiter": ",",
  "dateFormat": "iso"
}

📤 Output

One row per converted file (per sheet for workbooks):

FieldDescription
fileNameName of the converted file
fileUrlDownload link, valid for 7 days
outputFormatFormat of the converted file
rowCount / columnCountRows and columns written
columnsColumn names in order
fileSizeBytesSize of the converted file
sourceUrl / sourceFileName / inputFormatWhere the data came from and the detected input format
sheetName / sheetIndexThe sheet, for workbooks
validRows / invalidRows / validationErrorsValidation results (when a schema or required columns are set)
invalidRowsFileUrlLink to the rows that failed, when they are saved separately
part / partCountPart number when a large output was split
notesDetected delimiter and encoding, where the records were found, and similar details
status / error / errorCodeok, or why a file could not be converted

Example (trimmed):

{
  "fileName": "Financial-Sample.csv",
  "fileUrl": "https://api.scrape.ly/v2/key-value-stores/8afc80e5-e3d1-4c41-ae08-13077a33afcb/records/Financial-Sample.csv?signature=...&attachment=1",
  "outputFormat": "csv",
  "rowCount": 700,
  "columnCount": 16,
  "columns": ["Segment", "Country", "Product", "Discount Band", "Units Sold", "Manufacturing Price", "Sale Price", "Gross Sales", "Discounts", "Sales", "COGS", "Profit", "Date", "Month Number", "Month Name", "Year"],
  "fileSizeBytes": 77300,
  "sourceUrl": "https://go.microsoft.com/fwlink/?LinkID=521962",
  "sourceFileName": "Financial-Sample.xlsx",
  "inputFormat": "xlsx",
  "sheetName": "Sheet1",
  "sheetIndex": 1,
  "skippedRows": 0,
  "notes": null,
  "convertedAt": "2026-11-13T05:45:43.365Z",
  "status": "ok"
}

With Convert to: Dataset rows, the dataset holds the records themselves instead, for example {"name": "Widget", "price": 9.99, "in_stock": true}.

💰 Pricing

  • $0.000085 per converted file (each sheet or output part counts as one file), so 1,000 converted files cost $0.085.
  • $0.000085 per row when the output is Dataset rows: 10,000 rows saved to the dataset cost $0.85.
  • $0.0000425 per run start fee.
  • Platform usage (compute, storage, proxy) is included. Files that fail to download or convert are free.

Example: converting a workbook with 4 sheets to CSV costs 4 × $0.000085 + $0.0000425 = $0.0003825.

❓ FAQ

Is it legal to use? Yes: it converts files you provide or have the right to use. Make sure you may process the data inside them.

Do I need a login or a proxy? No login. Downloads go through a datacenter proxy by default; switch to Residential only if a host refuses the download.

How large can files be? Up to 1 GB per input file. CSV, TSV, JSON Lines, JSON, XML and Parquet inputs are streamed. Spreadsheets are read sheet by sheet, so very large workbooks may need more memory (raise it in the run options). Outputs over 45 MB are split into numbered parts.

How are nested JSON and lists handled? For CSV, TSV, Excel and Parquet, nested objects become dotted columns and lists become JSON text. Turn on Nest dotted columns to rebuild nested JSON from a flat file.

Why is a value text instead of a number? Values with leading zeros, more than 15 digits or thousands separators stay text on purpose, so IDs, phone numbers and postcodes are never changed. Turn off Detect numbers to keep every CSV value as text.

Can I schedule it or use the API? Yes. Schedule runs in the console, or call the actor from the API, an automation or an AI agent. For a dataset from another run, pass its ID in datasetId.

⚠️ Limits

  • Password-protected workbooks cannot be read.
  • Formulas are converted to their last saved values; formatting, charts, images and comments are not carried over.
  • Excel output holds at most 1,048,576 rows per sheet (longer tables continue on more sheets) and 16,384 columns; cells are cut at 32,767 characters.
  • One stored file can be at most 100 MB: larger outputs are split into parts of up to 45 MB (Excel files are checked after writing).
  • Dates and timestamps are written as text (ISO 8601 or your pattern), also in Excel and Parquet output.
  • XML files with DTD entity declarations or external references are refused for safety.
  • YAML files are read whole, so very large YAML files need more memory.
  • The run's disk holds the downloaded file and its converted copy: about 2 GB at the default memory, more when you raise the memory. Very large files need a bigger run.
  • Download links stay valid for 7 days; download or move the files before then.
//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.