{"model":"zip_product_predictor","endpoint":"/api/score_zip_product","method":"POST","content_type":"application/json","info_endpoint":"/api/score_zip_product/info","request":{"fields":[{"name":"zip_code","type":"string","required":true,"description":"5-digit US ZIP (ZCTA). Only ~20K ZIPs with HMDA 2022-2025 loans are covered; uncovered ZIPs return 400."},{"name":"loan_amount","type":"number","required":false,"description":"Requested loan amount USD. Triggers the Jumbo pre-model rule if > 1-unit conforming limit for the activity year (2025 limit: $806,500)."},{"name":"loan_purpose","type":"string","required":false,"description":"HMDA loan_purpose: '1'=purchase, '2'=home improvement, '31'=refi, '32'=cash-out refi, '4'=other. Default 'MISSING'."},{"name":"occupancy_type","type":"string","required":false,"description":"HMDA occupancy: '1'=principal residence, '2'=second home, '3'=investment. Default 'MISSING'."},{"name":"dti_band","type":"string","required":false,"description":"HMDA banded DTI: '<20%', '20%-<30%', '30%-<36%', '36%-<43%', '43%-<50%', '50%-<60%', '>60%'."},{"name":"income_thousands","type":"number","required":false,"description":"Applicant income in $thousands."},{"name":"loan_term_months","type":"integer","required":false,"description":"Original loan term in months (360 for standard 30yr)."},{"name":"total_units","type":"string","required":false,"description":"'1' / '2' / '3' / '4'."},{"name":"applicant_age","type":"string","required":false,"description":"HMDA age band: '<25', '25-34', '35-44', '45-54', '55-64', '65-74', '>74'."},{"name":"applicant_credit_score_type","type":"string","required":false,"description":"HMDA scoring-model code (1-9). NOT a credit score — HMDA redacts scores."},{"name":"activity_year","type":"integer","required":false,"description":"Year to score against for the Jumbo rule + rate anchor. Defaults to current year."}],"example_payload":{"zip_code":"94103","loan_amount":500000,"loan_purpose":"1","occupancy_type":"1","dti_band":"36%-<43%","income_thousands":120}},"response":{"fields":[{"name":"product_distribution","type":"object","description":"Per-product probability distribution {class_key: {label, probability}}. 6 keys: 1_conv, 2_fha, 3_va, 4_usda, 5_jumbo, 6_nonqm."},{"name":"top_product","type":"string","description":"Human-readable name of the modal (highest-probability) product."},{"name":"top_product_probability","type":"number","description":"Confidence of the top prediction (0-1)."},{"name":"state","type":"string","description":"Modal state for the ZIP."},{"name":"msa_code","type":"string","description":"Modal HMDA MSA/MD code for the ZIP."},{"name":"jumbo_rule_triggered","type":"boolean","description":"True if the pre-model rule fired (loan_amount > conforming limit)."},{"name":"p_nonqm_sidemodel","type":"number","description":"Raw Non-QM side-model probability before blend. Null if Jumbo triggered."},{"name":"usage_verdict","type":"object","description":"Phase 4 fair-lending audit output. Read the approved/prohibited lists before using output — model is CONDITIONAL_PASS for market-estimation only."}],"status_codes":{"200":"OK — scored.","400":"Bad payload (missing/invalid zip_code, or ZIP not in coverage).","401":"Sign-in required (scoring is signed-in only).","429":"Rate limit exceeded.","503":"Model artifact or lookup table missing on server."}}}