{"model":"dpa","endpoint":"/api/score_dpa_propensity","method":"POST","content_type":"application/json","info_endpoint":"/api/score_dpa_propensity/info","request":{"fields":[{"name":"fico","type":"number","required":false,"example":680},{"name":"dti","type":"number","required":false,"example":38},{"name":"ltv","type":"number","required":false,"example":80},{"name":"cltv","type":"number","required":false,"example":105},{"name":"upb","type":"number","required":false,"example":285000},{"name":"rate","type":"number","required":false,"example":6.75},{"name":"loan_term","type":"number","required":false,"example":360},{"name":"upfront_mip","type":"number","required":false,"example":1.75},{"name":"annual_mip","type":"number","required":false,"example":0.55},{"name":"num_borrowers","type":"number","required":false,"example":1},{"name":"fthb","type":"string","required":false,"allowed_values":["MISSING","N","Y"],"example":"MISSING"},{"name":"property_type","type":"string","required":false,"allowed_values":["1","2","3","4","MISSING"],"example":"1"},{"name":"agency","type":"string","required":false,"allowed_values":["F","N","R","V"],"example":"F"},{"name":"refinance_type","type":"string","required":false,"allowed_values":["1","MISSING"],"example":"1"},{"name":"tpo_type","type":"string","required":false,"allowed_values":["1","2","3","MISSING"],"example":"1"},{"name":"state","type":"string","required":false,"allowed_values_sample":["AK","AL","AR","AZ","CA","CO","CT","DC","DE","FL","GA","GU"],"allowed_values_count":54,"example":"AK"},{"name":"msa","type":"string","required":false,"allowed_values":["MISSING"],"example":"MISSING"}],"example_payload":{"fico":680,"dti":38,"ltv":80,"cltv":105,"upb":285000,"rate":6.75,"loan_term":360,"upfront_mip":1.75,"annual_mip":0.55,"num_borrowers":1,"fthb":"MISSING","property_type":"1","agency":"F","refinance_type":"1","tpo_type":"1","state":"AK","msa":"MISSING"},"notes":"All fields are optional — missing values are imputed as nulls and routed through the model's native handling. Send only the fields you have."},"response":{"fields":[{"name":"model","type":"string","description":"Model identifier."},{"name":"model_version","type":"string"},{"name":"raw_score","type":"number","description":"Pre-calibration model score."},{"name":"dpa_probability","type":"number","description":"Calibrated probability (0-1)."},{"name":"probability","type":"number","description":"Alias of dpa_probability."},{"name":"risk_band","type":"string","description":"BASE / P90 / P95 / P99 (test-set quantile bucket)."},{"name":"recommendation","type":"string","description":"Plain-English action tied to the risk band."},{"name":"score_thresholds","type":"object"},{"name":"scored_at","type":"string","description":"ISO-8601 UTC timestamp."}],"status_codes":{"200":"OK — scored.","429":"Rate limit exceeded (10 scoring calls/day per IP for anonymous; 20/day for signed-in free tier).","503":"Model artifact missing on server."}}}