Score claim denial risk
Scores a claim payload against five denial-risk gaps (medical necessity, coding support, prior authorization, documentation completeness, and frequency limits) using one batched TypeSafe AI (Jev) call.
Endpoint: POST /api/v1/claims/denial-risk
Availability: Live in production.
Authentication: API key in Authorization: Bearer <key> with the read scope.
Scores a claim payload against five denial-risk gaps (medical necessity, coding support, prior authorization, documentation completeness, and frequency limits) using one batched TypeSafe AI (Jev) call. Per-risk probabilities are combined in code into an overall risk level and a recommended action. Approved or not-required prior authorization clears that risk; other statuses are assessed against the supplied criteria. Returns 503 (SERVER_UNAVAILABLE) when TypeSafe is not configured and approved for sensitive data, and 400 (PHI_NOT_ALLOWED) when clinical documentation or criteria text contains patient identifiers. Requires prior authorization checker access.
Parameters
procedure_codes(body, required): CPT or HCPCS procedure codes.diagnosis_codes(body): Optional ICD-10-CM diagnosis codes.payer(body): Optional payer label.state(body): Two-letter US state code.prior_auth_status(body): Optional prior authorization status.approvedandnot_requiredclear the PA risk deterministically; other values are assessed against the supplied coverage criteria.clinical_documentation(body): Optional de-identified clinical documentation text. Must not contain PHI.coverage_criteria(body): Optional payer policy criteria text to score against. Payer policy text must not contain PHI.
Example request
curl -X POST "https://backworkhealth.com/api/v1/claims/denial-risk" \
-H "Authorization: Bearer $BACKWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"procedure_codes": [
"string"
]
}'Example response (200)
{
"success": true,
"data": {
"risk_level": "low",
"recommended_action": "submit",
"risks": {
"medical_necessity_gap": {
"probability": 0,
"confidence": 0.5,
"decision": "yes"
},
"coding_support_gap": {
"probability": 0,
"confidence": 0.5,
"decision": "yes"
},
"prior_auth_gap": {
"probability": 0,
"confidence": 0.5,
"decision": "yes"
},
"documentation_gap": {
"probability": 0,
"confidence": 0.5,
"decision": "yes"
},
"frequency_limit_risk": {
"probability": 0,
"confidence": 0.5,
"decision": "yes"
}
},
"model": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2026-01-15T10:30:00Z"
}
}Authorization
bearerAuth API key in format: bwk_live_xxxxx. Keys issued before the rename (vrt_live_) remain valid. bwk_test_ keys work only on the sandbox.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/claims/denial-risk" \ -H "Content-Type: application/json" \ -d '{ "procedure_codes": [ "string" ] }'{ "success": true, "data": { "risk_level": "low", "recommended_action": "submit", "risks": { "medical_necessity_gap": { "probability": 0, "confidence": 0.5, "decision": "yes" }, "coding_support_gap": { "probability": 0, "confidence": 0.5, "decision": "yes" }, "prior_auth_gap": { "probability": 0, "confidence": 0.5, "decision": "yes" }, "documentation_gap": { "probability": 0, "confidence": 0.5, "decision": "yes" }, "frequency_limit_risk": { "probability": 0, "confidence": 0.5, "decision": "yes" } }, "model": "string" }, "meta": { "request_id": "string", "timestamp": "2019-08-24T14:15:22Z" }}Last updated on
Validate coverage and denial risk
Run a rule-level, non-PHI pre-submission validation for CPT/HCPCS procedure codes, diagnosis codes, payer context, prior-auth requirements, documentation requirements, and denial risk.
List agent tools
Returns the machine-readable tool catalog for controlled agent access, including input and output schemas, required scopes, approval posture, and whether the authenticated key can invoke each tool.