Candid Health V1 API

The v1 API from Candid Health — 105 operation(s) for v1.

Operations 150

POST /eligibility-checks/v1 Post #
POST /eligibility-checks/v1/batch Batch #
GET /eligibility-checks/v1/batch/{batch_id} Poll Batch #
GET /eligibility-checks/v1/recommendation Recommendation #
POST /eligibility-checks/v1/recommendation Create Recommendation #
PUT /eligibility-checks/v1/recommendation/{recommendation_id}/{version}/vote Vote Recommendation #
GET /eligibility-checks/v1/get-multi/ Get Multi #
POST /eligibility-checks/v1/insurance-discovery Insurance Discovery #
POST /eligibility-checks/v1/coordination-of-benefits Coordination Of Benefits #
POST /appointments/v1 Create #
GET /appointments/v1/visits Get Visits #
GET /appointments/v1/visits/counts Get Counts #
GET /appointments/v1/{id} Get #
GET /appointments/v1/{id}/history Get History #
PUT /appointments/v1/{id}/{version} Update #
DELETE /appointments/v1/{id}/{version} Deactivate #
GET /appointments/v1/updates/scan Scan #
POST /coverages/v1/ Create #
GET /coverages/v1/ Get Multi #
PUT /coverages/v1//{id}/{version} Update #
GET /coverages/v1//get-multi-paginated Get Multi Paginated #
GET /coverages/v1//{id} Get #
GET /coverages/v1//{id}/history Get History #
GET /coverages/v1//updates/scan Scan #
POST /coverages/v1//batch-update-ppg/{ppg_id} Batch Update Ppg #
POST /coverages/v1//{id}/eligibility Check Eligibility #
GET /coverages/v1//{id}/eligibility/{check_id} Get Eligibility #
POST /images/v1 Create #
GET /images/v1 Get Multi #
GET /images/v1/{id} Get #
PUT /images/v1/{id}/{version} Update #
DELETE /images/v1/{id}/{version} Deactivate #
GET /lists/v1/patient Get Patient List #
GET /lists/v1/appointment Get Appointment List #
GET /notes/v1/{id} Get #
POST /notes/v1 Create #
PUT /notes/v1/{id}/{version} Update #
DELETE /notes/v1/{id}/{version} Deactivate #
GET /organization-external-providers/v1/{id} Get #
GET /organization-external-providers/v1 Get Multi #
POST /organization-external-providers/v1 Create #
PUT /organization-external-providers/v1/{id}/{version} Update #
DELETE /organization-external-providers/v1/{id}/{version} Deactivate #
GET /organization-external-providers/v1/updates/scan Scan #
POST /patient-merge/v1 Create #
GET /patient-merge/v1/status/{mrn_or_id} Get Status #
GET /patient-merge/v1/all/{mrn} Get All By Mrn #
DELETE /patient-merge/v1/{id}/{version} Deactivate #
GET /patient-merge/v1/updates/scan Scan #
POST /patients/v1 Create #
POST /patients/v1/with_mrn Create With Mrn #
GET /patients/v1/get_multi Get Multi #
GET /patients/v1/search_providers Search Providers #
GET /patients/v1/{id} Get #
GET /patients/v1/mrn/{mrn} Get By Mrn #
GET /patients/v1/{id}/history Get History #
GET /patients/v1/{id}/snapshot Get Coverage Snapshot #
GET /patients/v1/{id}/eligibility-timeline Get Eligibility Timeline #
PUT /patients/v1/{id}/{version} Update #
DELETE /patients/v1/{id}/{version} Deactivate #
PATCH /patients/v1/{id}/{version} Reactivate #
GET /patients/v1/updates/scan Scan #
GET /tags/v1/{id} Get #
GET /tags/v1 Get All #
POST /tags/v1 Create #
PUT /tags/v1/{id}/{version} Update #
DELETE /tags/v1/{id}/{version} Deactivate #
POST /api/import-invoice/v1 Import Invoice #
GET /api/import-invoice/v1 Get Multi #
GET /api/import-invoice/v1/{invoice_id} Get #
PATCH /api/import-invoice/v1/{invoice_id} Update #
GET /api/patient-ar/v1/inventory List Inventory Records #
GET /api/patient-ar/v1/invoice-itemization/{claim_id} Invoice Itemization #
GET /api/patient-refunds/v1 Get patient refunds #
POST /api/patient-refunds/v1 Create patient refund #
GET /api/patient-refunds/v1/{patient_refund_id} Get patient refund #
PATCH /api/patient-refunds/v1/{patient_refund_id} Update #
DELETE /api/patient-refunds/v1/{patient_refund_id} Delete patient refund #
GET /api/charge_capture_claim_creation/v1/{charge_capture_claim_creation_id} Get Charge Capture Claim Creation #
GET /api/charge_capture_claim_creation/v1/all/summary Get Charge Capture Claim Creation Summary #
PATCH /api/charge_capture_claim_creation/v1/error/{charge_capture_bundle_error_id} Mark a ClaimCreationAttempt error as resolved #
GET /api/charge_capture_claim_creation/v1 Get all Charge Capture Claim Creations #
POST /api/charge_captures/v1 Create a Charge Capture #
GET /api/charge_captures/v1 Get all Charge Captures #
POST /api/charge_captures/v1/create-from-pre-encounter Create a Charge Capture from pre-encounter patient and appointment #
PATCH /api/charge_captures/v1/changes Update a ChargeCapturePostBilledChange #
PATCH /api/charge_captures/v1/{charge_capture_id} Update Charge Capture #
GET /api/charge_captures/v1/{charge_capture_id} Get Charge Capture #
POST /api/charge_captures/v1/find-by-metadata Find Charge Captures by Metadata #
GET /api/custom-schemas/v1 Get all custom schemas #
POST /api/custom-schemas/v1 Create a custom schema #
GET /api/custom-schemas/v1/{schema_id} Get custom schema #
PATCH /api/custom-schemas/v1/{schema_id} Update custom schema #
GET /api/encounter-attachments/v1/{encounter_id} Get Encounter Attachments #
PUT /api/encounter-attachments/v1/{encounter_id} Create Encounter Attachment #
DELETE /api/encounter-attachments/v1/{encounter_id} Delete Encounter Attachment #
PUT /api/encounter-attachments/v1/{encounter_id}/v2 Create Encounter Attachment V2 #
POST /api/encounter-attachments/v1/create-from-charge-capture-external-id Create an Attachment from a Charge Capture external ID #
GET /api/encounter-attachments/v1/by-charge-capture-external-id/{charge_capture_external_id} Get Attachments by Charge Capture External ID #
DELETE /api/encounter-attachments/v1/by-charge-capture-external-id/{charge_capture_external_id} Delete Attachment by Charge Capture External ID #
GET /api/encounter-supplemental-information/v1/{encounter_id} Get Encounter Supplemental Information #
PUT /api/encounter-supplemental-information/v1/{encounter_id} Create Encounter Supplemental Information #
PATCH /api/encounter-supplemental-information/v1/{encounter_id}/{supplemental_information_id} Update Encounter Supplemental Information #
DELETE /api/encounter-supplemental-information/v1/{encounter_id}/{supplemental_information_id} Delete Encounter Supplemental Information #
GET /api/events/v1/ Scan #
GET /api/events/v1/{event_id} Get #
GET /api/external-payment-account-config/v1 Get Multi #
POST /api/guarantors/v1/{encounter_id} Create guarantor #
GET /api/guarantors/v1/{guarantor_id} Get guarantor #
PATCH /api/guarantors/v1/{guarantor_id} Update guarantor #
PUT /api/health-care-code-informations/v1/{encounter_id} Update #
GET /api/health-care-code-informations/v1/{encounter_id} Get All For Encounter #
GET /api/insurance-adjudications/v1/{insurance_adjudication_id} Get insurance adjudication #
GET /api/insurance-refunds/v1 Get insurance refunds #
POST /api/insurance-refunds/v1 Create insurance refund #
GET /api/insurance-refunds/v1/{insurance_refund_id} Get insurance refund #
PATCH /api/insurance-refunds/v1/{insurance_refund_id} Update #
DELETE /api/insurance-refunds/v1/{insurance_refund_id} Delete insurance refund #
POST /api/medication-dispense/v1 Medication Dispense Create #
GET /api/non-insurance-payer-payments/v1 Get non-insurance payer payments #
POST /api/non-insurance-payer-payments/v1 Create non-insurance payer payment #
GET /api/non-insurance-payer-payments/v1/{non_insurance_payer_payment_id} Get non-insurance payer payment #
PATCH /api/non-insurance-payer-payments/v1/{non_insurance_payer_payment_id} Update #
DELETE /api/non-insurance-payer-payments/v1/{non_insurance_payer_payment_id} Delete non-insurance payer payment #
GET /api/non-insurance-payer-refunds/v1 Get non-insurance payer refunds refunds #
POST /api/non-insurance-payer-refunds/v1 Create non-insurance payer refund #
GET /api/non-insurance-payer-refunds/v1/{non_insurance_payer_refund_id} Get non-insurance payer refund #
PATCH /api/non-insurance-payer-refunds/v1/{non_insurance_payer_refund_id} Update #
DELETE /api/non-insurance-payer-refunds/v1/{non_insurance_payer_refund_id} Delete non-insurance payer refund #
POST /api/non-insurance-payers/v1 Create #
GET /api/non-insurance-payers/v1 Get Multi #
PATCH /api/non-insurance-payers/v1/{non_insurance_payer_id}/toggle_enablement Toggle Enablement #
GET /api/non-insurance-payers/v1/categories Get non-insurance payer categories #
GET /api/non-insurance-payers/v1/{non_insurance_payer_id} Get #
PATCH /api/non-insurance-payers/v1/{non_insurance_payer_id} Update #
DELETE /api/non-insurance-payers/v1/{non_insurance_payer_id} Delete #
GET /api/payer-plan-groups/v1 Get payer plans #
POST /api/payer-plan-groups/v1 Create a payer plan #
GET /api/payer-plan-groups/v1/{payer_plan_group_id} Get payer plan #
PUT /api/payer-plan-groups/v1/{payer_plan_group_id} Update payer plan #
PATCH /api/payer-plan-groups/v1/{payer_plan_group_id} Delete payer plan #
POST /api/superbill/v1 Create Superbill #
GET /api/write-offs/v1 Get all write-offs #
POST /api/write-offs/v1 Create write-off #
GET /api/write-offs/v1/{write_off_id} Get write-off #
POST /api/write-offs/v1/{write_off_id}/revert Revert write-off #
POST /api/write-offs/v1/{adjustment_id}/revert Revert Insurance Balance Adjustment #
POST /api/write-offs/v1/{adjustment_id}/revert-era-originated Revert ERA-originated Insurance Balance Adjustment #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/candid-health-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

candid-health-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference V1 API
  version: 1.0.0
servers:
- url: https://pre-api.joincandidhealth.com
  description: Production
- url: https://pre-api-staging.joincandidhealth.com
  description: Staging
- url: https://sandbox-pre-api.joincandidhealth.com
  description: CandidSandbox
- url: https://staging-pre-api.joincandidhealth.com
  description: CandidStaging
- url: http://localhost:4000
  description: Local
- url: https://api.joincandidhealth.com
  description: Production
- url: https://api-staging.joincandidhealth.com
  description: Staging
- url: https://sandbox-api.joincandidhealth.com
  description: CandidSandbox
- url: https://staging-api.joincandidhealth.com
  description: CandidStaging
- url: http://localhost:5050
  description: Local
tags:


# --- truncated at 32 KB (702 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/candid-health/refs/heads/main/openapi/candid-health-v1-api-openapi.yml