Header, quoting and UTF-8 handled for you
The column names come from the keys of the first object. Fields with commas, quotes or line breaks are wrapped in double quotes, and accents, Arabic and Japanese text came through intact in our test.
Convert JSON to
Convert to CSV
Add a .json file that holds a list of flat records and get a CSV back. Nested values and a single top-level object are not supported.
To convert json to csv, add a .json file whose top level is an array of flat objects, keep CSV as the output and download the result. In our test, a 590 B file with 5 records became a 220 B csv with a header row and 5 data rows. A file with a nested object failed.
Transfers use HTTPS, and files converted on the free tier are deleted after 24 hours, so the result is not a long-term archive. Quality depends on the source file, so open the CSV file once before you share it.
JSON (JavaScript Object Notation)
A text format for structured data built from objects, arrays, strings, numbers, true, false and null. It has no comments and no date type, and it forbids NaN and Infinity. It must be UTF-8 when exchanged between systems, and it is the usual format for web APIs. It is defined by RFC 8259 and ECMA-404, and files end in .json.
CSV (Comma-Separated Values)
Comma-separated values, a plain text format in which each line is a row and a delimiter separates the fields. It has no data types, no styling and no official single standard, although RFC 4180 describes the most common conventions.
A flat JSON file of 5 records and 6 keys, 590 B, converted on indox.org
The column names come from the keys of the first object. Fields with commas, quotes or line breaks are wrapped in double quotes, and accents, Arabic and Japanese text came through intact in our test.
The conversion runs on indox servers, so it works from any browser on Windows, Mac or a phone. We used it without an account. If you only need one export, you can skip writing Python, jq or PowerShell.
Most API responses contain nested objects or lists. This converter does not flatten them, and this page says so before you upload. A nested test file failed in our run.
The top level must be an array, and each item must be an object whose values are strings, numbers, booleans or null. Open the file in a text editor and look for braces or square brackets inside the values.
Drop the .json file on the box or choose it from your device, keep CSV as the output and start. In our test it took 3.2 seconds from the click to Completed.
Save the file and look at the header and a few rows. If you open it in Excel and non-English letters look broken, import it through Data, From Text/CSV and pick UTF-8 as the file origin.
You hand over a JSON array of flat records and take away a CSV that follows the quoting rules of RFC 4180, ready for a spreadsheet, a database import or a BI tool. The page states which JSON shapes fail, so you find out before you upload.

The upload box shows the live size limit before you add a file. Signing in raises it; a paid plan does not change it.
JSON in, CSV out. Pick another output on the converter if you need a different format.
Files are encrypted in transit over HTTPS and processed on indox infrastructure.
Free-tier files are kept for 24 hours after the job finishes, then deleted automatically.
| What you see | Why | What to do |
|---|---|---|
| The row shows Failed and nothing downloads | WhyThe file has a nested value, a top-level object or another unsupported shape. The row gave no reason in our test | What to doCheck for braces or brackets inside values and flatten them, then convert again |
| A single object does not convert | WhyThe engine needs a list of records at the top level | What to doWrap the object in square brackets, or use the array inside it |
| Columns are missing from the CSV | WhyThe header comes from the first object, and keys found only later are dropped | What to doGive every object the same keys, with null where there is no value |
| Letters look broken in Excel | WhyThe CSV is UTF-8 without a byte order mark | What to doImport it with Data, From Text/CSV and choose UTF-8. For more tables, see XLSX to CSV |
| Nothing converts and the file starts with odd bytes | WhyA UTF-8 byte order mark at the start of the JSON stopped the engine in a local test | What to doSave the JSON as UTF-8 without BOM and try again |
| Compared on | JSON | CSV |
|---|---|---|
| Structure | JSONObjects and arrays can nest to any depth | CSVFlat rows and columns only |
| Data types | JSONStrings, numbers, true, false and null | CSVText only, no types |
| Header | JSONKeys are stored with every value | CSVOne optional header row |
| Where it opens | JSONAPIs, code and editors | CSVSpreadsheets, databases and BI tools |
| Typical use | JSONExchanging data between programs | CSVAnalysing and importing tabular data |
You saved a JSON response and want to filter and sum it in a spreadsheet. If the records are flat, this gives you a CSV in one step. If they are nested, flatten them first, or the conversion will fail.
You do not want to write a script for a single file. Add the file, check the first rows of the CSV, and move on. For a repeating job, a script in your own pipeline is the better tool.
Many import tools take CSV and not JSON. A flat JSON export becomes a CSV with a stable header, and quoted fields keep commas and line breaks inside their cells.
Authenticate, start a conversion, poll its status and download the result.
Format families, and how to check one pair before you convert.
File size, credits and retention for free and paid use.
Submit a file, poll the job, download it and list past conversions.
Facts checked on November 4, 2026
No tool matches that search.
Add a .json file whose top level is an array of flat objects, keep CSV as the output and download the result. The first object's keys become the header row.
They are not flattened, and the conversion fails. In our test, a file with a nested object and a list showed Failed with no download and no error text. Flatten the data first, for example into one value per key, then convert it.
The header is taken from the first object. In a local test of the engine, keys that appear only in later objects were dropped, and a later object missing a key made the conversion fail. Add the missing keys to every object, using null for no value.
The CSV we downloaded is UTF-8 without a byte order mark. Excel can then read it as another encoding. Open it through Data, From Text/CSV and choose UTF-8 as the file origin. We did not test Excel itself.
The engine expects a list of records at the top level. Wrap your object in square brackets to make a one-item array, or take the array out of the wrapping object before you convert.
We did not measure a size limit or the speed on large files. Our sample files were 590 B and 239 B. Keep in mind that Excel itself stops at 1,048,576 rows per sheet.
Yes. In our test, a name with a comma and inner quotes was written in double quotes with the quotes doubled, and a field with a line break was quoted too, as RFC 4180 describes.
This page converts in one direction only. If you need the same conversion many times, a short script with Python, jq or PowerShell in your own environment gives you control over nesting and column names.