Convert Nested API JSON Response to CSV Spreadsheet

100% Private Report Issue

Select Files

or drag and drop files here

Upload a JSON file

The Challenge

REST APIs return nested JSON with objects inside objects, arrays of mixed types, and wrapper structures like { data: { results: [...] } }. Pasting this into a spreadsheet produces unusable single-cell output or [object Object] values. Developers and analysts waste time writing custom scripts to flatten each API's unique structure into tabular format.

How to save an API response as JSON

  1. Browser: open DevTools Network tab, find the API request, right-click the response and select 'Copy response'. Paste into a text editor and save as .json
  2. cURL: run 'curl https://api.example.com/endpoint > response.json' to save directly to file
  3. Postman: send the request, click 'Save Response' and select 'Save as file'
  4. JavaScript: use fetch() and write JSON.stringify(data) to a file or copy from console.log output
  5. Python: use requests.get() and write response.json() to a file with json.dump()

Handling different JSON structures

Simple arrays are flattened directly — each array element becomes one CSV row. Nested objects become dot-separated columns: user.address.city. Primitive arrays (tags, categories) are joined with semicolons into a single cell. Object arrays are indexed: items[0].name, items[1].name — each sub-object gets its own indexed columns. The pivot down mode creates a field-per-row layout instead, useful for inspecting complex single records or building data dictionaries.

Flattened output vs raw JSON

Raw JSON: { "user": { "name": "Alice", "address": { "city": "NYC" } } } results in a single cell containing the entire object string or [object Object] in a spreadsheet.
Flattened CSV: Creates separate columns named 'user.name' and 'user.address.city' with values 'Alice' and 'NYC', allowing immediate sorting, filtering, and pivot table analysis.

Setting the correct root path

  • If your JSON is a plain array [...], leave root path empty — auto-detection handles it
  • If wrapped like { "data": [...] }, set root path to 'data'
  • If deeply wrapped like { "response": { "results": [...] } }, set root path to 'response.results'
  • If unsure, leave empty — the tool scans for the first array in the structure automatically
  • Incorrect root path shows 'Path not found' error — check your JSON structure and adjust

Step-by-Step Workflow

01

Upload JSON API Response File

02

Set Root Path For Wrapped Data

03

Configure Delimiter And Quote Styles

04

Review Flattened Columns In Preview

05

Download As CSV Or Excel File

Specifications

Input Format
JSON File
Array Detection
Auto-Detect
Root Path
Configurable
Nested Handling
Dot-Notation Flattening
Output Formats
CSV Or Excel

Best Practices

  • Leave root path empty for simple JSON arrays to enable auto-detection
  • Use semicolon delimiters when data contains commas in address fields
  • Manually concatenate paginated responses before processing single-page conversion

Frequently Asked Questions

How do I convert a JSON API response to CSV?

Save your API response as a .json file, upload it here, and set the root path to point to your data array (e.g. 'data' or 'results'). The tool flattens all nested objects into columns and outputs a clean CSV. Download as CSV or Excel.

What happens to nested objects in the JSON?

Nested objects are flattened using dot notation. A record like { user: { name: 'John', address: { city: 'NYC' } } } becomes columns: user.name and user.address.city. No nesting depth limit — all levels are flattened.

Can this handle paginated API responses?

It handles single-page responses. For paginated APIs, you need to combine all pages into one JSON array first (concatenate the data arrays), then upload. The tool processes whatever array you provide regardless of size.

What if different records have different fields?

The tool creates columns for every unique field across all records. Records missing a field get empty cells in those columns. This is standard CSV behavior — no data is lost from records with extra or fewer fields.

Is my API data safe?

Yes. Processing runs entirely in your browser. No data is uploaded to any server. This is important for API responses that may contain API keys, tokens, personal data, or proprietary business information.

Related Guides

Convert XML Sitemap to CSV Spreadsheet

  • XML Sitemap (.xml)
  • urlset.url
  • loc lastmod changefreq priority

Convert RSS Feed to CSV Spreadsheet

  • RSS 2.0, Atom
  • CSV, Excel
  • Client-side

Convert to JPG

  • JPG JPEG PNG WebP
  • 1% to 100%
  • Solid Background Color

Convert to PNG

  • PNG
  • Lossless DEFLATE
  • 8-bit Alpha Channel

Compress Screenshots for Slack 10MB Upload Limit

  • 10MB Per File
  • 1-2MB
  • 12-18MB PNG

Compress JPG Images

  • 80% (50-60% size reduction)
  • 70% (60-80% size reduction)
  • 85-90% (40-50% size reduction)

Compress PNG Images

  • Lossless (zero quality loss)
  • 40-70% for unoptimized PNGs
  • 5-20% additional savings

Compress WebP Images

  • 80 to 85 percent
  • 96 percent of modern browsers
  • 25 to 35 percent smaller at same quality

Convert to WebP

  • WebP
  • 25 to 35 percent versus JPG
  • 96 percent coverage

Etsy Seller Tools: Resize Images for Listings, Banners & Profiles

Resize Product Photos to 3000×2250 for Etsy Listings

  • 3000x2250 pixels
  • 4:3
  • 1MB

Resize Profile Picture to 500×500 for Etsy Shops

  • 500×500 pixels (1:1 ratio)
  • Under 200KB (150KB optimal)
  • JPG, PNG (JPG recommended)

Resize Shop Banner to 3360×840 for Etsy

  • 3360×840 pixels
  • 1200×300 pixels
  • JPG, PNG

Resize Images to 1080×1350 for Instagram Feed Posts

  • 1080x1350 Pixels (4:5)
  • 1012x1350 Pixels (3:4)
  • JPG, PNG, BMP, Non-Animated GIF

Resize Images to 1080×1920 for Instagram Stories & Reels

  • 1080×1920 Pixels
  • 9:16
  • 1080×1420 Pixels

Resize Images to 1584×396 for LinkedIn Profile Banners

  • 1584×396 Pixels
  • 4:1
  • 8 MB

Resize Images to 1280×720 for YouTube Thumbnails

  • 1280×720 Pixels
  • 16:9
  • 2 MB

Merge PDF Invoices by Vendor for Accounts Payable

  • Merge Multiple PDF Files
  • Accounts Payable Teams
  • Minimum Two PDF Files

Convert Stripe JSON Export to CSV Spreadsheet

  • Stripe JSON Export
  • Nested Objects With Dot Notation
  • CSV Or Excel

Bra Size Converter: cm to Inches

  • divide EU band by 2.54, add 0–4 inches depending on brand
  • US/UK 32 (traditional) or 30 (modern fit)
  • US/UK 34 (traditional) or 32 (modern fit)