Guide
Converting JSON and API responses into Excel sheets
JSON is the language of APIs, exports and logs. It is perfect for programs and awkward for people: a response with a few hundred orders, each with a nested customer and a list of items, is hard to scan as text. In Excel the same data can be sorted, filtered and summed. This tool flattens JSON into a table with one row per record.
Input
Drop a .json file, paste JSON text, or use a JSON Lines file, where each line is a separate JSON object, as many logs and data exports are. Invalid JSON is reported with the parser’s message so you can find the problem.
Finding the records
API responses rarely start with the array you want. The records may be under “results”, “data.items” or “response.orders”. The tool searches the document and lists every array with its number of items, putting arrays of objects first. The most likely one is selected; choose another in “Records from” if needed. For a single object, the top level becomes one row.
Nested objects
Objects inside records become columns with dotted names: a customer with a name and a city produces customer.name and customer.city. The columns appear in the order fields are first seen, and fields that only some records have are included, empty for the others.
Arrays inside records
Lists need a decision. “Join values” puts lists of simple values into one cell, such as “new, gift”, with a separator you choose; lists of objects are kept as JSON text. “Keep as JSON” stores every list as JSON text. “Numbered columns” spreads lists across columns like items.0.sku, items.1.sku, which works well for short, regular lists and creates many columns for long ones.
Large integer IDs
JavaScript numbers are exact only up to 9,007,199,254,740,991. IDs from databases and social networks are often larger, and many converters silently change their last digits. In current browsers that expose the original JSON text to parsers, such numbers are kept digit for digit and written to Excel as text; in older browsers they may be rounded.
Excel limits
An Excel sheet holds at most 1,048,576 rows and 16,384 columns. Very wide results, usually from numbered columns on long lists, trigger a warning; switch lists to “Keep as JSON” or save as CSV.
Saving
Excel is the default output, with plain numbers, ISO dates and true/false stored as real values. CSV and TSV are available for other tools.
Typical sources
REST API responses saved from a browser or Postman, exports from tools like Stripe, Shopify, Airtable or Firebase, application logs written as JSON Lines, and open-data portals that publish JSON. In each case the records sit in an array, possibly nested, and the rest of the document is metadata such as page numbers.
Paginated APIs
APIs often return results in pages of 50 or 100 records. Save each page as a file, convert them, and combine the tables with Merge CSV Files.
Privacy
API responses often contain customer data or tokens. The JSON is processed on your device and never uploaded.
Related tools
For the reverse direction, use CSV to JSON. To read and validate JSON text, try the JSON Formatter. XML documents convert with XML to CSV.
Checked against the current version of the JSON to Excel on .

