Mantys Eligibility API

Get a check's result

GET /v4/eligibility-checks/{id}: statuses, eligible_responses, other_responses and policy_authority.

GET /v4/eligibility-checks/{id} returns the check, its status and, once finished, every payer answer. Poll every 5 to 10 seconds and stop at a final status.

statusMeaningFinal?
IN_QUEUEAccepted, waiting to startNo
NAVIGATING_WEBSITE, CHECKING_ELIGIBILITY, EXTRACTING_DATA, PROCESSINGRunning at the payerNo
COMPLETEFinished. Read eligible_responses and other_responsesYes
FAILEDCould not get an answer from the payerYes
CANCELLEDCancelled at the payerYes

Response: 200

{
  "id": "3f6c2a9e-...",
  "status": "COMPLETE",
  "created_at": "2026-10-17T09:12:03",
  "updated_at": "2026-10-17T09:12:41",
  "request": { "tpa_name": "INS026", "id_type": "EMIRATESID", "visit_type": "OUTPATIENT" },
  "eligible_responses": [
    {
      "id": "3f6c2a9e-...:INS026",
      "tpa_id": "INS026",
      "tpa_name": "Daman- National Health Insurance Company - INS026",
      "status": "found",
      "is_eligible": true,
      "message": null,
      "screenshot_url": "https://...",
      "completed_at": "2026-10-17T09:12:41",
      "data": { "...": "the parsed payer answer" }
    }
  ],
  "other_responses": [],
  "policy_authority": "DHA"
}
  • Every payer answer is in exactly one of the two lists: eligible_responses when the payer said the patient is eligible, other_responses otherwise (not eligible, member not found, or the payer could not be checked). Join the two for every answer. A single-payer check has one row, a search-all check has one row per payer, and a check that ran under several visit types has one row per visit type.
  • Both lists are empty while the check runs.
  • A payer failure is still a finished check. For example an invalid_credentials answer comes back as a COMPLETE check with that row in other_responses, and policy_authority is null. Read the row's status; an empty eligible_responses is not, by itself, a not-eligible answer.
  • request is your request as it was stored.
  • There is no result and no responses field in v4.
  • A check that belongs to another clinic returns 404 CHECK_NOT_FOUND, the same as an id that does not exist.

Each row has the same fields, whatever kind of check it came from:

FieldNotes
idThe answer's own id. null on a search-all row.
tpa_idThe payer code, e.g. TPA002. Branch on this one.
tpa_nameThe payer's display label, e.g. NEXTCARE ARAB GULF HEALTH SERVICES - TPA002. It is not the code you sent.
statusThe payer's outcome: found, member_not_found, invalid_credentials and the others on Result status. A search-all row can also read tpa_not_configured or delegated_to_search_all_pool.
is_eligibletrue only when the payer said eligible
messageWhat the payer or the check reported, or null
screenshot_urlA link to the screenshot of the payer's page, or null
completed_atWhen this payer answered
dataThe parsed payer answer: the same object as v3's eligibility_result.data_dump.data (or aggregated_results[].data on a search-all), without copay_analysis. Your parsing of that object carries over.
matched_identifier, identifier_attemptsOnly on a check with several IDs; see Several IDs for one patient
  • policy_authority is the health regulator the patient's policy falls under: DHA (Dubai), DOH (Abu Dhabi), MOH (Northern Emirates) or Not Mentioned when the payer does not state it. It is the same value as data.policy_network.policy_authority on the payer's row, lifted to the top so you do not have to dig for it. It is null while the check runs, when the answer has no authority, and on a search-all check, where each payer's value stays in its own row's data.