Documentation Index
Fetch the complete documentation index at: https://docs.have-foresight.app/llms.txt
Use this file to discover all available pages before exploring further.
Foresight runs eligibility checks against payers (X12 270/271) and returns
both the raw response and a normalized benefits view that’s safe to
use directly in your application logic.
Synchronous check
POST /v1/insurance-policies/validate
Body:
{
"insurancePolicyId": "pol_...",
"serviceDate": "2026-05-15",
"serviceTypes": ["medical_care", "prescription_drug"]
}
Returns within a few seconds for cooperative payers. For slow payers, the
endpoint returns 202 Accepted with a jobId — poll
/v1/eligibility/status?jobId=... or wait for eligibility.completed
webhook.
Normalized response
{
"data": {
"status": "eligible",
"policyActive": true,
"checkedAt": "2026-05-03T19:42:11Z",
"benefits": {
"medical": {
"deductible": {
"individual": 150000,
"family": 300000,
"metInd": 47500
},
"outOfPocketMax": { "individual": 800000, "family": 1600000 },
"copay": { "primaryCare": 2500, "specialist": 5000 },
"coinsurance": { "inNetwork": 0.2, "outOfNetwork": 0.4 }
},
"pharmacy": {
"tier1Copay": 1000,
"tier2Copay": 4500,
"tier3Coinsurance": 0.3
}
},
"raw271": "ISA*00*..."
}
}
All monetary values are integer cents. met fields show year-to-date
amounts toward the deductible / OOP max.
When to recheck
- Before submitting a claim with service date > 7 days from the last
check.
- After receiving a
claim.denied with an eligibility-related CARC.
- Whenever the patient updates their insurance.
Use POST /v1/eligibility/retry to force a
fresh check, bypassing any cache.
Enhanced benefits
For deeper benefit detail (specific procedure-level coverage, prior-auth
requirements, in-network status):
GET /v1/benefits/enhanced?insurancePolicyId=pol_... &
cptCode=99213
Reference