> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.usebridge.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.usebridge.com/_mcp/server.

Refer to the [Hard Check](../hard-check) guide for result statuses, error handling, and lifecycle.

See the [node demo](https://github.com/use-bridge/sdk-typescript/tree/main/examples/node) for a working example.

For advanced use cases, see [Advanced](../advanced/optimistic-soft-check).

> **Note**
>
> See [Existing Patients](../existing-patients) for patients who already have a
> Policy

### Run the check

Pass `serviceTypeIds`, `state`, and a `patient` object.
See [Eligibility Fields](../eligibility-fields) for field types.

```typescript
const result = await bridge.hardEligibility({
  serviceTypeIds: ["svt_xxx"],
  state: "CA",
  patient: {
    payerId: "pyr_xxx",
    firstName: "Jane",
    lastName: "Smith",
    dateOfBirth: new Date("2000-01-01"),
    memberId: "W123456789", // optional
  },
});
```

Optional session config (multiple service types, optimistic soft check, clinical info) can be passed in the same call.
See *Advanced*.

### Handle the result

Read `result.status`, `result.providers`, `result.patientResponsibility`, and `result.ineligibilityReason` from the returned object.

When you reach `INELIGIBLE` or `ELIGIBLE`, proceed to the next step in your flow.

---

#### [Existing Patients](../existing-patients)

Hard check when the patient already has a Policy