API Testing to Excel: Consultant's Workflow for Client Deliverables
You've just finished testing a client's API. Postman shows the responses look correct. Now the client asks for "documentation" or "a spreadsheet showing the data."
You could spend 30 minutes copying values into Excel manually. Or you could do what experienced consultants do: automate the boring parts and bill for the interesting ones.
Here's the workflow for converting API test data into client-ready Excel deliverables in under 2 minutes.
The Consultant's Problem
When you're billing $150/hour, time spent on data formatting is expensive—for you if it's fixed price, for the client if it's T&M. Either way, it's low-value work.
Common deliverable requests:
- "Can you show me all the products the API returns?"
- "I need the user data in a spreadsheet for the migration team"
- "Export the order history so finance can reconcile"
- "Document what fields the API actually returns"
Each of these involves the same pain: nested JSON → flat Excel.
The 2-Minute Workflow
Step 1: Get Your API Response
From Postman, Insomnia, or cURL:
Postman:
- Send your request
- Click the response body
- Copy all (Ctrl+A, Ctrl+C)
- Or: Right-click → Save Response → Save to File
cURL:
curl https://api.client.com/endpoint -H "Authorization: Bearer xxx" > response.json
Step 2: Convert to Excel
- Go to JsonExport
- Paste the JSON or drop the file
- Preview the flattened structure
- Download as .xlsx
What happens automatically:
- Nested objects become separate columns:
user.address.city - Arrays expand:
items[0].name,items[1].name - Double-encoded strings get cleaned up
- "null" and "undefined" display properly
Step 3: Polish for Client
The raw flattened data is technically correct but might overwhelm clients:
Quick cleanup in Excel:
- Delete internal ID columns (keep customer-facing data)
- Rename cryptic headers (
sku_id→ "Product ID") - Add filters for easy exploration
- Freeze the header row
2 minutes total. Bill for 15.
Real Examples from Consulting Work
E-Commerce API Audit
Client request: "Show me all the order data your system will receive"
API Response (nested):
{
"orders": [
{
"id": "ORD-001",
"customer": {
"name": "John Doe",
"email": "john@example.com"
},
"items": [
{"sku": "PROD-A", "qty": 2, "price": 29.99}
],
"shipping": {
"address": {
"city": "New York",
"zip": "10001"
}
}
}
]
}
After flattening:
| id | customer.name | customer.email | items[0].sku | items[0].qty | shipping.address.city |
|---|---|---|---|---|---|
| ORD-001 | John Doe | john@example.com | PROD-A | 2 | New York |
Client can now see exactly what data flows through their integration.
User Migration Project
Client request: "Get all users from the old system so we can plan the migration"
API returns 500 users with nested roles, permissions, and metadata.
Workflow:
- Hit the
/usersendpoint with pagination - Combine responses into one JSON file
- Flatten → Excel
- Add column for "Migration Status" (client fills in)
- Deliver as "User Migration Tracking Sheet"
Time: 10 minutes. Value: Client can plan their entire migration.
API Schema Documentation
Client request: "Document what fields the API returns"
Instead of writing a table manually:
- Capture a full response with sample data
- Flatten to Excel
- The column headers ARE your field documentation
- Add a row explaining each field's purpose
Deliverable: A living document the client can update.
Handling Complex API Responses
Pagination
When an API returns 20 items per page:
Option 1: Export each page, combine in Excel
- Flatten each response
- Append sheets or use Power Query → Combine
Option 2: Collect all pages first
# Pseudo-code
for page in 1..10; do
curl "api/items?page=$page" >> all_items.json
done
Then flatten the combined file.
Nested Arrays
API returns orders with multiple line items:
{
"orders": [
{
"id": "1",
"items": [
{"product": "A", "qty": 1},
{"product": "B", "qty": 2}
]
}
]
}
Flattened result:
items[0].product,items[1].product, etc.
For analysis, you might want one row per item. After flattening, use Excel's Power Query to unpivot:
- Data → Get Data → From Table
- Select item columns → Unpivot
Inconsistent Structures
Some APIs return different fields based on context:
// Premium user
{"user": {"name": "...", "tier": "premium", "discount": 20}}
// Free user
{"user": {"name": "...", "tier": "free"}}
JsonExport handles this: creates a user.discount column, shows blank for users without it.
Professional Deliverable Templates
Template 1: Data Audit Report
For security/compliance reviews:
| Field Path | Sample Value | Contains PII? | Notes |
|---|---|---|---|
| user.email | john@... | Yes | Hash in prod |
| user.name | John Doe | Yes | |
| order.id | ORD-001 | No |
Generate the first two columns from flattening, add the review columns manually.
Template 2: Integration Test Results
For QA handoffs:
| Endpoint | Request | Expected | Actual | Status |
|---|---|---|---|---|
| /users | GET all | 200 + users[] | ✓ | Pass |
| /orders | POST new | 201 + order object | ✓ | Pass |
Attach the flattened responses as additional sheets for reference.
Template 3: Data Mapping Document
For ETL projects:
| Source Field | Source Type | Target Field | Target Type | Transform |
|---|---|---|---|---|
| user.createdAt | ISO datetime | created_date | DATE | Parse |
| user.fullName | String | first_name | VARCHAR(50) | Split |
First column comes from flattening the source API. Add mapping columns for the target system.
Privacy Considerations
Client API data often contains:
- Customer PII
- Internal business metrics
- Authentication tokens (if you're not careful)
JsonExport processes everything locally:
- Data never touches external servers
- Safe for NDA-protected client work
- No data retention concerns
If a client asks "Where did you process our data?":
"Locally in my browser. No cloud services involved."
When to Use This vs. Writing Code
| Situation | Use This Workflow | Write Code |
|---|---|---|
| One-time export | ✓ | Overkill |
| Client demo | ✓ | Too slow |
| Ad-hoc analysis | ✓ | |
| Recurring daily job | ✓ (automate) | |
| 10,000+ records | ✓ (Python/Node) | |
| Complex transformations | ✓ |
For consulting work, 90% of data requests are one-time. This workflow handles those efficiently.
Tools for the Workflow
API Testing:
- Postman (free tier works)
- Insomnia
- HTTPie (CLI)
- VS Code REST Client extension
JSON → Excel:
- JsonExport - instant, no signup
Excel Cleanup:
- Excel's built-in filters and formatting
- Power Query for advanced transformations
Documentation:
- Markdown → PDF for formal docs
- Excel with comments for working docs
Conclusion
API testing deliverables don't require custom scripts. The workflow:
- Capture - Export from Postman or cURL
- Convert - Flatten JSON to Excel (30 seconds)
- Polish - Rename columns, add context
- Deliver - Professional spreadsheet, minimal effort
Your clients get clear visibility into their data. You spend time on high-value work instead of manual formatting.
Try the workflow now - Paste any API response, export to Excel.
Related Guides: