1040 to JSON Converter: Extract Tax Return Data via API
January 29, 2026
Why Convert 1040 to JSON?
JSON is how applications talk to each other. If you're building a lending platform, financial planning tool, tax preparation application, or any software that needs to work with tax return data, you need that data in structured JSON format—not locked inside a PDF.
Converting a 1040 to JSON gives you programmatic access to every field, easy database storage, simple integration with downstream systems, and consistent structure regardless of which year's form was generated.
The Challenge of 1040 to JSON Conversion
Tax returns are structurally complex:
- The IRS changes the form layout almost every year
- Attached schedules are separate documents that need cross-referencing
- Many returns are scanned paper forms, not text-based PDFs
- Tax software generates PDFs with non-standard formatting
Generic PDF tools give you raw text—you'd still need to build logic to understand which year's form you're looking at, map text positions to line numbers, and handle edge cases. A purpose-built 1040 to JSON converter handles all of this for you.
1040 Parser API: Convert 1040 to JSON
cURL
curl -X POST https://1040parser.com/api/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@tax-return-2025.pdf"
Python
import requests
def convert_1040_to_json(pdf_path, api_key):
# Convert a 1040 PDF to structured JSON.
with open(pdf_path, 'rb') as f:
response = requests.post(
'https://1040parser.com/api/extract',
headers={'Authorization': 'Bearer ' + api_key},
files={'file': ('return.pdf', f, 'application/pdf')}
)
response.raise_for_status()
return response.json()
data = convert_1040_to_json('2025-return.pdf', 'your-api-key')
print("Year:", data['tax_year'])
print("AGI:", data['income']['line11_agi'])
JavaScript / TypeScript
async function convert1040ToJSON(pdfPath, apiKey) {
const form = new FormData();
const fileBuffer = await fs.promises.readFile(pdfPath);
form.append('file', new Blob([fileBuffer]), 'return.pdf');
const res = await fetch('https://1040parser.com/api/extract', {
method: 'POST',
headers: { 'Authorization': 'Bearer ' + apiKey },
body: form
});
if (!res.ok) throw new Error('API error: ' + res.status);
return res.json();
}
const data = await convert1040ToJSON('2025-return.pdf', process.env.API_KEY);
console.log('AGI:', data.income.line11_agi);
Complete JSON Output Reference
{
"tax_year": 2025,
"form_variant": "1040",
"filing_status": "Head of Household",
"taxpayer_name": "Angela Torres",
"taxpayer_ssn_last4": "7741",
"dependents": [
{ "name": "Diego Torres", "ssn_last4": "2234", "relationship": "Son", "ctc": true }
],
"income": {
"line1a_wages": 78000.00,
"line2b_taxable_interest": 412.00,
"line3b_ordinary_dividends": 0.00,
"line7_capital_gain_loss": 0.00,
"line9_total_income": 78412.00,
"line10_adjustments_schedule1": 2500.00,
"line11_agi": 75912.00
},
"deductions": {
"line12_standard_deduction": 21900.00,
"line13_qbi_deduction": 0.00,
"line15_taxable_income": 54012.00
},
"tax_credits_payments": {
"line16_tax": 6818.00,
"line19_child_tax_credit": 2000.00,
"line24_total_tax": 4818.00,
"line25a_w2_withholding": 7200.00,
"line33_total_payments": 7200.00,
"line35a_refund": 2382.00,
"line37_amount_owed": 0.00
},
"schedules": {
"schedule_a": null,
"schedule_c": null,
"schedule_d": null,
"schedule_e": null
},
"_metadata": {
"processed_at": "2026-01-29T14:22:31Z",
"confidence": 0.98
}
}
Schedule C JSON Output (Self-Employed)
{
"schedule_c": {
"business_name": "Torres Consulting Services",
"accounting_method": "Cash",
"income": {
"gross_receipts": 125000.00,
"gross_income": 125000.00
},
"expenses": {
"advertising": 2400.00,
"car_truck_expenses": 5800.00,
"contract_labor": 18000.00,
"depreciation": 3200.00,
"insurance": 1800.00,
"office_expense": 1400.00,
"supplies": 800.00,
"travel": 3600.00,
"total_expenses": 42500.00
},
"net_profit": 82500.00
}
}
Batch Convert Multiple 1040s
curl -X POST https://1040parser.com/api/extract/batch \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "files=@2024-return.pdf" \
-F "files=@2025-return.pdf"
Pricing
- Free: 3 extractions — no credit card required
- Starter ($15): 10 tax returns
- Pro ($49): 50 tax returns
- Business ($149): 200 tax returns
- Enterprise: Contact us for volume pricing
Credits never expire. No monthly fees. Buy what you need.
Start Converting
Sign up for a free account at 1040parser.com. Get 3 free extractions to validate the JSON output against your actual tax returns. No credit card, no commitment.