Skip to content
Json Works

How to Convert Postman JSON to CSV

Updated

Postman is excellent for sending requests and poor for reading big responses. Once a response holds a few hundred records, scrolling through pretty-printed braces stops being useful and you want rows and columns. This guide shows how to get from a Postman response to a clean CSV file, and how to avoid the usual traps on the way.

What you need

Only the response body. You do not need an account, a Postman plan or any plugin. The conversion works on text, so it works the same whether the response came from Postman, Insomnia, a browser’s network tab or a terminal.

Step 1: Copy the response body

Send your request in Postman and open the Body tab of the response. Make sure the Pretty view is selected, click anywhere in the body, press Ctrl+A (or Cmd+A on a Mac) and copy. Postman also has a copy icon at the top right of the body panel, which does the same thing.

If the response is very large, Postman may truncate the preview. In that case use Save Response and choose Save to a file, then open the saved .json file in the next step instead of pasting.

Step 2: Paste it into the table tool

Open the JSON to Table tool and paste the body into the input pane, or drop the saved .json file onto it. The table builds as you type. If the JSON is invalid you will see the exact line and column of the problem, which is usually a stray comma or a truncated copy.

Step 3: Pick the right array

Most API responses wrap the useful records in an envelope:

{
  "status": "ok",
  "page": 1,
  "data": [
    { "id": 1, "name": "Ada", "email": "ada@example.com" },
    { "id": 2, "name": "Grace", "email": "grace@example.com" }
  ]
}

The table should be built from data, not from the envelope. Json Works detects the largest array of objects automatically. If your response has several arrays, use the Table rows from selector to switch between them.

Step 4: Check the columns

Nested objects become dotted columns. A record like {"customer": {"address": {"city": "Leeds"}}} produces a column named customer.address.city. This is called flattening, and our guide to flattening nested JSON explains the rules in detail.

Nested arrays are the part that needs a decision, because a spreadsheet cell holds one value and an array holds many. In the table they appear as an expandable chip. Click it to see that row’s items as a small table of their own. See handling arrays when converting JSON to a table for the trade-offs.

Before exporting, tidy the view:

  • Hide columns you do not need, such as internal IDs or timestamps.
  • Sort by clicking a header.
  • Filter rows with the search box.

The export matches exactly what you see, so a filtered and sorted view gives a filtered and sorted file.

Step 5: Export to CSV

Click CSV. The file downloads with a UTF-8 byte order mark, which makes Excel read accented characters (é, ü, 日本語) correctly instead of showing garbled text. If your data contains commas, quotes or line breaks inside values, they are escaped according to the CSV standard (RFC 4180), so the file re-imports cleanly.

If you will open the file in Excel anyway, consider the Excel button instead. It produces a real .xlsx with a frozen header row and typed numbers, and it avoids the problems described below. See JSON to Excel: a step-by-step guide.

Common problems and fixes

Long IDs lose digits. Spreadsheets store numbers as 64-bit floats, which are only exact to 15 significant digits. A 19-digit ID such as 1234567890123456789 becomes 1234567890123460000 when Excel opens it. Json Works keeps such integers as text in the table, but Excel may still convert a CSV on open. Import the CSV through Data > From Text/CSV and set the column type to Text, or export to .xlsx instead.

Leading zeros disappear. Zip codes like 02134 and phone numbers become 2134 when a spreadsheet guesses they are numbers. The same fix applies: import with the column set to Text.

Dates look wrong. JSON has no date type, so dates arrive as strings such as 2026-10-17T09:30:00Z. Excel may display them as text. Add a column with a formula, or convert on import.

Everything is in one column. In some European locales Excel expects semicolons rather than commas. Use Data > From Text/CSV and pick the delimiter, or open the file in Google Sheets, which detects it.

The response is not an array at all. A single object, such as one user’s profile, becomes a two-column table of keys and values, which is a perfectly good CSV for a quick report.

Doing it for a whole collection

If you want a table of the requests in a Postman collection rather than the data a request returns, use the Postman Collection Viewer. It reads an exported collection file and lists method, URL, headers, auth and tests for every request. There is a separate walkthrough in Postman tips: exporting responses.

Privacy

The conversion runs in your browser. The response is parsed with JavaScript on your device and never uploaded, which matters when it contains customer records or tokens. You can confirm this by watching the network tab while you paste.

More guides

All guides · FAQ