# Score claim denial risk
URL: https://backworkhealth.com/docs/api/scoreClaimDenialRisk

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. `approved` and `not_required` clear 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**

```bash
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`)

```json
{
  "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"
  }
}
```
